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 作
