#ansible
Вопрос:
Сборник пьес
---
- hosts: all
gather_facts: no
tasks:
- name: check for server ssh
wait_for:
port: 22
host: "{{ item }}"
state: started
search_regex: SSH
delay: 5
timeout: 300
register: ssh_out
ignore_errors: true
with_items:
- 192.168.153.31
- 192.168.153.32
- lineinfile:
line: "{{item.state}}"
path: /home/ubuntu/playbooks/log/ssh_log
create: yes
loop: "{{ ssh_out.results }}"
Ошибка: объект «PermissionError» не может быть подписан. Я хотел бы просмотреть результаты ssh_out и записать файл журнала.
Ответ №1:
Используется hosts
для перебора хостов. Вот что ДЕЛАЕТ Ансибль.
---
- hosts: 192.168.153.31, 192.168.153.32all
gather_facts: no
tasks:
- name: check for server ssh
wait_for:
port: 22
state: started
search_regex: SSH
delay: 5
timeout: 300
register: ssh_out
ignore_errors: true
Чтобы получить выходные данные в журнале:
- lineinfile:
line: "{{ssh_out.results.state}}"
path: /home/ubuntu/playbooks/log/ssh_log
create: yes
delegate_to: localhost
Комментарии:
1. Я хочу просмотреть результаты и записать журнал с помощью lineinfile….. Я не хочу изменять способ проверки wait_for….
2. Я добавлю
lineinfile
, но вы должны быть в состоянии понять это сами.
Ответ №2:
По умолчанию Ansible отправляет выходные данные об играх, задачах и аргументах модуля на ваш экран (STDOUT) на узле управления. Если вы хотите записать выходные данные Ansible в журнал, у вас есть три варианта:
Чтобы сохранить выходные данные Ansible в одном журнале на узле управления, задайте параметр файла конфигурации log_path. Возможно, вы также захотите установить display_args_to_stdout, что помогает дифференцировать аналогичные задачи, включая значения переменных в вывод Ansible.
Чтобы сохранить выходные данные Ansible в отдельных журналах, по одному на каждом управляемом узле, задайте параметры файла конфигурации no_target_syslog и syslog_facility.
Чтобы сохранить вывод Ansible в защищенную базу данных, используйте AWX или платформу автоматизации Red Hat Ansible. Затем вы можете просмотреть историю на основе хостов, проектов и конкретных запасов с течением времени, используя графики и/или API REST.