Not super pretty, but something like this should work:

- local_action: ec2 region="{{ region }}" key_name="{{ key }}" {{ 'id="' + 
idempotency_token + '"' if idempotency_token is defined else '' }}

The idea is that all YAML values are run through Jinja and you can use the 
key-value syntax for a task, with a string that contains only the key-value 
pairs you want.

On Tuesday, July 22, 2014 2:32:41 AM UTC+2, Steven Ringo wrote:
>
> Hi,
>
> I am running the ec2 module to provision an instance, with variables 
> defined in a vars file, and the action in a role playbook:
>
> - name: instance provisioning
>   local_action:
>     module: ec2
>     region: "{{ region }}"
>     key_name: "{{ key }}"
>     id: "{{ idempotency_token }}"
>     ...truncated...
>
> For the ec2 module, id is an optional client token that if defined makes 
> that operation idempotent.
>
> If the id parameter is present in the action, it expects there to be a 
> value for it.
>
> I would like to have it that if idempotency_token is not defined or 
> declared it does not pass in the id as parameter in the playbook.
>
> I tried using null as a default but Amazon sees this as a valid token.
>
> Is there a way to combine passing in an attribute conditionally, e.g. 
> something like:
>
> - name: instance provisioning
>   local_action:
>     module: ec2
>     region: "{{ region }}"
>     key_name: "{{ key }}"
>     parameter:
>       name: id
>       value: "{{ idempotency_token }}"
>       when: idempotency_token is defined
>
> Thanks everyone.
>
> Steve
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/19f91e9e-768d-4e16-aeff-ee9d279bae1b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to