Скорее всего нехватка энтропии. В комментариях вы подтвердили, что некоторые действия на коробке заставляют sshd
стартовать быстрее -, что происходит потому, что ваши действия вносят свой вклад в источники энтропии.
Установите (и убедитесь, что он запускается)haveged
(или, в старых дистрибутивах,rngd
).
Используйте ansible _play _batch«Список активных хостов в текущем запуске воспроизведения, ограниченный серийным номером, также известный как «пакет». Неудачные/недоступные хосты не считаются «активными». "
{% for network_switch in ansible_play_batch %}
...
Если пакетов больше, файл будет перезаписан. См. Стратегии управления выполнением плейбука :и многое другое . См. Переменная даты Ansible , как использовать дату и создавать уникальные имена файлов. Например
dest: "{{ file_path ~ '-' ~
ansible_date_time.date ~ '-' ~
ansible_date_time.hour ~ '-' ~
ansible_date_time.minute ~ '-' ~
ansible_date_time.second }}"
Создать один файл
Следующим вариантом было бы создать список со всеми элементами в первом воспроизведении и записать файл во втором воспроизведении (изменить шаблон и использовать мой _список). Например
- hosts: all
tasks:
- name: Getting the OS Information
...
- name: Collect the list
set_fact:
my_list: "{{ my_list|default([]) +
[hostvars[item]['ansible_hostname'],
hostvars[item]['kernel.stdout'],
hostvars[item]['httpd.stdout']] }}"
loop: "{{ ansible_play_batch }}"
run_once: true
- hosts: all
tasks:
- name: Take a look at what was collected
debug:
var: my_list
run_once: true
- name: create HTML report
template:
src: report.j2
dest: "{{ file_path }}"
delegate_to: localhost
run_once: true
(не тестировалось)
Сборник игр:
имя :построить отчет об инвентаризации Centos хосты :клиент
варс :файл _путь :/var/www/html/generated _report.html
задачи:
имя :Получение информации об ОС команда :'имя -r' регистр :ядро
имя :Получение информации об ОС оболочка :"статус systemctl sshd | grep -я активен | awk '{print $3}'" регистр :httpd
имя :Собрать список набор _факт :мой список _:"{{ мой список _| по умолчанию([] )+ [hostvars[item]['ansible _имя хоста'], hostvars[item]['kernel.stdout'], hostvars[item]['httpd.stdout']] }}" loop :"{{ ansible _play _batch }}" выполнить _один раз :верно
имя :Сбор всей информации хосты :клиент вары :файл _путь :/var/www/html/generated _report.html задачи:
имя :Взгляните на то, что было собрано отладка :var :мой _список выполнить _один раз :верно
имя :создать отчет HTML шаблон :источник :отчет.j2 dest :"{{ файл _путь }}" делегировать _на :локальный хост выполнить _один раз :верно
Шаблон Джиндзя:
{% для сети _переключатель в доступном _воспроизведении _пакет %} {{ hostvars[сеть _переключатель]['доступное _имя хоста'] }} {{ hostvars[сеть _переключатель]['kernel.stdout'] }} {{ hostvars[сеть _переключатель]['httpd.stdout'] }} {% endfor%}