Ansible: リトライ処理

Ansible の Playbook での、リトライ処理の書き方を説明します。
until を使うことで、リトライが可能です。

until によるリトライ

script の実行結果により、リトライを実行する Playbook のサンプルです。

---
- name: Test Playbook
  hosts: 192.168.1.1

  tasks:
  - name: Run Script
    until: ret.rc == 0
    script: ./test-script.ps1
    register: ret
    retries: 5
    delay: 5

test-script.ps1 の戻り値が0でない場合は、5秒間隔で5回リトライする Playbook です。

ret.rc は、script の戻り値です。戻り値が0になるまで実行します。

    until: ret.rc == 0

test-script.ps1 の戻り値を、register で ret に格納します。

    script: ./test-script.ps1
    register: ret

retries でリトライ回数を指定します。

    retries: 5

delay でリトライ間隔を指定します。単位は秒、デフォルト値は1秒です。

    delay: 5

以上のように until を使うことで、リトライ処理を実行できます。