逆引きマニュアル: Ansibleでリブートする方法

投稿日: Ansible

やりたいこと

Ansibleを使ってリブートする方法です。

前提条件

以下の環境で確認しています。

概要

単に以下のようにrebootコマンドを使うと、 リブートはできますが、エラーになります

- command: /usr/sbin/reboot
  become: true

手順

いろいろな方法がありますが、 Reboot and Wait for · Issue #14413 · ansible/ansibleの以下の方法でOKでした。

    - name: reboot
      shell: "sleep 5 && reboot"
      async: 1
      poll: 0

    - name: wait
      wait_for_connection:
        connect_timeout: 20
        sleep: 5
        delay: 5
        timeout: 60

async, pollは、非同期実行を表します。

タスクを実行したあと完了を待つ必要がない場合に、poll=0を実行します。

Alternatively, if you do not need to wait on the task to complete, you may run the task asynchronously by specifying a poll value of 0:

wait_for_connetionは、2.3から入ったモジュールで、 リモート接続が利用可能になるまで待ちます。

wait_for_connection - Waits until remote system is reachable/usable — Ansible Documentation

パラメータは以下になります。

すなわち、以下のようになります。

補足

Ansibleの開発者が、開発の意向を示しています。

Proper reboot module as action plugin · Issue #16186 · ansible/ansible

マニュアル


ページトップへ戻る