команда ансибельного цикла для нескольких хостов

#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.