Manual de estrategias de Ansible para implementar en un nuevo servidor y eliminarlo de otros

Manual de estrategias de Ansible para implementar en un nuevo servidor y eliminarlo de otros

Estoy jugando con la idea de tener un libro de jugadas que ejecute una determinada tarea cuando un servidor está en un grupo y otra tarea cuando no está en un grupo.

Digamos que tengo office1 con todos los servidores y tengo un servidor DHCP principal:

[office1]
server1
server2
server3

[dhcp]
server2

Quiero asegurarme de tener solo un servidor DHCP:

- include: tasks/add-dhcp.yml
  when: inventory_hostname in dhcp
- include: tasks/remove-dhcp.yml
  when: inventory_hostname not in dhcp

De modo que cuando cambie DHCP al servidor3, se instalará en 3 y se eliminará del 2. La transferencia se ejecutará en todos los servidores de office1 cuando se realice una nueva implementación de DHCP.

¿Alguna idea con esto? ¿Es una mala idea? Como resolverías este problema?

Respuesta1

Si este enfoque funciona para usted, hágalo. No hay nada bueno o malo en la forma en que define la configuración. Aparte de eso, puedes usar variables.

Sin embargo, el condicional debería verse como se muestra a continuación:

- include_tasks: tasks/remove-dhcp.yml
  when: `dhcp` not in group_names

group_nameses unvariable mágicaque contiene una lista de todos los grupos a los que pertenece el objetivo de ejecución.

información relacionada