Hi Michael,
Thanks for your help.
... I am not sure to understand though ...
I tried to copy the example given on doc.ansible.com:
local_action:
module: ec2
keypair: mykey
group: webserver
instance_type: m1.large
image: ami-6e649707
wait: yes
wait_timeout: 500
volumes:
- device_name: /dev/sdb
snapshot: snap-abcdef12
device_type: io1
iops: 1000
volume_size: 100
and I get the following error:
ERROR: parse error: playbooks must be formatted as a YAML list, got <type
'dict'>
Then I tried with
volumes: [{ device_name: '/dev/sda1', volume_size: '10' }, { device_name:
'/dev/xvdf', ephemeral: 'ephemeral0' }, { device_name: '/dev/xvdg',
volume_size: '25'}]
and
volumes:
- { device_name: '/dev/sda1', volume_size: '10' },
- { device_name: '/dev/xvdf', ephemeral: 'ephemeral0' }
- { device_name: '/dev/xvdg', volume_size: '25'}
And with both, I get:
msg: this module requires key=value arguments (['key_name=GenericLinux',
'image=ami-75342c01', 'instance_type=m1.small',
'vpc_subnet_id=subnet-81407bf5', 'user_data={shortname:test4,
hostname:test4.aws.onlotaris.com}', 'wait_timeout=500',
'private_ip=172.16.4.100', 'wait=yes', 'group=default', 'count=1',
'state=present', 'instance_tags={"Name":"test4"}', 'volumes=[{volume_size:',
'10,', 'device_name:', '/dev/sda1},', '{ephemeral:', 'ephemeral0,',
'device_name:', '/dev/xvdf},', '{volume_size:', '25,', 'device_name:',
'/dev/xvdg}]'])
Thanks in advance.
Fred
On Feb 18, 2014, at 14:48 , Michael DeHaan <[email protected]> wrote:
> When using the ec2 module it's almost always easier to use the complex
> arguments style as shown in the examples.
>
> If you are going to pass typed data to modules (like "volumes"), that is
> going to be required.
>
>
>
>
> On Tue, Feb 18, 2014 at 7:57 AM, Fred Badel <[email protected]> wrote:
> 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.
>
>
> --
> 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.
--
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.