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 を使うことで、リトライ処理を実行できます。