Get ekki sagt að ég sé Ansible snillingur, en það væri líklega best að raða þessu upp með roles, eins og
er lýst hérna í Ansible documentationinu.
Hefur sem sagt eitt toplevel site.yml skjal sem gerir ekkert annað en að importa playbookunum fyrir ákveðin hlutverk. Hefur líka eitt toplevel inventory skjal, production.ini, sem segir hvaða hostar tilheyra hvaða hópum (ef maður vill hafa fleiri „umhverfi,“ eins og staging eða test þá hefur maður eitt inventory fyrir hvert). Síðan, fyrir hvert role/hóp er eitt toplevel playbook sem gerir ekkert annað en að assigna roles á hópa og role mappa eins og er lýst í documentationinu sem inniheldur sjálfar skilgreiningarnar á hvernig roleið er sett upp. Hvert role þarf að hafa að minnsta kosti skjalið tasks/main.yml. Grunnskipulagið er sem sagt svona:
Kóði: Velja allt
- <top level dir>:
- site.yml
- production.ini
- hopur_a.yml
- hopur_b.yml
- roles:
- hopur_a:
- tasks:
- main.yml
- hopur_b:
- tasks:
- main.yml
Það þarf miklu stærri beinagrind þegar þetta er gert svona og það tekur smá stund að venjast skipulaginu, en mér finnst ég vera svo miklu meira að vinna with the grain eftir að ég skipulagði ansibleið mit svona.
Þegar þú ert kominn með þetta skipulag geturðu keyrt inn öll config með því að keyra:
Kóði: Velja allt
ansible-playbook -i production.ini site.yml
Ef þú vilt bara keyra ákveðna hópa geturðu keyrt skipun eins og...
Kóði: Velja allt
ansible-playbook --limit hopur_a -i production.ini site.yml