de.la.ru
de.la.ru

Reputation: 3144

Connect EC2 instance to Target Group using Ansible

I have been working for a while registering EC2 instances to ELB's using Ansible. But now I'm starting to use ALB's and I need to connect my instances to Target Groups which in turn are connected to the ALB. Is there an Ansible plugin that allows me to register an instance to a AWS Target Group?

Upvotes: 5

Views: 3453

Answers (3)

user838791
user838791

Reputation: 11

Use elb_target:

  • name: Gather facts for all new proxy instances
    ec2_instance_facts:
    filters:
    "tag:Name": "{{ ec2_tag_proxy }}"
    register: ec2_proxy

  • elb_target_group:
    name: uat-target-proxy
    protocol: http
    port: 80
    vpc_id: vpc-4e6e8112
    deregistration_delay_timeout: 60
    stickiness_enabled: True
    stickiness_lb_cookie_duration: 86400
    health_check_path: /
    successful_response_codes: "200"
    health_check_interval: "20"
    state: present

  • elb_target:
    target_group_name: uat-target-proxy
    target_id: "{{ item.instance_id }}"
    target_port: 80
    state: present
    with_items: "{{ ec2_proxy.instances }}"
    when: ec2_proxy.instances|length > 0

Upvotes: 0

ram paul
ram paul

Reputation: 1

Try the following configurations:

- name: creating target group
      local_action:
        module: elb_target_group
        region: us-east-2
        vpc_id: yourvpcid
        name: create-targetgrp-delete
        protocol: https
        port: 443
        health_check_path: /
        successful_response_codes: "200,250-260"
        state: present
        targets:
          - Id: ec2isntanceid
            Port: 443
        wait_timeout: 200
      register: tgp

Upvotes: -1

de.la.ru
de.la.ru

Reputation: 3144

Since Ansible does not support registration of instances to target groups I had to use the AWS-CLI tool. With the following command you can register an instance to a target group:

aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:us-east-1:your-target-group --targets Id=i-your-instance

So I just call this command from Ansible and it's done.

Upvotes: 5

Related Questions