
Estou brincando com a ideia de ter um manual que execute uma determinada tarefa quando um servidor estiver em um grupo e outra tarefa quando não estiver em um grupo.
Digamos que eu tenha office1 com todos os servidores e tenha um servidor DHCP primário:
[office1]
server1
server2
server3
[dhcp]
server2
Quero ter certeza de que tenho apenas um servidor DHCP:
- include: tasks/add-dhcp.yml
when: inventory_hostname in dhcp
- include: tasks/remove-dhcp.yml
when: inventory_hostname not in dhcp
Assim, quando eu alterar o DHCP para server3, ele será instalado em 3 e removido de 2. A rolagem será executada em todos os servidores office1 quando uma nova implantação de DHCP for concluída.
Alguma idéia com isso? É uma má ideia? Como resolveria este problema?
Responder1
Se essa abordagem funcionar para você, siga em frente. Não há nada de bom ou ruim na maneira como você define a configuração. Fora isso, você pode usar variáveis.
A condicional, entretanto, deve ser semelhante a abaixo:
- include_tasks: tasks/remove-dhcp.yml
when: `dhcp` not in group_names
group_names
é umvariável mágicaque contém uma lista de todos os grupos aos quais o alvo em execução pertence.