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