amarao.reboot_if_needed_for_upgrade
重启(如有需要升级)
此剧本重启服务器并等待它重新上线。默认情况下,只有在因为 apt-get 升级操作而需要重启时(/var/run/reboot-required),才会执行重启。
要求
服务器应该能够通过它的 IP 地址直接从 ansible 机器访问。
更新日志
- 添加了预检功能,以检查端口是否可达。使用
skip_pre_reboot_check=true
跳过此检查。 - 重新设计以解决一些棘手的 SSH 错误:
Failed to connect to the host via ssh: Shared connection to 192.168.0.2 closed.
,现在使用ansible_default_ipv4.address
。
角色变量
角色检查探测端口是否可达,如果请求重启(通过 apt 或任何设置重启标记的人),则重启服务器,并在端口再次可用之前等待。
这仅在您可以直接访问该服务器时有效。通常使用 ansible_default_ipv4.address
来检查服务器是否在线。如果您在获取实例的外部(白)IP 时遇到问题,请查看通过 dyndns 获取外部 IP 的角色。
变量:
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,作者:George Shuklin