Como enviar mensagens de depuração Ansible para outro arquivo?

3

Se você fizer o seguinte:

- name: print to stdout
  command: echo "My log information"
  register: logdata

- debug: msg="{{ logdata.stdout }}"

O conteúdo da variável logdata register será exibido junto com o log completo ansible. Eu gostaria que essas mensagens de depuração fossem armazenadas em outro arquivo. Isso é possível por qualquer meio?

A outra alternativa que pensei foi ter uma matriz de variáveis de registro. E, finalmente, use o módulo copy para colocar o conteúdo desse array em um arquivo. Não é a melhor opção. Se é possível redirecionar o stdout de debug para outro arquivo, seria legal.

    
por 0aslam0 21.09.2016 / 09:12

2 respostas

1

Você pode usar o módulo lineinfile?

- lineinfile: create=yes regexp="NONEXISTENTLINE" dest=/tmp/ansible.log line="{{logdata.stdout}}" state=present

Eu uso regexp="NONEXISTENTLINE" para permitir que a mesma mensagem seja registrada várias vezes. Talvez você não precise disso.

O log estará em cada host de destino. Puxe ou não.

Alternativamente, você pode analisar a saída com awk ou algo assim.

    
por 21.09.2016 / 10:53
0

Use local_action como depois de capturar a saída em uma variável:

- local_action: 
        module: copy 
        content: "{{ variable1 }}"
        dest: /tmp/whatever.out
    
por 26.07.2018 / 06:35