尝试使用以下playbook创建包含2个子网的单个实例时:
# Basic provisioning example
- name: Create AWS resources
hosts: localhost
connection: local
vars:
subnets:
- { zone: "us-west-2c", vpc_pvt_subnet: "subnet-ff9f89325"}
- { zone: "us-west-2c", vpc_pvt_subnet: "subnet-7f9df6832"}
gather_facts: False
tasks:
- name: create an EC2 instance
with_items: "{{ subnets }}"
ec2:
key_name: testkey
region: us-west-2
instance_type: r3.xlarge
vpc_subnet_id: "{{ item.vpc_pvt_subnet }}"
zone: "{{ item.zone }}"
image: ami-efd0428f
wait: yes
instance_tags:
Name: "testinstance"
exact_count: 1
count_tag:
Name: "testistance"
register: ec2
对于第一个子网,它表示"已更改"作为回应,但对于第二个子网,它只是发送了一个响应" OK"
第一个子网:已更改:[localhost] => (item = {u' vpc_pvt_subnet':u' subnet-ff9f89325',u' zone':u' us-west-2c'})=> {
第二个子网:
ok:[localhost] => (item = {u' vpc_pvt_subnet':u' subnet-7f9df6832',u' zone':u' us-west-2a'})=> {
有人可以帮忙吗?
答案 0 :(得分:0)
如果查看EC2模块的文档
count_tag:与' exact_count'一起使用确定基于多少个节点 在特定标签上应该运行标准。这可以表达为 多种方式,并在示例部分中显示。例如,一个 可以请求25个标有" class = webserver"的服务器。该 指定的标记必须已存在或作为传入 ' instance_tags'选项。
exact count:一个整数值,表示该实例的数量 匹配' count_tag'参数应该正在运行。实例是 根据此值创建或终止。
由于您将count_tag:testinstance和exact_count设置为1,因此Ansible不会启动辅助实例。将计数更改为2应该可以解决此问题。