私はすべての可能なタスクを定義した役割を作成しました。また、私はホスト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. githubで実行可能なホスト
- 2. リモートホストで実行可能なタスク
- 3. 二台のマシン上で同じソースコードが異なる実行可能な行動
- 4. 実行可能なタスクが実行されるかどうか
- 5. Webサーバー(Heroku)上で実行可能なjarファイル(Discord bot)をホストする
- 6. 実行可能なWindowsサーバ上でexeファイルを実行する
- 7. ESXiホストで不可能なタスクを実行することができません
- 8. インターネット接続が可能なときにタスクを実行する
- 9. 実行可能なプレイブックから1つのタスクとハンドラを実行する
- 10. Cコードで実行可能な実行
- 11. 実行可能なプレイブックのホスト情報がありません
- 12. Rは異なるスレッド/タスクで異なる関数を実行するR
- 13. SAFELY Windowsで実行可能な実行可能ファイルへのパス
- 14. Windows上で実行可能なアプリケーションをビルドするには
- 15. トール実行可能ファイルは、タスク名
- 16. シェルとダブルクリック実行可能ファイルの異なるos.Getenv( "PATH")結果
- 17. 異なるクラスから実行可能メソッドを呼び出す
- 18. 異なるコマンドで2つのタスクを実行する方法
- 19. 異なるルート経由で同じSSISタスクを実行する
- 20. 実行可能なユーザモジュールがタスクの成功を実行するが、新しいパスワードはホストにsshできない
- 21. SQLスクリプトは、DBホスト上で実行されるか、別のホスト上で実行されるかに応じて動作が異なります
- 22. Cで実行可能なC実行可能ファイルをCで実行するシェルスクリプトから実行する
- 23. セロリのタスクで実行可能な単一のファイルを作成する方法
- 24. 可能なホストの設定
- 25. PHPを実行可能なウェブサイトとして実行可能
- 26. 実行可能な2.2.0
- 27. 実行可能なJavaCVプロジェクト
- 28. 実行可能なパス
- 29. エミュレータなど、Mac上でソースコードなしで実行可能なiOSアプリを実行できますか?
- 30. Namenodeでタスクを実行することは可能ですか?
ホストAのタスクの90%がホストBの10ということはどういう意味ですか? – shaps
私はホストAにスタックをデプロイしており、ホストBに設定後スクリプトを実行したいと思います。これらのスクリプトは、実行可能なコントローラ(ホストC)またはホストAからホストBにプッシュする必要がありますが、 。 – tgcloud
しかし、私はホストCにフェッチし、ホストBのscpに "delegate_to"を使ってスクリプトをプッシュすることができましたが、それらのスクリプトを実行することはできませんでした。 – tgcloud