使用 Ansible 创建许多 AWS 实例,'count'不起作用



我有这个剧本:

---
# Run it like this:
# ansible-playbook --extra-vars '{"VAR":"var-value", "VAR":"var-value"}' playbook-name.yml
- hosts: localhost
  vars:
    instance_tag : "{{ TAG }}"
    instances_num: 2
  tasks:
  - name: Create new AWS instances
    local_action:
      module: ec2
      region: us-east-1 
      key_name: integration 
      instance_type: m3.medium 
      image: ami-61dcvfa 
      group: mysecgroup 
      instance_tags:
        Name: "{{ instance_tag }}"
    with_sequence: count = {{ instances_num | int }}

当我运行它时,它抛出这个:

TASK: [Create new AWS instances] **********************************************
fatal: [localhost] => unknown error parsing with_sequence arguments: u'count = 1'
FATAL: all hosts have already failed -- aborting

我做错了什么?我也尝试过2,但抛出了同样的错误。我也尝试过"{{instances_num}}",但没有。

ec2模块有一个count参数,您可以直接使用,而不是尝试在序列上循环任务。

你可以这样使用:

---
# Run it like this:
# ansible-playbook --extra-vars '{"VAR":"var-value", "VAR":"var-value"}' playbook-name.yml
- hosts: localhost
  vars:
    instance_tag : "{{ TAG }}"
    instances_num: 2
  tasks:
  - name: Create new AWS instances
    local_action:
      module: ec2
      region: us-east-1 
      key_name: integration 
      instance_type: m3.medium 
      image: ami-61dcvfa 
      group: mysecgroup 
      instance_tags:
        Name: "{{ instance_tag }}"
      count: "{{ instances_num }}"

最新更新