amarao.reboot_if_needed_for_upgrade
reboot-w-przypadku-aktualizacji
Ten playbook ponownie uruchamia serwer i czeka, aż powróci online.
Z założenia ponownie uruchamia tylko wtedy, gdy operacja ponownego uruchamiania jest zaplanowana z powodu operacji apt-get upgrade
(/var/run/reboot-required).
Wymagania
Serwer powinien być dostępny z maszyny ansible przez bezpośrednie połączenie TCP za pomocą swojego adresu IP.
Historia zmian
- dodano wstępną kontrolę, czy port jest osiągalny. Użyj
skip_pre_reboot_check=true
, aby to pominąć. - przearanżowano, aby obejść nieprzyjemne błędy SSH:
Failed to connect to the host via ssh: Shared connection to 192.168.0.2 closed.
, teraz używaansible_default_ipv4.address
.
Zmienna roli
Rola sprawdza, czy port jest osiągalny, ponownie uruchamia serwer, jeśli ponowne uruchomienie jest żądane (przez apt lub przez kogokolwiek ustawiającego flagę ponownego uruchomienia), czeka, aż port stanie się ponownie dostępny.
Będzie działać tylko wtedy, gdy masz bezpośredni dostęp do tego serwera. Normalnie ansible_default_ipv4.address
jest używane do sprawdzenia, czy serwer jest online. Jeśli masz trudności ze zdobyciem zewnętrznego (białego) adresu IP z instancji, sprawdź rolę get-external-ip-via-dyndns.
Zmienne:
ip_to_probe
: adres IP, na który czekasz (domyślnieansible_default_ipv4.address
, zbierany przez moduł setup). Musi być poprawnym adresem IP lub nazwą domeny, a nazwy z twojegossh_config
nie mogą być używane.port_to_probe
: port do weryfikacji (domyślnie 22, ssh)delay_before_probe
: opóźnienie po poleceniu ponownego uruchomienia (domyślnie 10)probe_timeout
: maksymalny czas oczekiwania (jeśliip_to_probe
:port_to_probe
nie odpowiada w czasieprobe_timeout
, rola kończy się niepowodzeniem. domyślnie 70 sekund)force_reboot
: Wymuś ponowne uruchomienie, niezależnie od /var/run/reboot-required (domyślnie: Fałsz)reboot_delay
: Opóźnienie przed wydaniem polecenia ponownego uruchomienia (domyślnie: 2 sekundy), aby pomóc SSH przetworzyć poleceniereboot_flag
: Ścieżka do flagi ponownego uruchomieniaskip_pre_reboot_check
: Pomiń wstępną kontrolę portu przed ponownym uruchomieniem. Normalnie playbook zatrzymuje się, jeśli nie może osiągnąć portu przed wykonaniem ponownego uruchomieniapre_reboot_timeout
: Jak długo czekać na port w wstępnej kontroli przed ponownym uruchomieniem
Przykładowe playbooki
Prosty:
- hosts: servers
vars:
probe_timeout: 360
roles:
- amarao.reboot_if_needed_for_upgrade
Zaawansowany:
- 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
Licencja
BSD
Informacje o autorze
(C) 2016-2019, servers.com, autorstwa George'a Shuklina
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