2016-09-29 3 views
0

私は以下の構成をhaproxyに持っています。シリアル付きのリリース:ハプロキシの2つの異なるバックエンドで50%

backend 1 

machine-1 machine-1.com:8080 
machine-2 machine-2.com:8080 
machine-3 machine-3.com:8080 
machine-4 machine-4.com:8080 
machine-5 machine-5.com:8080 
machine-6 machine-6.com:8080 
machine-7 machine-7.com:8080 
machine-8 machine-8.com:8080 
machine-9 machine-9.com:8080 
machine-10 machine-10.com:8080 

backend 2 
machine-11 machine-11.com:8080 
machine-12 machine-12.com:8080 

Serial is set to 50% in ansible rolling deployment我々はまた、このウィンドウの維持にマシンの状態を変更します。このようにして、マシン1-6をメンテナンスモードに入れ、7-12をメンテナンスモードにします。

2番目のメンテナンスとして7-12を入れているので、バックエンド2クラスタには、トラフィックを取るためのオンラインノードがありません。これはアプリケーション側で膨大な数の問題を引き起こします。

これをどのように修正する必要がありますか? 2.0.0を使用しています。

EDIT私は

  1. と考えることができます1つの

    2つの溶液は、11を言って、2つのバックエンド

  2. のための2つのリリースは、バックエンド2に一台のマシンで1-6から一台のマシンを交換してください

これら以外の解決策をお探しですか?それを解決するために使用することのラインでより多くの。

+0

置くことができますか? – smiller171

+0

@ smiller171それはまだマシン7から12のhaproxyを取るように助けにはなりません。これを行う過程で、マシンをオンラインにせずにバックエンド2を離れる。 –

答えて

1

バックエンドごとにhost groupsを作成し、それぞれのバックエンドグループの更新を別々の実行で実行すると、IMHOが最適です。これを行う方法がない場合、Ansible 2.2以降、バッチサイズをlistとして定義することは可能です。

だから、これは動作するはずです:あなたは、最初の6が移動する前に再びオンラインになるのを待つために `wait_for`に

- name: test play 
    hosts: backend servers. 
    serial: 
    - 5 
    - 1 
関連する問題