Playbook Ansible para implantar no novo servidor e remover dos outros

0

Estou brincando com a ideia de ter um manual que executa uma determinada tarefa quando um servidor está em um grupo e outra quando não está em um grupo.

Digamos que eu tenha office1 com todos os servidores e eu tenha um servidor DHCP primário:

[office1]
server1
server2
server3

[dhcp]
server2

Eu quero ter certeza de que só tenho um servidor DHCP:

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

Para que, quando eu alterar o DHCP para o servidor3, ele seja instalado em 3 e removido de 2. O rolo será executado em todos os servidores office1 quando uma nova implantação DHCP for concluída.

Alguma idéia com isso? É uma má ideia? Como você resolveria esse problema?

    
por Dax 02.09.2017 / 11:44

1 resposta

1

Se esta abordagem funciona para você, então vá com ela. Não há nada de bom ou ruim na maneira como você define a configuração. Além disso, você pode usar variáveis.

A condicional deve, no entanto, ser semelhante à seguinte:

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

group_names é magic variable que contém uma lista de todos os grupos aos quais o alvo em execução pertence.

    
por 07.11.2017 / 06:10

Tags