LINUX.ORG.RU
ФорумAdmin

Ansible EC2

 ,


1

2

Всем привет! Есть вопрос, делаю задачку, поднимая инфраструктуру на aws с помощью ansible.

Два инстанса в приватном сабнете:

  - name: deploy a ubuntu 20.04 in private subnet
    ec2:
      key_name: "{{ my_useast1_key }}"
      instance_type: t2.micro
      image: ami-09e67e426f25ce0d7
      group_id: "{{ sg_ansibleVPC_privatesubnet_servers.group_id }}"
      vpc_subnet_id: "{{ private_subnet.subnet.id }}"
      assign_public_ip: no
      region: "{{ vpc_region }}"
      instance_tags:
        Name: ubuntu
      count_tag:
        Name: ubuntu
      exact_count: 2
    register: ubuntu

От сам вопрос, как передать переменные двох инстансов в следующую таргет групу, где targets id:

  - name: create target group
    elb_target_group:
            name: targetgroup-alb
            state: present
            protocol: http
            port: 80
            vpc_id: "{{ ansibleVPC.vpc.id }}"
            health_check_protocol: http
            health_check_path: /
            successful_response_codes: "200,250-260"
            targets:
               - Id: i-046704235dacfed96
                 Port: 8080
               - Id: i-0f445dc81aa392bfc
                 Port: 8080
            wait_timeout: 200
    register: app_tg

ID-шники подставил уже после деплоя, но как сразу передать в качестве переменной один инстанс и второй. Спасибо за подсказки!


Что-нибудь в духе:

  - name: create target group
    elb_target_group:
            name: targetgroup-alb
            state: present
            protocol: http
            port: 80
            vpc_id: "{{ ansibleVPC.vpc.id }}"
            health_check_protocol: http
            health_check_path: /
            successful_response_codes: "200,250-260"
            targets: "{{ item.id }}"
            wait_timeout: 200
    register: app_tg
    loop: "{{ ubuntu.instances }}"

или сделать кастомный факт и поступить как пишут вот в этом ишью: https://github.com/ansible/ansible/issues/32218#issuecomment-339792059

BOOBLIK ★★ ()