2016-07-15 14 views
1

私は、2つのEC2インスタンスの前にAnabilitiesを使用して座るAWS ELBを作成しています。このELBは、通常のSSHポートおよびポートによって代わりにポートのポートの範囲を持っているリスナーにAnsibleでAWS ELBを定義する方法6000および6100ポート範囲を持つリスナーとAWS ELBを定義する方法

- name: Create ELB for web servers 
    local_action: 
    module: ec2_elb_lb 
    name: "{{ elb_web }}" 
    state: present 
    zones: "{{ availability_zones }}" 
    tags: 
     Name: "{{ elb_web }}" 
    listeners: 
     - protocol: http 
     load_balancer_port: 80 
     instance_port: 80 
     proxy_protocol: True 
     - protocol: tcp 
     from_port???? 
    cross_az_load_balancing: "yes" 
    security_group_names: "{{ security_group_web }}" 
    wait: yes 
    register: elb_web_result 
    until: "elb_web_result.module_stderr is not defined" 
    retries: 2 
    delay: 1 

間の範囲に聞くのだろうか?あるいは、特定のセキュリティグループから来たものがすべて聴かれ、インスタンスに送信されるべきだと私が定義する方法はさらに良いでしょうか?

ありがとうございます!

+0

私の知る限りアマゾンELBがリッスンをサポートしていません指定することができますポートの範囲。 1つのリスナーに1つのポートを指定する必要があります。これは実際には不可能な質問ではありません。 –

+0

ご迷惑をおかけして申し訳ございませんが、上記のポート範囲のセキュリティグループを定義してELBに接続する必要があります.ELBのポート範囲リスナーを定義できません。 1。 – error2007s

+0

はい、私はそれが唯一の方法だと思います。あなたはwith_itemsのようなものを使っていますか? – migueldavid

答えて

1

非常に奇妙なタスク確かに、しかし、あなたが本当にこのような巨大なポート範囲を持つロードバランサを作成したいならば、あなたはこのトリックを使用することができます。これは、項目のリストで変数listeners_rangeを行います

- set_fact: 
    listener: 
     protocol: tcp 
     load_balancer_port: "{{item}}" 
     instance_port: "{{item}}" 
    with_sequence: start=6000 end=6100 
    register: listeners_range 

- set_fact: 
    listeners_range: "{{ listeners_range.results | map(attribute='ansible_facts.listener') | list }}" 

- debug: var=listeners_range 

の範囲でした6000-6100:

protocol: tcp 
load_balancer_port: "{{item}}" 
instance_port: "{{item}}" 

だからec2_elb_lbを呼び出し、listeners: "{{listeners_range}}"

+0

Thanks Konstantin! – migueldavid

関連する問題