プロセスがポート8080でリッスンしているかどうかをチェックするタスクがあり、終了コードがゼロでない場合にのみ、メッセージでfail
を実行しますか?.
サービスが実行されている場合、ステータスが変更されたことが報告されます。 ok
と言ってほしい。 changed
ステータスは実際にAnsibleで何を意味しますか?
ターゲット上の何かに依存しているものは、それが何かをエコーする単なるシェルコマンドであっても、実行時に「変更済み」ステータスを取得します。
「変更済み」ステータスを抑制するには、タスクに次の行を追加します。
changed_when: false
これとその他の関連事項は このansible docページ にリストされています。
Ansibleタスクは べき等 である必要があります。例えば。タスクが何も変更しない場合、ok
ではなくchanged
を返す必要があります。ほとんどの組み込みモジュールとタスクはすでにありますが、command
やShell
などのタスクについては、少し手助けする必要があります。
純粋にチェックを行い、何も変更しないタスクの場合は、以下を追加する必要があります。
changed_when: False
always_run: yes
後者の場合、タスクは チェックモード でも実行できます。
完全を期すために、このようなタスクは通常、実際の変更を行う別のタスクと組み合わされます。例:
- command: check command that returns true when no change needed
register: result
changed_when: False
always_run: yes
- command: modify command
when: result.rc != 0