Qual é o significado de uma tarefa Ansible que informa que algo mudou?


20

Eu tenho uma tarefa que verifica se meu processo está escutando na porta 8080 e somente quando o código de saída não é zero, eu executaria failcom uma mensagem.

Quando o serviço está sendo executado, ele informa que o status foi alterado. Eu quero dizer isso ok. O que changedrealmente significa um status no Ansible?

Respostas:


11

Qualquer coisa que dependa de algo no destino receberá o status "alterado" quando executado, mesmo que seja apenas um comando do shell para ecoar algo.

Para suprimir o status "alterado", você pode adicionar a seguinte linha à tarefa:

changed_when: false

Este e outros itens relevantes estão listados nesta página do documento .


27

Tarefas possíveis devem ser idempotentes . Por exemplo. se a tarefa não modificar nada, ela deve retornar em okvez de changed. A maioria dos módulos e tarefas integrados já são, mas para tarefas como commande shellvocê precisa ajudar um pouco.

Para uma tarefa que verifica puramente e não modifica nada, você deve adicionar:

changed_when: False
always_run: yes

O último permite que a tarefa seja executada mesmo no modo de verificação .

Por uma questão de integridade, essas tarefas geralmente são combinadas com outra que faz a modificação real, por exemplo:

- command: check command that returns true when no change needed
  register: result
  changed_when: False
  always_run: yes
- command: modify command
  when: result.rc != 0

2
resposta deve verificada
mastier
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.