Создание целевой группы aws с ansible - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь создать целевую группу балансировщика сетевой нагрузки из динамически генерируемого списка экземпляров.

brokerInstancesList - это список идентификаторов экземпляров.Мне нужно перебрать этот список и добавить их в качестве целей в эту целевую группу.

- name: "Create 9092 target group"
  elb_target_group:
    name: "tg-{{ ClusterName }}"
    protocol: tcp
    port: 9092
    vpc_id: "{{ VPCID }}"
    targets:
      - Id: "{{ item }}"
        Port: 9092
    state: present
  loop: "{{ brokerInstancesList }}"

Проблема с моей попыткой выше состоит в том, что сохраняется только последняя запись в brokerInstancesList.Мне нужно что-то вроде ниже.

- name: "Create 9092 target group"
  elb_target_group:
    name: "tg-{{ ClusterName }}"
    protocol: tcp
    port: 9092
    vpc_id: "{{ VPCID }}"
    targets:
      {% for item in {{ brokerInstancesList }} -%}
      - Id: "{{ apple }}"
        Port: 9092
      {%- endfor %}
    state: present

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Используйте модуль elb_target для его реализации:

  • name: Соберите факты для всех новых экземпляров прокси
    ec2_instance_facts:
    filters:
    "tag: Name":"{{ec2_tag_proxy}}"
    регистр: ec2_proxy

  • elb_target_group:
    имя: uat-target-proxy
    протокол: http
    порт: 80
    vpc_id: vpc-4e6e8112
    deregistration_delay_timeout: 60
    stickiness_enabled: True
    stickiness_lb_cookie_duration: 86400
    health_check_path: /
    success_response_codes: "232": 10_2 ": 10"состояние: присутствует

  • elb_target:
    target_group_name: uat-target-proxy
    target_id: "{{item.instance_id}}"
    target_port: 80
    состояние: присутствует
    with_items: "{{ec2_proxy.instances}}"
    когда: ec2_proxy.instances | length> 0

0 голосов
/ 29 ноября 2018

Необходимо создать список целей на предыдущем шаге:

  - name: Create the custom fact for targets                                       
    set_fact:                                                                      
      target_data: "{{ target_data|default([]) + [{'Id': item, 'Port': 9092 }]}}"
    with_items: "{{ brokerInstancesList }}"

, а затем использовать список target_data для атрибута targets в задаче elb_target_group.

Источник: https://github.com/ansible/ansible/issues/32218#issuecomment-339792059

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...