問題タブ [ansible-role]
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 で動的ロールを作成する
いくつかのドキュメントを調べた後、with_items
forは使用できないと結論付けましたroles
。
そこで、filter_plugin
役割の辞書のリストを生成する を作成しました。
これが私のものPlay
です:
上記のロールを動的に生成したいのでfilter_plugin
、辞書のリストを生成する を作成しましたが、それは正しく機能しています。
これが私のプラグインです:
私の計画は、次のような役割を生成することでした:
どこEC2_REGIONS
ですか['ap-southeast-2', 'us-east-1']
しかし、役割はそのようには機能しません。
次のエラーが表示されます:
ERROR! A malformed role declaration was encountered.
何か考え/アイデアはありますか?
ansible - 別のロールから (ansible galaxy から) eddyhub.gnome_shell ロールを呼び出す
Ansible Playbook に gnome 拡張機能をインストールしたいのですが、これを見つけました: https://galaxy.ansible.com/eddyhub/gnome_shell/
プレイブックを整理する方法として、別のタスク内からロールを呼び出したいので、このようなタスクを作成しました (これは (roles/common/tasks/gnome.yaml) にある完全なタスク ファイルです):
しかし、プレイブックを実行すると、次のエラーが発生します。
私は何を間違っていますか?
ansible - ロール内のすべてのインクルードを実行する Ansible
私は、同僚による古い役割に次のインクルードを持っています。
ただし、ロールをどのように含めるかに関係なく、Ansible は各インクルードを自動的に処理します。--list-tasksオプションを使用してこれを確認できます。
たとえば、私のプレイブックには次のものがあります
バージョン 2.1.1.0 (数週間前にアップグレード) で実行しています。この役割は、アップグレード前に正常に実行されていました。
したがって、このスタイルのロールへのインクルードが許可されなくなったのか、それとも別の構文を使用する必要があるのか 疑問に思っています。
ansible - Ansible: 一部のホストに対してのみ役割を実行する
アプリサーバーをインストールするためのいくつかの役割を持つ単一の Playbook があり、同じ Playbook を実稼働サーバーとテスト サーバーの両方に適用したいとします。
実稼働サーバーとテスト サーバーの両方に、実稼働サーバーにのみ適用する必要がある 1 つの例外を除いて、同じロール リストがあります。
このロールが同じ Playbook を使用する本番サーバーにのみ適用されるように指定することはできますか?
たとえば、プレイブックが次の場合:
2 つのインベントリがあります。1 つは本番用、もう 1 つはテスト用です。
テスト インベントリを使用して Playbook を実行するときに、「ファイアウォール」ロールを実行したくありません。
私の考えは、「プロダクション」インベントリに変数を設定するようなことを行い、「<var> が設定されている場合は、ロール「ファイアウォール」を実行する」などを使用することです...これが可能かどうか、そしてそれが可能かどうかはわかりませんは、どうすれば?
ansible - Ansible ロールのデフォルトを条件付きで設定する
擬似コード:
env が de の場合、変数名を hello に設定し、env が prod の場合、変数名を bye に設定します。
https://serverfault.com/questions/715769/ansible-change-default-value-according-to-a-conditionを試しました
エラー!ロール 'trial' の default/main.yml ファイルには、変数の辞書が含まれている必要があります
ansible - ansibleでロールを呼び出すときにbecomeをどのように使用しますか?
become
ansibleでロールを使用するとき、ユーザーはどのようにしますか?
たとえば、geerlingguy.nodejs
ansible galaxy のロールを使用して root として nodejs をインストールするにはどうすればよいでしょうか? ここに私が持っているものの関連部分があります:
しかし、それERROR! Syntax Error while loading YAML
は YAML ファイルで生成されます。
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