【Ansible Tower/AWX】Linuxを再起動・シャットダウンする方法


この記事はプロモーションを含みます。

Ansible

ホーム > Ansible Tower・AWX リファレンス

Ansible Tower・AWXで、Linux機器を再起動・シャットダウン(停止)させる方法を解説します。

はじめに・環境

本記事では、Ansibleを使用して、Linux機器の再起動・シャットダウンさせる方法を説明します。
以下は、実行環境です。

  • コントロールノード
    • Ansible AWX 15.0.1
  • ターゲットノード
    • AlmaLinux release 9.0

再起動する方法

ここでは、Linux機器を再起動する方法を説明します。

サンプルプレイブック

Linux機器を再起動するサンプルプレイブックです。

---
- hosts: all
  gather_facts: False
  tasks:

  - name: 疎通確認(再起動前)
    ping:

  - name: 再起動
    reboot:
      reboot_timeout: 300
    become: yes

  - name: 疎通確認(再起動後)
    ping:

Linux機器を再起動する方法は様々な方法がありますが、
ここでは、Ansibleモジュールである「reboot」モジュールを使用しています。

rebootモジュールのパラメーターである「reboot_timeout」は、
再起動が完了し、接続出来るようになるまでの時間を定義します。
ここでは、300秒を設定していますが、再起動に時間が掛かりそうであれば、設定値を変更してみて下さい。

また、ターゲットノードが動作しているか確認するために、再起動前後で、pingを実行しています。

実行結果

サンプルの実行結果です。

Using /etc/ansible/ansible.cfg as config file
SSH password: 
BECOME password[defaults to SSH password]: 

PLAY [all] *********************************************************************

TASK [疎通確認(再起動前)] **************************************************************
ok: [STKPUB002] => {"changed": false, "ping": "pong"}

TASK [再起動] *********************************************************************
changed: [STKPUB002] => {"changed": true, "elapsed": 19, "rebooted": true}

TASK [疎通確認(再起動後)] **************************************************************
ok: [STKPUB002] => {"changed": false, "ping": "pong"}

PLAY RECAP *********************************************************************
STKPUB002                  : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

シャットダウンする方法

ここでは、Linux機器をシャットダウン(停止)する方法を説明します。

サンプルプレイブック

Linux機器をシャットダウンするサンプルプレイブックです。

---
- hosts: all
  gather_facts: False
  tasks:

  - name: 疎通確認(シャットダウン前)
    ping:

  - name: シャットダウン
    shell: systemctl poweroff
    async: 5
    poll: 0
    become: yes

  - name: シャットダウン待ち合わせ
    pause:
      seconds: 15

  - name: 疎通確認(シャットダウン後)
    shell: "ping -c 1 {{ ansible_ssh_host }}"
    delegate_to: localhost
    register: result
    failed_when: result.rc == 0

Linux機器をシャットダウンさせる方法は様々なものがありますが、
ここでは「systemctl powerff」コマンドを実行しています。
ターゲットノードのOSによっては、コマンドを変更する必要があるかもしれません。

実行結果

サンプルの実行結果です。

SSH password: 
BECOME password[defaults to SSH password]: 

PLAY [all] *********************************************************************

TASK [疎通確認(シャットダウン前)] **********************************************************
ok: [STKPUB002]

TASK [シャットダウン] *****************************************************************
changed: [STKPUB002]

TASK [シャットダウン待ち合わせ] ************************************************************
Pausing for 15 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)\r
ok: [STKPUB002]

TASK [疎通確認(シャットダウン後)] **********************************************************
changed: [STKPUB002]

PLAY RECAP *********************************************************************
STKPUB002                  : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

コメント

タイトルとURLをコピーしました