amarao.reboot_if_needed_for_upgrade
再起動が必要な場合のアップグレード
このプレイブックはサーバーを再起動し、オンラインに戻るのを待ちます。
デフォルトでは、apt-getアップグレード操作(/var/run/reboot-required)の結果、再起動が必要な場合にのみ再起動します。
要件
サーバーはAnsibleマシンからIP経由で直接TCPでアクセスできる必要があります。
変更履歴
- ポートが到達可能かどうかの事前確認を追加。確認をスキップするには
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をインスタンスから取得できない場合は、get-external-ip-via-dyndnsロールを確認してください。
変数:
ip_to_probe
: 待つIPアドレス(デフォルトはansible_default_ipv4.address
)。これは適切な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 作