Ansible Repo – estructura

El informe sugerido por Ansible se puede ver en: http://docs.ansible.com/ansible/playbooks_best_practices.html

production # inventory file for production servers staging # inventory file for staging environment group_vars/ group1 # here we assign variables to particular groups group2 # "" host_vars/ hostname1 # if systems need specific variables, put them here hostname2 # "" library/ # if any custom modules, put them here (optional) filter_plugins/ # if any custom filter plugins, put them here (optional) site.yml # master playbook webservers.yml # playbook for webserver tier dbservers.yml # playbook for dbserver tier roles/ common/ # this hierarchy represents a "role" tasks/ # main.yml # <-- tasks file can include smaller files if warranted handlers/ # main.yml # <-- handlers file templates/ # <-- files for use with the template resource ntp.conf.j2 # <------- templates end in .j2 files/ # bar.txt # <-- files for use with the copy resource foo.sh # <-- script files for use with the script resource vars/ # main.yml # <-- variables associated with this role defaults/ # main.yml # <-- default lower priority variables for this role meta/ # main.yml # <-- role dependencies webtier/ # same kind of structure as "common" was above, done for the webtier role monitoring/ # "" fooapp/ # "" 

Mi pregunta es sobre el nivel de este repository: ¿tiene uno de estos formattings para cada proyecto / aplicación o es para todo el patrimonio?

Aclamaciones

Tomo un enfoque híbrido. Cada equipo / proyecto tiene su propio espacio, pero yo mantengo un deviseio global y un set de group_vars relacionados con la infraestructura de la networking y del centro de datos.

Ansible es flexible, así que comience de forma simple y moldee para sus equipos particulares y la forma en que su empresa trabaja.

Eso depende de su preference y / o el tamaño / complejidad de sus proyectos. Creo que tiene mucho sentido tener proyectos separados en diferentes repositorys.

Si tiene roles comunes utilizados por múltiples proyectos, puede usar los submodules de git (doloroso si trabaja con twigs / tenedores) o Ansible Galaxy para instalarlos de otro repository.