2016-04-19 9 views
1

私は今、数ヶ月以来Ansibleを使用している、と私は別のホスト上の展開順序で少し問題があります。不可能な場合、特定の順序で展開する方法はありますか?

私は8台のサーバーがあります。

  • 4リバースプロキシapacheの
  • 4のTomcatサーバ

私はこれらのサーバー上での展開を作るを、私は展開を実行するために最初にApacheを停止する必要が最初のTomcatで。 Tomcat1が終了したら、私はApache1を起動しなければなりません。後はすべてのサーバーで同じ展開を続行します。

私のhostsファイルがある場合:次に

[apache-servers] 
apache1 
apache2 
apache3 
apache4 

[tomcat-servers] 
tomcat1 
tomcat2 
tomcat3 
tomcat4 

、Ansibleは、ALLアパッチ、ALLトムキャットを停止展開を行い、すべて再起動します。

だから、私は私がやりたいトリックを発見しました。私は、実行可能なplaybooksを実行する前に、ホストファイルを書き換えるためにシェルスクリプトを実行する必要があります。

同じことを行うには良い方法はありますか?あなたの劇中

+0

代理ansのシリアルディレクティブの組み合わせを使用することもできます。https://docs.ansible.com/ansible/playbooks_delegation.html#delegation –

+0

別の方法として、ループをグループにして、ホストを所属するグループに注文することができます(グループ内の1つのTomcatを有するもののApache):https://docs.ansible.com/ansible/faq.html#how-do-i-loop-over-a-list-of-hosts-in-a-group http:-inside・オブ・テンプレート –

+1

たぶん、あなたは便利なローリング・アップグレードを見つけることができるhttp://docs.ansible.com/ansible/guide_rolling_upgrade.html – RuBiCK

答えて

0

使用serial: 1と、それは、一度に1つのホスト上でのプレイを実行します。

関連する問題