Если вы сделаете следующее:
- name: print to stdout
command: echo "My log information"
register: logdata
- debug: msg="{{ logdata.stdout }}"
В logdata
содержимое переменной register будет отображаться вместе с полным доступным журналом. Я хотел бы, чтобы эти отладочные сообщения хранились в другом файле. Возможно ли это каким-либо образом?
Другой альтернативой, о которой я подумал, был массив регистровых переменных. И, наконец, используйте copy
модуль, чтобы поместить содержимое этого массива в файл. Не лучший вариант. Если возможно перенаправить стандартный вывод debug
в другой файл, было бы круто.
Используйте local_action, как показано ниже, после захвата вывода в переменной:
- local_action:
module: copy
content: "{{ variable1 }}"
dest: /tmp/whatever.out
Вы можете использовать модуль lineinfile?
- lineinfile: create=yes regexp="NONEXISTENTLINE" dest=/tmp/ansible.log line="{{logdata.stdout}}" state=present
Я использую regexp = "NONEXISTENTLINE", чтобы одно и то же сообщение регистрировалось несколько раз. Может тебе это и не нужно.
Журнал будет на каждом целевом хосте. Тянуть или нет.
В качестве альтернативы вы можете проанализировать вывод с помощью awk или чего-то еще.