2015-10-20 78 views
0

我有這樣的劇本:與Ansible創建許多AWS實例,「計數」不起作用

--- 
# 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}}"但沒有。

回答

0

ec2 module有一個count參數,您可以直接使用,而不是試圖loop the task over a sequence

您可以使用它像這樣:

--- 
# 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 }}" 
+0

謝謝,我使用的代碼一些教程,我現在找不到,它沒有工作。 –