Kodutöö — dev ja prod keskkonnad
Eeldused: w04 labor tehtud — nginx.yml kasutab group_vars/all.yml faili ja templates/index.html.j2 malli, töötab --ask-vault-pass-iga.
Ülesanne
Praegu kehtivad su muutujad kõikidele hostidele ühtemoodi (group_vars/all.yml). Päris elus on dev ja prod erinevad — dev-serveril on debug nähtav, prod-serveril mitte. (Vähemalt teoorias. Praktikas leiab keegi debug-info alati prod'ist, tavaliselt klient.) Tekita see erinevus muutujatega, playbook'i ennast puutumata.
Samm 1 — inventory täiendamine
Lisa inventory.ini-sse kaks gruppi (kui sul on üks VM, pane mõlemad ajutiselt sama hosti peale — oluline on grupistruktuur):
[dev]
dev-server ansible_host=<VM-IP> ansible_user=<kasutaja>
[prod]
prod-server ansible_host=<VM-IP> ansible_user=<kasutaja>
Samm 2 — grupi-spetsiifilised muutujad
Tip
Miks need ei lähe all.yml-i: group_vars/dev.yml kehtib ainult dev grupile. all.yml jääb sellele, mis on tõesti kõikjal sama (nt paketi_nimi: nginx).
Samm 3 — malli täiendamine
Samm 4 — käivita mõlema grupi vastu
Leht peaks näitama "ARENDUS".
Nüüd "PRODUKTSIOON" — sama playbook, sama mall, erinev tulemus, sest muutujad tulid erinevast failist.
Tip
"no hosts matched" — kontrolli et grupi nimi [dev] failis kattub täpselt käsureal antuga, ja dev-server rida on grupi pealkirja all.
Mõtle
Mõlemad käivitused kasutasid sama nginx.yml-i ja sama malli. Mis see sulle ütleb selle kohta, kus peaks keskkonna-spetsiifiline info hea Ansible projekti struktuuris elama?
Esitamine
- Commit'i muudatused (
inventory.ini,group_vars/dev.yml,group_vars/prod.yml, muudetud mall). - Ära kunagi commit'i
group_vars/vault.yml-i lahtikrüpteerituna —ansible-vault-iga loodud kujul on ta juba turvaline. - Uus branch
n04-lab, push, ava Pull Request main vastu — läbi reeglite, nagu nädal 2. - PR kirjelduses näita mõlema keskkonna väljundit (ekraanipilt või terminal) — dev ja prod peavad selgelt erinema.
- Esita PR-i link GitHub Projectis.
Enesekontroll
-
group_vars/dev.ymljagroup_vars/prod.ymlon erineva sisuga -
--limit devnäitab "ARENDUS" -
--limit prodnäitab "PRODUKTSIOON" - PR on avatud ja sisaldab tõendust mõlema keskkonna erinevusest