Как я могу замедлить ansible? - PullRequest
1 голос
/ 13 февраля 2020

Есть ли способ замедлить ansible, помещая "сон 5 секунд" между каждым запуском сервера.

Например, мне нужно что-то вроде этого:

# --sleep-in-between is a hypothetical flag that would easily explain what I'm looking for
ansible production_servers -a "systemctl restart network" -f 1 --sleep-in-between 5secs

Итак, если production_servers - это группа серверов: server_1, server_2, server_3, то приведенная выше команда выполнит следующее:

Output:
server_1: Executing systemctl restart network
sleep 5 seconds
server_2: Executing systemctl restart network
sleep 5 seconds
server_3: Executing systemctl restart network
sleep 5 seconds

Мне нужно, чтобы автоматизация происходила медленно, чтобы я может наблюдать за системой на предмет любых сбоев, происходящих в системе мониторинга во время работы ansible.

1 Ответ

1 голос
/ 13 февраля 2020

Q: "Есть ли способ замедлить ansible, помещая« спящие 5 секунд »между каждым запуском сервера?»

A: Да. Это. Используйте модуль wait_for и установите для serial значение 1. Например,

$ cat playbook.yml
- hosts: all
  serial: 1
  tasks:
    - debug:
        msg: systemctl restart network
    - wait_for:
        timeout: "{{ sleep_in_between|default(5) }}"

По умолчанию каждый хост будет ждать 5 секунд перед завершением. Это можно установить из командной строки. Например, спать 10 секунд

$ ansible-playbook -e "sleep_in_between=10" playbook.yml
...