Portál AbcLinuxu, 24. dubna 2024 08:28


Dotaz: Jak efektivně organizovat ansible playbooky a role?

15.5.2019 19:21 majales | skóre: 29 | blog: Majales
Jak efektivně organizovat ansible playbooky a role?
Přečteno: 478×
Odpovědět | Admin
Zdravím, Používám ansible již od roku 2016, a povětšinou má všechny playbooky, role, oranizovány takto:
/etc/ansible/
/etc/ansible/roles
/etc/ansible/files
/etc/ansible/templates
V /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.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.5.2019 21:02 Denny
Rozbalit Rozbalit vše Re: Jak efektivně organizovat ansible playbooky a role?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Už Ansible používám taky nějaký čas, ale nejsem si jistej jako moc je ansible nebo můj workflow efektivní, ale zatím jsem nic co by my vyhovovalo víc nepotkal, možná až se odhodlám prokousat zkrz Nix, no takže pro inspiraci (trošku to promažu, zjednoduším a rychle okomentuju)
├── 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.yml
A 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

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.