amarao.reboot_if_needed_for_upgrade

перезагрузка-если-необходима-для-обновления

Этот плейбук перезагружает сервер и ждет, пока он снова станет доступен. По умолчанию перезагрузка происходит только в том случае, если операция перезагрузки ожидает выполнения из-за операции apt-get upgrade (/var/run/reboot-required).

Требования

Сервер должен быть доступен с машины ansible по прямому TCP-каналу по его IP.

История изменений

  • добавлена проверка доступности порта перед перезагрузкой. Используйте skip_pre_reboot_check=true, чтобы пропустить ее.
  • изменена структура, чтобы обойти неприятные ошибки SSH: Не удалось подключиться к хосту через ssh: Соединение с 192.168.0.2 закрыто., теперь используется ansible_default_ipv4.address.

Переменные роли

Роль проверяет, доступен ли проверяемый порт, перезагружает сервер, если это запрошено (apt или кто-то другой, установивший флаг перезагрузки), и ждет, пока порт снова станет доступен.

Это будет работать только при прямом доступе к серверу. Обычно используется ansible_default_ipv4.address, чтобы проверить, доступен ли сервер. Если у вас возникают проблемы с получением внешнего (белого) IP-адреса от инстанса, посмотрите роль get-external-ip-via-dyndns.

Переменные:

  • ip_to_probe: IP-адрес для ожидания (по умолчанию ansible_default_ipv4.address, который собирается модулем setup). Это должен быть корректный IP или доменное имя, и вы не можете использовать имена из вашего ssh_config здесь.
  • port_to_probe: порт для проверки (по умолчанию 22, ssh)
  • delay_before_probe: задержка после команды перезагрузки (по умолчанию 10)
  • probe_timeout: максимальное время ожидания (если ip_to_probe:port_to_probe не отвечает в течение probe_timeout, роль завершится ошибкой. по умолчанию 70 секунд)
  • force_reboot: Перезагрузить независимо от /var/run/reboot-required (по умолчанию: False)
  • reboot_delay: Задержка перед выполнением команды перезагрузки (по умолчанию: 2 секунды), чтобы дать ssh возможность обработать команду
  • reboot_flag: Путь к флагу перезагрузки
  • skip_pre_reboot_check: Пропустить проверку порта перед перезагрузкой. Обычно плейбук останавливается, если не может достигнуть порта перед выполнением перезагрузки
  • pre_reboot_timeout: Как долго ждать порт на проверке перед перезагрузкой

Примеры плейбуков

Простой:

- hosts: servers
  vars:
    probe_timeout: 360
  roles:
     - amarao.reboot_if_needed_for_upgrade

Сложный:

- hosts: servers
  vars:
    port_to_probe: 2222
    ip_to_probe: "{{ ansible_ssh_host }}"
    delay_before_probe: 120
    probe_timeout: 360
    force_reboot: True
    skip_pre_reboot_check: true
  role:
    - amarao.reboot_if_needed_for_upgrade

Лицензия

BSD

Информация об авторе

(C) 2016-2019, servers.com, автор Джордж Шуклин

О проекте

Reboots if reboot is pending after apt-get upgrade (dist-upgrade) and waits until host returns back online.

Установить
ansible-galaxy install amarao.reboot_if_needed_for_upgrade
Лицензия
Unknown
Загрузки
195
Владелец