質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

1回答

322閲覧

Ansible lintチェックによる Tasks that run when changed should likely be handlers のエラー解消の仕方

khaii21

総合スコア67

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2023/08/22 07:49

編集2023/08/22 08:00

実現したいこと

特定のファイルの削除(absent)をfileモジュールを使って実施しています。
もし削除に失敗した場合(changed_true)にはplaybookを強制終了させたいです。
playbookの動作は想定通りの結果となりますが、Ansible-lintによるチェックで
該当のエラーが解消できません。

handlersの機能を使うことでエラーを回避出来る旨のメッセージだと思いますが
具体的にどのようにすれば良いのか理解が出来ておりません。
handlersで処理する場合、全てのタスクの終了後に実施される認識でして
playbookを強制終了出来ないのでは?と考えています。
解消方法をご存じの方がいらっしゃいましたら、ご教授頂けないでしょうか。

宜しくお願い致します。

発生している問題・エラーメッセージ

WARNING Listing 1 violation(s) that are fatal no-handler: Tasks that run when changed should likely be handlers. roles/hoge/tasks/delete_hoge.yml:10 Task/Handler: 削除に失敗したため、playbookを強制終了しました

該当のソースコード

playbook.yml

1- name: Delete hoge.log 2 ansible.builtin.file: 3 path: /var/log/hoge.log 4 state: absent 5 register: hoge_delete_exec 6- name: Result delete hoge_log 7 ansible.builtin.debug: 8 var: hoge_delete_exec.failed 9- name: "削除に失敗したため、playbookを強制終了しました" 10 ansible.builtin.meta: end_play 11 when: hoge_delete_exec.changed_true

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

11行目を下記にように修正して自己解決致しました。

when: not hoge_delete_exec.changed

投稿2023/08/22 08:22

khaii21

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問