Ansible:将正在运行的 EC2 实例添加到 Auto-scaling 组

Posted

技术标签:

【中文标题】Ansible:将正在运行的 EC2 实例添加到 Auto-scaling 组【英文标题】:Ansible : Add running EC2 instances to Auto-scaling group 【发布时间】:2019-11-02 10:28:21 【问题描述】:

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

查找 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

有可能吗?谢谢你。

【问题讨论】:

【参考方案1】:

基于the current list of modules,似乎没有这样的功能。您需要create a new module 或只是作弊并在正常的command: 调用中使用aws cli。如果您选择创建新模块,请考虑将其作为 PR 提交给 Ansible 项目,以便其他人从您的工作中受益。

【讨论】:

最终使用 AWS CLI。谢谢你。 :-)

以上是关于Ansible:将正在运行的 EC2 实例添加到 Auto-scaling 组的主要内容,如果未能解决你的问题,请参考以下文章

将EC2实例公共IP放入Ansible主机文件中

如何通过 Ansible 在 AWS EC2 实例上部署 Consul

如何将交换添加到 EC2 实例?

使用ansible playbook运行EC2实例

如何使用 terraform 将负载均衡器添加到 ec2 实例

具有角色的ec2实例AmazonEC2RoleforSSM无法在ansible中执行EC2操作