問題タブ [ansible-handlers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ansible - Ansible がハンドラーでロールのデフォルト変数を検出しない
ansible は Role Default 変数を同じ Role 内のハンドラーに渡しますか?
問題のあるプレイブックの最小限の抜粋を次に示します。
役割階層
ファイルの中身はこちら
ガンコーン/デフォルト/main.yml
ガンコーン/ハンドラー/main.yml
ファイナライズ/タスク/main.yml
playbook.yml
私の知る限り、すべてが良さそうです。ただし、プレイブックの実行中にこのエラーが発生します
失敗した!=> {"failed": true, "msg": "フィールド 'args' に無効な値があり、未定義の変数が含まれているようです。エラーは次のとおりです: 'gu_log' is undefined\n\nエラーは次のように表示されます「/roles/gunicorn/handlers/main.yml」: 行 3、列 3 にありますが、正確な構文の問題によっては\nファイルの別の場所にある可能性があります。\n\n問題のある行は次のようです:\n\ n\n- 名前: Gunicorn を再起動します\n ^ ここ\n"}
Ubuntu 12.04 LTS での Ansible 2.2 の使用
これは、すべてのディレクトリを作成し、私の問題を示すtechrafのスクリプトの修正版です
出力
遊ぶ [展開]
タスク [セットアップ] ************************************************** ******************** OK: [localhost]
TASK [テストハンドラ] ********************************************* ************** 致命的: [localhost]: 失敗しました! => {"failed": true, "msg": "フィールド 'args' に無効な値があり、未定義の変数が含まれているようです。エラーは次のとおりです: 'gu_log' is undefined\n\nエラーは次のように表示されます「/rtindru-test/roles/finalize/tasks/main.yml」: 行 2、列 3 にありますが、正確な構文の問題によっては、\nファイルの別の場所にある可能性があります。\n\n問題のある行は:\n\n---\n- name: Test Handlers\n ^ here\n"} 再試行するには、 --limit @/rtindru-test/playbook.retry を使用します
再生の要約 **************************************************** ********************* localhost : ok=1 変更済み=0 到達不能=0
失敗=1
ansible - Playbook 全体で Ansible ハンドラーを 1 回だけ実行する
Playbook 全体で 1 回だけハンドラーを実行したいと考えています。
Playbook ファイルで次のように include ステートメントを使用しようとしましたが、これにより、ハンドラーが複数回実行され、再生ごとに 1 回実行されました。
handlers/main.yml の内容は次のとおりです。
ハンドラーに通知するタスクの 1 つの例を次に示します。
プレイブック全体でハンドラーを 1 回だけ実行するようにプレイブックを取得するにはどうすればよいですか?