2017-06-30 4 views
1

タイトルが述べるように、インスタンスが同じAZを2回連続して選択しないようにしようとしています。私の現在の役割は、利用可能なipsに基づいて回転するように設定されています。それは正常に動作しますが、複数のサーバーを実行しても同じAZに移行します。私は同じAZを2回連続して選ぶことを防ぐ方法を見つける必要があります。AWSの複数インスタンス実行時にサブネット可用性ゾーンを回転させるための役割

これは私の全体的なサーバービルドヌル前のサブネットを設定するためのプレーを作成し

#gather vpc and subnet facts to determine where to build the server 
- name: gather subnet facts 
    ec2_vpc_subnet_facts: 
    aws_access_key: "{{ aws_access_key }}" 
    aws_secret_key: "{{ aws_secret_key }}" 
    aws_region: "{{ aws_region }}" 
    register: ec2_subnets 

- name: initialize build subnets 
    set_fact: 
    build_subnet: "" 
    free_ips: 0 
    previous_subnet_az: "" 

- name: pick usable ec2_subnets 
    set_fact: 
    # Item.id is sets the current builds subnet Id 
    build_subnet: "{{ item.id }}" 
    free_ips: "{{ item.available_ip_address_count|int }}" 
# Just for debugging and does not work 
    previous_subnet_az: " {{ item.availability_zone }}" 

    when: ("{{ item.available_ip_address_count|int }}" > free_ips) and ("ansible_subnet" in "{{ item.tags }}") and ("{{ previous_subnet_az|string }}" != "{{ item.availability_zone|string }}") 
# Each subnet in the list 
    with_items: '{{ec2_subnets.subnets}}' 
    register: build_subnets 


- debug: var=build_subnets var=build_subnet var=previous_subnet_az 
var=selected_subnet 
+0

これを心配する必要がある理由についてもっと詳しく説明できますか?地域内でスピンアップできるEC2インスタンスの数には限界があります。これを設定しても、利用可能なIPを枯渇させる前にソフトキャップをうまく打つことができます(EC2インスタンスを実行していると仮定した場合) –

+0

こんにちは@ChrisWhite、ipsの回転(各サブネットで利用可能なipsの数を行う)うまく動作します。課題は、前に選択したものを繰り返さないように、各インスタンスを別のAZに配置することです。 –

+0

私はまだ、AZの要件について知りたいです。たとえば、インスタンス割り当てを処理する複数のAZにまたがる自動スケーリンググループが満たしていない要件はありますか? –

答えて

0

中に呼び出される役割です。次に、最初の繰り返しを終えた後、前のサブネットの事実を設定する基本条件を実行しました。今解決されました、ありがとうございました。

関連する問題