Tengo problemas para encontrar la mejor manera de aplicar hosts / roles a diferentes sistemas operativos en Ansible.
Actualmente estoy usando Ansible para generar máquinas virtuales Windows / Mac / Linux, y cada una de las máquinas virtuales tiene diferentes roles que deben aplicarse.
He leído las mejores prácticas y he tratado de seguirlas, especialmente para usar el método de agrupación, pero todavía no estoy seguro, ya que mencionan principalmente servidores web y servidores de base de datos.
site.yml
- name: Apply common configuration to all nodes
hosts: all
roles:
- common
- name: Configure and deploy test node 1
hosts: build-test-node
roles:
- build-machine-test-1
- name: Configure and deploy test node 2
hosts: build-test-node-2
roles:
- build-machine-test-2
entornos / prueba / grupos
[win_build_nodes]
win_build_machine_1
win_build_machine_2
[mac_build_nodes]
mac_build_machine_1
entornos / prueba / hosts
win_build_machine_1 ansible_host=......
win_build_machine_2 ansible_host=......
mac_build_machine_1 ansible_host=......
entornos / prueba / meta
[mac_build_nodes]
[win_build_nodes]
[win:children]
win_build_nodes
[mac:children]
mac_build_nodes
[linux:children]
[build_nodes:children]
win_build_nodes
mac_build_nodes
El environment/test/meta
archivo Creo que hay que cambiar con el build_nodes:children
, pero no estoy seguro de qué. Anteriormente solo estaba haciendo que las máquinas virtuales tuvieran todos los roles incorporados con lo siguiente:
Sitio antiguo.yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
Pero luego me di cuenta de que no quería que todo se construyera en la misma máquina. Tenga en cuenta, build-machine-test-1
y 2
ambos tienen separada de Windows / Mac / Linux se basa ya que detectan qué incluir basado en el sistema operativo.
¿Alguien puede sugerir una mejor manera de separar las máquinas virtuales en función de los sistemas operativos?
build-machine-test-1
roles tiene sus propias construcciones separadas basadas enos_family
. Mi pregunta es para un nivel superior donde las propias máquinas de construcción deben separarse antes de que se apliquen los roles ...