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.