私はすべての可能なタスクを定義した役割を作成しました。また、私はホストAとホストBを持っています。ホストAでタスクの90%、ホストBでタスクの10%を実行できますか?私の不可能なコントローラはホストCです。異なるホスト上で実行可能なタスク
答えて
私が考えることができる最初の方法は、在庫に基づく条件付きです。
私は次に、どのように多くのタスクに応じて、あなたの仕事上の条件文
- name: run this on A
debug: msg="this runs only on A
when: "'group_A' in {{group_names}}"
- name: run this on B
debug: msg="this runs only on B
when: "'group_B' in {{group_names}}"
を使用
# inventory
[group_A]
192.168.1.20
[group_B]
192.168.1.30
これらgroup_Aとgroup_B
を呼ぶAのために、インベントリ内のグループを作成し、Bのグループすべてのタスクに条件を付けるのはあまりにも多いかもしれないので、以下のようにインクルードに条件文を使うことができます:ファイル構造:
-tasks
|- main.yml
|- A_tasks.yml
|- B_tasks.yml
main.yml:
- include: A_tasks.yml
when: "'group_A' in {{group_names}}"
- include: B_tasks.yml
when: "'group_B' in {{group_names}}"
A_tasks.yml:
- name: run on A
debug: msg="this only runs on A"
B_tasks.yml:
- name: run on B
debug: msg="this only runs on B"
これは古いバージョンのAnabilitiesでは正しく動作しているかもしれませんが、少なくとも2.4.2.0のバージョンでは、条件は '':group_A '' in group_names "'でなければなりません。 –
あなたは一つにすべてのタスクを分割している場合2つの異なるホスト間の役割は、それらのホストのどちらも本当にその役割を持っていませんか?私はあなたが本当に2つを持っているときに、それらの仕事の全てを一つの役割に集めるのは役割システムの濫用だと言います。
複数のホストAsを使用するとどうなりますか?複数のホストBsはどうですか?
あなたは実際にここで役割を使いたいとは思わない - あなたはプレーンオールのプレイブックを使いたいと思う。
- hosts: A
tasks:
[...]
- hosts: B
tasks:
[...]
プレイブックは、特定の順序で一連のアクションを定義するためのものであり、あなたの「Bにこのようなものを行うだけでこのようなものをやった後」ということです。
私は同意しがちですが、理論的にはHadoopクラスタを設定する役割を持つことができ、マスターとスレーブで異なるタスクを実行する必要があります。これは構成管理を超えてインフラストラクチャ展開に向かいますが、それはAnsibleでサポートされています。 – smiller171
- 1. 同じホスト上で実行可能なplaybooksを実行する
- 2. with_togetherファッションのホストに対して実行可能なタスク
- 3. githubで実行可能なホスト
- 4. リモートホストで実行可能なタスク
- 5. 二台のマシン上で同じソースコードが異なる実行可能な行動
- 6. 実行可能なタスクが実行されるかどうか
- 7. Webサーバー(Heroku)上で実行可能なjarファイル(Discord bot)をホストする
- 8. 実行可能なWindowsサーバ上でexeファイルを実行する
- 9. python2.7を必要としない、実行可能なタスクの例?
- 10. 異なるユーザーと異なるタスクを実行します
- 11. 特定のグループ内のボックスでのみ実行可能なタスク
- 12. 異なるホスト上で開発モードで弾性検索を実行する
- 13. ESXiホストで不可能なタスクを実行することができません
- 14. インターネット接続が可能なときにタスクを実行する
- 15. が異なるホストのために異なる入力してタスクを実行し
- 16. 異なるサーバ上の異なるディレクトリにマウント可能
- 17. 実行可能なプレイブックから1つのタスクとハンドラを実行する
- 18. Cコードで実行可能な実行
- 19. Apache Twillの異なる実行可能ファイルに異なるJVMオプションを指定
- 20. Windowsで実行可能なSourcetree git実行可能ファイル
- 21. SAFELY Windowsで実行可能な実行可能ファイルへのパス
- 22. 実行可能なプレイブックのホスト情報がありません
- 23. Rは異なるスレッド/タスクで異なる関数を実行するR
- 24. ExecutorService Futureなぜ<?> submit(実行可能タスク)?
- 25. Windows上で実行可能なアプリケーションをビルドするには
- 26. 可能:タスク/ハンドラを実行する前に別のタスク/ハンドラを実行する
- 27. トール実行可能ファイルは、タスク名
- 28. 異なるクラスから実行可能メソッドを呼び出す
- 29. シェルとダブルクリック実行可能ファイルの異なるos.Getenv( "PATH")結果
- 30. 異なるコマンドで2つのタスクを実行する方法
ホストAのタスクの90%がホストBの10ということはどういう意味ですか? – shaps
私はホストAにスタックをデプロイしており、ホストBに設定後スクリプトを実行したいと思います。これらのスクリプトは、実行可能なコントローラ(ホストC)またはホストAからホストBにプッシュする必要がありますが、 。 – tgcloud
しかし、私はホストCにフェッチし、ホストBのscpに "delegate_to"を使ってスクリプトをプッシュすることができましたが、それらのスクリプトを実行することはできませんでした。 – tgcloud