Portál AbcLinuxu, 6. května 2025 06:15
/etc/ansible/ /etc/ansible/roles /etc/ansible/files /etc/ansible/templatesV /etc/ansible/ udržuji a píši nové playbooky Teprve poslední dobou vše syncuji do gitlabu. Není to ale moc efektivní, protože /etc/ansible vzniká díky tomuto pěkný chaos, jsou tam staré již nepoužívané playbooky, nové verze a rozpracované a nedokončené skripty. Jaká je podle vás efektivní organizace ansible, playbooků, rolí, templatů a souborů? Samozřejmě jsem se díval na https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html Tentokrát bych to ale rád zkusil jinak a v domovském adresáři, který si budu stranou synchronizovat s git serverem. Díky za každý vhled.
├── docs ├── group_vars │ └── all ---------------------(proměnný globálně, třeba můj email,...) │ ├── vars.yml │ └── vault.yml ├── production ------------------(ansible-playbook -i production ... mám několik invertory: local,build,amazon,...) │ ├── hosts -------------------(klasika definice skupin jako roli pro jenotlivé stoje) │ └── host_vars │ ├── domain1.ltd ---------(ansible-playbook --limit domain1.ltd) │ │ ├── vars.yml │ │ └── vault.yml │ └── domain2.ltd │ ├── vars.yaml │ └── vault.yaml ├── roles │ ├── generic -----------------(obecnější role na kterých jsou postavený další role) │ │ ├── apache │ │ │ ├── defaults │ │ │ ├── handlers │ │ │ ├── meta │ │ │ ├── tasks │ │ │ └── templates │ │ ├── common │ │ │ └── tasks │ │ ├── docker │ │ │ ├── defaults │ │ │ ├── meta │ │ │ ├── tasks │ │ └── mariadb │ │ ├── defaults │ │ ├── handlers │ │ ├── meta │ │ ├── tasks │ │ └── templates │ ├── nextcloud │ │ ├── defaults │ │ ├── meta │ │ └── tasks │ └── xibo │ ├── defaults │ ├── meta ----------------(definuje závislosti, které se musí projet, před rolí xibo třeba apache a docker) │ ├── tasks ---------------(samozřejmně jednotlivé "úkoly" rozdělit do bloků + tags takže je možno limitovat ansible-playbook --tags) │ │ ├── backup.yml │ │ ├── main.yml │ | └── setup.yml │ └── templates └── site.ymlA příklad nakonec dejme tomu, že chci novýho vhosta pro apache tak upravím
production/host_vars/domain1.ltd/vars.yml
a spustím ansible-playbook site.yml --ask-vault-pass -i production --limit domain1.ltd --tags apache-vhosts
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.