プロセスがポート8080でリッスンしているかどうかを確認するタスクがあり、終了コードがゼロでない場合にのみfail
、メッセージを表示して実行します。
サービスの実行中、ステータスが変更されたことが報告されます。言ってほしいok
。changed
Ansibleでステータスとは実際にはどういう意味ですか?
プロセスがポート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