vmware.vmware.tag_associations module – Manage the tags associated with a vSphere object.

Note

This module is part of the vmware.vmware collection (version 2.9.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install vmware.vmware.

To use it in a playbook, specify: vmware.vmware.tag_associations.

Synopsis

  • This module allows you to attach and detach tags to a vSphere object.

  • For better performance, use object IDs instead of names when possible.

Parameters

Parameter

Comments

hostname

string

The hostname or IP address of the vSphere vCenter server.

If the value is not specified in the task, the value of environment variable VMWARE_HOST will be used instead.

object_moid

string

The managed object ID (MOID) of the object to manage.

One of object_moid or object_name is required.

object_name

string

The name of the object to manage.

One of object_moid or object_name is required.

object_type

string / required

The type of the object to manage.

Choices:

  • "VirtualMachine"

  • "Datacenter"

  • "ClusterComputeResource"

  • "HostSystem"

  • "DistributedVirtualSwitch"

  • "DistributedVirtualPortgroup"

  • "Datastore"

  • "DatastoreCluster"

  • "ResourcePool"

  • "Folder"

password

aliases: pass, pwd

string

The password of the vSphere vCenter server.

If the value is not specified in the task, the value of environment variable VMWARE_PASSWORD will be used instead.

port

integer

The port number of the vSphere vCenter server.

If the value is not specified in the task, the value of environment variable VMWARE_PORT will be used instead.

Default: 443

proxy_host

string

The address of a proxy that will receive all HTTPS requests and relay them.

The format is a hostname or a IP.

If the value is not specified in the task, the value of environment variable VMWARE_PROXY_HOST will be used instead.

proxy_port

integer

The port of the HTTP proxy that will receive all HTTPS requests and relay them.

If the value is not specified in the task, the value of environment variable VMWARE_PROXY_PORT will be used instead.

proxy_protocol

aliases: protocol

string

The proxy connection protocol to use.

This option is used if the correct proxy protocol cannot be automatically determined.

Choices:

  • "http"

  • "https" ← (default)

remove_extra_tags

boolean

Whether to remove tags that are not in the list of tags to manage.

If state is set to absent, all tags will be removed.

Choices:

  • false ← (default)

  • true

state

string

Whether ensure the tags are present or absent on the object.

Choices:

  • "present" ← (default)

  • "absent"

tags

list / elements=dictionary / required

A list of tags to manage.

category_id

string

The id of the category of the tag.

Either category_name or category_id is required when looking up a tag by name.

The category must already exist.

category_name

string

The name of the category of the tag.

Either category_name or category_id is required when looking up a tag by name.

The category must already exist.

id

string

The id of the tag to manage. Either tags[].name or tags[].id is required.

name

string

The name of the tag. Either tags[].name or tags[].id is required.

username

aliases: admin, user

string

The username of the vSphere vCenter server.

If the value is not specified in the task, the value of environment variable VMWARE_USER will be used instead.

validate_certs

boolean

Allows connection when SSL certificates are not valid. Set to false when certificates are not trusted.

If the value is not specified in the task, the value of environment variable VMWARE_VALIDATE_CERTS will be used instead.

Choices:

  • false

  • true ← (default)

validate_tags_before_attaching

boolean

Whether to validate the tags before attaching them to the object.

If true, additional API calls will be made to validate the tags exist and can be applied to the type of object specified.

If a tag fails validation, an error will be raised.

If false, the tags will be attached to the object without validation. This is faster, but may result in the module reporting changes every time. This is due to the module attempting to attach the tag, and vSphere simply ignoring the invalid request.

Choices:

  • false ← (default)

  • true

Notes

Note

  • All modules require API write access and hence are not supported on a free ESXi license.

  • All variables and VMware object names are case sensitive.

  • Modules may rely on the ‘requests’ python library, which does not use the system certificate store by default. You can specify the certificate store by setting the REQUESTS_CA_BUNDLE environment variable. Note having this variable set may cause a ‘false’ value for the ‘validate_certs’ option to be ignored in some cases. Example: ‘export REQUESTS_CA_BUNDLE=/path/to/your/ca_bundle.pem’

See Also

See also

vmware.vmware.tags

Manage one or more VMware tags.

vmware.vmware.tag_categories

Manage one or more VMware tag categories.

Examples

- name: Attach tags to a VM
  vmware.vmware.tag_associations:
    state: present
    object_moid: "{{ lookup('vmware.vmware.moid_from_path', '/Datacenter/vm/test-vm') }}"
    object_type: VirtualMachine
    tags:
      - name: my-test-tag-1
        category_id: urn:vmomi:InventoryServiceCategory:00000000-0000-0000-0000-000000000000:GLOBAL
      - id: urn:vmomi:InventoryServiceTag:00000000-0000-0000-0000-21b1f07e73cf:GLOBAL
        category_id: urn:vmomi:InventoryServiceCategory:00000000-0000-0000-0000-000000000000:GLOBAL
      - name: my-test-tag-3
        category_name: my-test-category

- name: Make sure only these two tags are attached to the VM
  vmware.vmware.tag_associations:
    state: present
    object_moid: "{{ lookup('vmware.vmware.moid_from_path', '/Datacenter/vm/test-vm') }}"
    object_type: VirtualMachine
    remove_extra_tags: true
    tags:
      - name: my-test-tag-1
        category_id: urn:vmomi:InventoryServiceCategory:00000000-0000-0000-0000-000000000000:GLOBAL
      - id: urn:vmomi:InventoryServiceTag:00000000-0000-0000-0000-21b1f07e73cf:GLOBAL
        category_id: urn:vmomi:InventoryServiceCategory:00000000-0000-0000-0000-000000000000:GLOBAL

- name: Remove all tags from the VM
  vmware.vmware.tag_associations:
    state: absent
    object_moid: "{{ lookup('vmware.vmware.moid_from_path', '/Datacenter/vm/test-vm') }}"
    object_type: VirtualMachine
    remove_extra_tags: true
    tags: []

- name: Remove a tag from the VM
  vmware.vmware.tag_associations:
    state: present
    object_moid: "{{ lookup('vmware.vmware.moid_from_path', '/Datacenter/vm/test-vm') }}"
    object_type: VirtualMachine
    tags:
      - name: my-test-tag-1
        category_id: urn:vmomi:InventoryServiceCategory:00000000-0000-0000-0000-000000000000:GLOBAL

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

added_tags

list / elements=string

A list of tag IDs that were added to the object.

Returned: always

Sample: ["urn:vmomi:InventoryServiceTag:00000000-0000-0000-0000-21b1f07e73cf:GLOBAL"]

object

dictionary

A dictionary containing details about the object that was managed.

Returned: always

Sample: {"id": "vm-1234567890", "tags": ["urn:vmomi:InventoryServiceTag:00000000-0000-0000-0000-21b1f07e73cf:GLOBAL"]}

removed_tags

list / elements=string

A list of tag IDs that were removed from the object.

Returned: always

Sample: ["urn:vmomi:InventoryServiceTag:00000000-0000-0000-0000-21b1f07e73cf:GLOBAL"]

Authors

  • Ansible Cloud Team (@ansible-collections)