問題タブ [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: ロールのタスク構造
私は4つのプレイブックを持っています。そのうちの 2 つはターゲット マシンにサービスを展開しており、そのうちの 2 つはサービスを再度削除しています。今、私は彼らに役割を与えたいと思っています。しかし、ベストプラクティスが何であるかはわかりません。
2 つのデプロイ プレイブックは、変数とテンプレートが異なるだけで、まったく同じことを行っています。プレイブックの削除にも同じことが当てはまります。
Atm 私の構造は次のようになります。
これは、ユーザーが行うことを意図した方法ですか?
私は特に、まったく同じことを行うタスクについて疑問に思っていますが、異なる役割で見つけることができます。また、自分のタスクを main.yml タスク ファイルに含める必要がある場合。
ansible - 個々のタスクではなく、ロールまたは Playbook の Ansible 終了コード
Ansible ロールまたはプレイブック (個々のタスクごとではなく) の終了コードを取得し、終了コードに応じて分岐することは可能ですか?
タスクではなく、Ansible ROLE ごとに特定のフラグ (成功/失敗) を作成する必要があるアプリケーションがあります。役割ごとに 1 つの終了コード。
db2 - root として接続するときに、Ansible ロールから非特権ユーザーとして特定のタスクを実行する方法
Ansible のエスカレーション機能を使用して、権限のないユーザーとしてロール内の特定のタスクを実行しようとしましたが、ロールを呼び出して Playbook を実行するルート ユーザーによってタスクが実行されます。私の問題は、同じロールの root ユーザーを使用して DB2 製品をインストールおよび構成した後、DB2 for LUW に新しいデータベースを作成することに関連しています。新しいデータベースを作成するシェル スクリプトがありますが、(root ではなく) db2inst1 として実行する必要があります。公式のAnsibleドキュメントとstackoverflowのいくつかのスレッドで提案されているように、become、become_user、become_methodを試しました。
これが私の Ansible ロールの抜粋です。
また:
この行も my に追加しましたansible.cfg
:
また、Ansible パッケージを 2.0.1 から 2.1 にアップグレードしました。しかし、これは効果がなく、タスクは引き続き root として実行されます。
次のようにプレイブックを実行します。
何が欠けているのかわかりません。助けてください。
前もって感謝します!
ansible - Ansible Playbook で、より多くの並列処理を使用してグループベースのロールを適用するにはどうすればよいですか?
Ansible 2.1 を使用しています。ホストが既にインベントリにグループ化されているとします。次に、次のようなプレイブックを実行します。
設定したフォークの数に関係なく、Ansible はロールを 1 つずつ適用しているようです。無駄なタスクスキップメッセージでコンソールをスパムすることなく、より多くの実行並列処理を得るためにプレイブックを構築するより良い方法はありますか?
つまり、そのロールbar
は、すべてのホストに適用されるfoo
と同時に、eek
すべてのホストに適用されbaz
ます。グループメンバーシップを条件としてロールを適用するとうまくいくように見えますが、スキップすると出力が非常に読みにくくなります。
ansible - Ansible: コマンドラインからロールを実行できますか?
「apache」という役割があるとします
ここで、Ansible ホストのコマンドラインからホスト 192.168.0.10 でそのロールを実行したいと考えています。
それを行う方法はありますか?
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 ファイルには、変数の辞書が含まれている必要があります