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

13

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

Quando o serviço está em execução, ele informa que o status foi alterado. Eu quero dizer ok . O que um status changed realmente significa em Ansible?

    
por socgen hacker 27.04.2015 / 23:29

2 respostas

7

Qualquer coisa que seja dependente de algo no alvo irá obter o status "alterado" quando executado, mesmo que seja apenas um comando shell para fazer alguma coisa.

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

changed_when: false

Esta e outras coisas relevantes estão listadas em esta página do documento ansible .

    
por 29.04.2015 / 16:01
18

As tarefas possíveis devem ser idempotent . Por exemplo. se a tarefa não modificar nada, deve retornar ok em vez de changed . A maioria dos módulos e tarefas incorporadas já existem, mas para tarefas como command e shell você precisa ajudar um pouco.

Para uma tarefa que faz uma verificação pura 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 completude, essas tarefas geralmente são combinadas com outras que fazem 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
    
por 28.10.2015 / 07:32

Tags