首页 > 解决方案 > Ansible:将正在运行的 EC2 实例添加到 Auto-scaling 组

问题描述

我正在开发一个 Ansible 项目,我想在我的 Auto-scaling 组中添加一个由 tag-Name 找到的现有 EC2 实例。我能够通过 AMI 或终止旧实例找到它。但我只是在寻找一种将它们添加到自动缩放组的方法,例如在 Web 管理控制台中。我只需右键单击实例,选择设置,将其附加到自动缩放组。下面的代码都在 1 个文件中。

查找 EC2 实例:

- hosts: localhost
  connection: local
  gather_facts: no
  tasks:
     - ec2_remote_facts:
          region: eu-central-1
          filters:
             "tag:Name": Ubuntu_From_AMI
       register: ec2found

     - name: Add found instances to group
       add_host: hostname="{{ item.public_ip_address }}" groups=ec2instances
       with_items: "{{ ec2found.instances }}"

这是我添加自动缩放组的方式:

- hosts: localhost
  connection: local
  gather_facts: no
  tasks:
     - name: Add auto-scaling groups.
       ec2_asg:
          name: magento_scaling_group
          load_balancers: 'LB_NAME'
          availability_zones: [ 'eu-central-1a', 'eu-central-1b', 'eu-central-1c' ]
          launch_config_name: "{{ lc.name }}"
          min_size: 0
          max_size: 5
          desired_capacity: 0
          vpc_zone_identifier: [ 'subnet-e712ad8c', 'subnet-e12e8dac', 'subnet-28e91a55' ]
          tags:
             - environment: production
               propagate_at_launch: no

可能吗?谢谢你。

标签: amazon-web-servicesamazon-ec2ansible

解决方案


根据当前的模块列表,似乎没有这样的功能。您需要创建一个新模块,或者只是作弊并aws cli在正常command:调用中使用。如果您选择创建新模块,请考虑将其作为 PR 提交给 Ansible 项目,以便其他人从您的工作中受益。


推荐阅读