I'm trying to do something that I thought was fairly straightforward but 
I'm not having any luck.  In a nutshell I need to delete a tag from an EC2 
instance, but the name is a concatenation of a variable and a constant. 
 What I'm trying is basically this:

      vars:
         - foo: sometag

    - name: Delete tag
      local_action: ec2_tag state=absent
                            aws_access_key={{ AWS_ACCESS_KEY_ID }}
                            aws_secret_key={{ AWS_SECRET_ACCESS_KEY }}
                            region={{ AWS_REGION }}
                            resource={{ instanceId }}
      args:
          tags:
              "{{ foo }}-bar": some_value

The problem is that "{{ foo }}-bar" doesn't seem to get converted into 
"sometag-bar" before the module is called.  (foo is actually a fact of the 
host, so I can't just statically set the tag name) Bug? Feature?

Unrelated issue (or maybe not), but also dealing with the ec2_tag module: 
What's the correct way to reference the value of a tag when trying to 
delete it?  For whatever reason when using "state=absent" the ec2_module 
will only remove a tag if you specify both the name and the current value 
of the tag.  In other words, if you have an instance with a tag named foo 
that has a value of "bar" then the following will not remove the tag:

   - name: Delete tag
      local_action: ec2_tag state=absent
                            aws_access_key={{ AWS_ACCESS_KEY_ID }}
                            aws_secret_key={{ AWS_SECRET_ACCESS_KEY }}
                            region={{ AWS_REGION }}
                            resource={{ instanceId }}
      args:
          tags:
              foo: ''

The only way to get the ec2_tag module to actually delete the tag is to 
specify both the name & value of the tag, so you need to set the args as:

      args:
          tags:
              foo: bar

Because of this, and the fact that some of our tags have dynamic values, 
I'm trying to do something like this:

    - name: Get tags
      local_action: ec2_tag state=list
                            aws_access_key={{ AWS_ACCESS_KEY_ID }}
                            aws_secret_key={{ AWS_SECRET_ACCESS_KEY }}
                            region={{ AWS_REGION }}
                            resource={{ instanceId }}
      register: mytags

    - name: Delete env tag
      local_action: ec2_tag state=absent
                            aws_access_key={{ AWS_ACCESS_KEY_ID }}
                            aws_secret_key={{ AWS_SECRET_ACCESS_KEY }}
                            region={{ AWS_REGION }}
                            resource={{ instanceId }}
      args:
          tags:
              foo: mytags[ foo ]

But I'm unable to get anything here to work either, even if I set the name 
of the tag to a static value.  What's the proper way to reference the tags 
from "state=list" so that you can do something like delete a tag?

-Bruce

-- 
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/84037de9-bf08-4237-99fa-7f724272771f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to