Amazon ec2 当计数大于1时,如何使用ansible提取ec2实例启动的单个IP
我正在使用ansible启动aws ec2 2实例,使用计数:2请查看下面的剧本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 }}"
- 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