Hello,

I am trying to create an ec2 instance with specific volumes requirement ... 
but I keep getting a "this module requires key=value arguments" error 
message.
Looking closer at ansible output (see below), it looks like the 
single-quoting of the volumes parameter is a little bit "fancy"...

Am I doing something wrong? 

---
- hosts: 127.0.0.1
  connection: local
  gather_facts: True
  vars:
      volumes:
      - device_name: /dev/sda1
        volume_size: 10
      - device_name: /dev/xvdf
        ephemeral: ephemeral0
      - device_name: /dev/xvdg
        volume_size: 25
      keypair: ec2key
      image: ami-xxx
      dnsdomain: domain.com
  vars_prompt:
      hostname: "What is this instance hostname?"
      subnet: "What is this instance subnet?"
      ip: "What is this instance ip?"
      group: "Provide a list of group name"
      instance_type: "Provide the instance type"
  tasks:
      - name: create instance
        ec2: key_name={{ keypair }} image={{ image }} instance_type={{ 
instance_type }} vpc_subnet_id={{ subnet }} user_data='{"shortname":"{{ 
hostname }}", "hostname":"{{ hostname }}.{{ dnsdomain }}"}' 
wait_timeout=500 private_ip={{ ip }} wait=yes group={{ group }} count=1 
state=present volumes={{ volumes }}



<127.0.0.1> REMOTE_MODULE ec2 key_name=ec2key image=ami-xxx 
instance_type=m1.small vpc_subnet_id=subnet-xxx 
user_data='{"shortname":"test4", "hostname":"test4.domain.com"}' 
wait_timeout=500 private_ip=172.16.4.100 wait=yes group="['default', 
'J2EE']" count=1 state=present volumes=[{'volume_size': 10, 'device_name': 
'/dev/sda1'}, {'ephemeral': 'ephemeral0', 'device_name': '/dev/xvdf'}, 
{'volume_size': 25, 'device_name': '/dev/xvdg'}]
<127.0.0.1> EXEC ['/bin/sh', '-c', 'mkdir -p 
$HOME/.ansible/tmp/ansible-tmp-1392727140.89-11533654997021 && chmod a+rx 
$HOME/.ansible/tmp/ansible-tmp-1392727140.89-11533654997021 && echo 
$HOME/.ansible/tmp/ansible-tmp-1392727140.89-11533654997021']
<127.0.0.1> PUT /var/folders/38/_r_kpxbd4cvfq_9qdvkb0jd40000gn/T/tmpapBeCB 
TO /Users/fred/.ansible/tmp/ansible-tmp-1392727140.89-11533654997021/ec2
<127.0.0.1> EXEC ['/bin/sh', '-c', 
'/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
 
/Users/fred/.ansible/tmp/ansible-tmp-1392727140.89-11533654997021/ec2; rm 
-rf /Users/fred/.ansible/tmp/ansible-tmp-1392727140.89-11533654997021/ 
>/dev/null 2>&1']
failed: [127.0.0.1] => {"failed": true}
msg: this module requires key=value arguments (['key_name=ec2key', 
'image=ami-xxx', 'instance_type=m1.small', 'vpc_subnet_id=subnet-xxx', 
'user_data={"shortname":"test4", "hostname":"test4.domain.com"}', 
'wait_timeout=500', 'private_ip=172.16.4.100', 'wait=yes', 
"group=['default', 'J2EE']", 'count=1', 'state=present', 
'volumes=[{volume_size:', '10,', 'device_name:', '/dev/sda1},', 
'{ephemeral:', 'ephemeral0,', 'device_name:', '/dev/xvdf},', 
'{volume_size:', '25,', 'device_name:', '/dev/xvdg}]'])

FATAL: all hosts have already failed -- aborting


ansible-playbook --version
ansible-playbook 1.5 (devel 7e23ed345f) last updated 2014/02/18 12:15:46 
(GMT +200)

Thanks for your advices!

Fred

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to