Kodutöö: dev ja prod keskkonnad¶
Eeldused: N4 praktikum tehtud: bash kontroll.sh testid 1–6 ✅.
Ülesanne¶
Praegu kehtivad muutujad kõigile hostidele ühtemoodi (group_vars/all/). Päris elus on dev ja prod erinevad, dev-serveril on debug-info nähtav, prod-serveril mitte. Tekita see erinevus ainult muutujatega, nginx.yml-i puutumata.
Kasutad oma kahte ülejäänud sõlme: proxmox2 = dev, proxmox3 = prod.
Samm 1, inventory: grupid grupi sees
[web:children] teeb dev ja prod grupi web alamgruppideks (vanem-laps, N3 loeng). Playbooki hosts: web jõuab nüüd kõigi kolmeni, playbooki ei muuda.
Samm 2, vaikeväärtused kõigile
Lisa group_vars/all/main.yml-i:
Samm 3, grupi-spetsiifilised muutujad
group_vars/dev.yml:
group_vars/prod.yml:
Tip
Muutujate nimedes ainult ladina tähed, numbrid ja _: mitte ä, õ, ü. Ansible ei pruugi neid muutujanimena aktsepteerida.
Samm 4, mall
Lisa templates/index.html.j2-sse:
<p>Keskkond: {{ keskkond_nimi }}</p>
{% if naita_debug %}
<p>Debug: {{ inventory_hostname }}, {{ ansible_facts['distribution'] }} {{ ansible_facts['distribution_version'] }}</p>
{% endif %}
Samm 5, käivita ja salvesta tõendid
ansible-playbook -i inventory.ini nginx.yml --vault-password-file .vault_pass
ssh proxmox2 "curl -s localhost" > logid/dev.html
ssh proxmox3 "curl -s localhost" > logid/prod.html
dev.html näitab ARENDUS + debug-rida, prod.html PRODUKTSIOON ilma debug'ita, proxmox1 LABOR.
Mõtle
proxmox2 kuulub nii gruppi all (LABOR) kui dev (ARENDUS). Miks võitis ARENDUS? Mis juhtuks, kui lisaksid host_vars/proxmox2.yml kolmanda väärtusega?
Mõtle
Kolm serverit, üks playbook, üks mall. Kus peaks keskkonnaspetsiifiline info hea Ansible projekti struktuuris elama, ja kus mitte?
Tip
no hosts matched, kontrolli, et [web:children] all on grupinimed (dev), mitte hostinimed (proxmox2).
Esitamine¶
- Käivita uuesti midagi muutmata ja uuenda praktikumi tõendid (
logid/play_recap.txt,leht.html,pais.txt):changed=0kõigil kolmel sõlmel. bash kontroll.sh, kõik 7 ✅- Commit samasse haru
n04-vault, push. PR uueneb ise.
Enesekontroll¶
-
[web:children]sisaldabdevjaprod -
group_vars/dev.ymljagroup_vars/prod.ymlerinevad -
logid/dev.html→ ARENDUS + debug,logid/prod.html→ PRODUKTSIOON, debug'ita -
nginx.ymljäi muutmata -
bash kontroll.shkõik ✅