Amazon ec2 当计数大于1时,如何使用ansible提取ec2实例启动的单个IP

Amazon ec2 当计数大于1时,如何使用ansible提取ec2实例启动的单个IP,amazon-ec2,ansible,Amazon Ec2,Ansible,我正在使用ansible启动aws ec2 2实例,使用计数:2请查看下面的剧本 - name: Create an EC2 instance ec2: aws_access_key: "{{ access_key }}" aws_secret_key: "{{ key }}" key_name: "{{ keypair }}" region: "{{ region }}"

我正在使用ansible启动aws ec2 2实例,使用计数:2请查看下面的剧本

- name: Create an EC2 instance
  ec2:
    aws_access_key: "{{ access_key }}"
    aws_secret_key: "{{ key }}"
    key_name: "{{ keypair }}"
    region: "{{ region }}"
    group: "{{ security_group }}"
    instance_type: "{{ instance_type }}"
    image: "{{ image }}"
    wait: yes
    count: 2
    vpc_subnet_id: "{{ vpc_subnet_id }}"
    assign_public_ip: "{{ assign_public_ip }}"
  register: ec2

- name: Add the newly created 1 EC2 instance(s) to webserver group
  lineinfile: dest=inventory
              insertafter='^\[webserver\]$'
              line="{{ item.private_ip }} {{hoststring}}"
              state=present
  with_items: "{{ ec2.instances }}"

- name: add newly created remaining ec2 instance to db group
  lineinfile: dest=inventory
              insertafter='^\[db-server\]$'
              line="{{ item.private_ip }} {{hoststring}}"
              state=present
  with_items: "{{ ec2.instances }}"
在这里,我想向webserver主机组添加一个ip,其余的添加到db主机组,但它不能与上面的剧本一起工作。请帮助我实现相同的效果


我不想在这里使用add_host。

既然您使用的是AWS,您是否考虑过使用该插件进行动态资源清册

只要您正确地标记了实例,并且设置了yaml文件,它就会做您想要做的事情

否则,您的
寄存器:ec2
中有两个元素。通过
ec2
循环的方式(如果有效的话)会将这两种方式添加到每个组中。您需要添加
when
条件来匹配标记/子网/cidr之类的内容,以了解要添加到哪个组的服务器

帮助查看返回值的一种方法是打印
ec2
变量:

-debug:var=ec2