何かが変更されたことを報告するAnsibleタスクの重要性は何ですか?


20

プロセスがポート8080でリッスンしているかどうかを確認するタスクがあり、終了コードがゼロでない場合にのみfail、メッセージを表示して実行します。

サービスの実行中、ステータスが変更されたことが報告されます。言ってほしいokchangedAnsibleでステータスとは実際にはどういう意味ですか?

回答:


11

ターゲット上の何かに依存しているものは、何かをエコーするための単なるシェルコマンドであっても、実行時にステータス「変更」を取得します。

「変更済み」ステータスを抑制するには、タスクに次の行を追加できます。

changed_when: false

これと他の関連事項は、このansible docページにリストされています


27

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

2
これは答えを検証する必要があります
マスティア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.