Update custom attribute called OS

Hi

anyone can suggest Please if we can update the say a ‘custom attribute’ called OS from OS level with below

https://docs.ansible.com/ansible/latest/collections/community/vmware/vmware_vm_info_module.html

Say i want to use Windows 2019 DataCenter … which is not aviable btw in vCenter 6.7 … so getting that as ansible facts and add to attributes somehow

Thanks

You could override the values by combining it with a specially crafter
dictionary, or loop over it, etc.
How exactly you do this depends on the data structure, but the module
documentation does not mention any such custom attributes.
If you have an example of your playbook and the resulting data structure?

Thanks for Reply, just to give you more context

The custom attributes i have added are

OS
Application

Owner

Etc…

Now why OS ? That is as the OS seen by vCenter is say Ubuntu .,… but it does not tell if that is Ubuntu18.04 or Ubuntu20.04 … so i have added them manually for now… but looking for way to Automate that.

Thanks

That’s not really an example of the actual data structure. So for the moment the answer is that what you want should be possible.

Hi

You can set and get custom values like

  • name: Set Custom Attributes
    community.vmware.vmware_guest_custom_attributes:
    validate_certs: False
    hostname: ‘{{ vcenter_hostname }}’
    username: ‘{{ vcenter_username }}’
    password: ‘{{ vcenter_password }}’
    state: present
    name: ‘dev-1’
    attributes:

  • name: OS
    value: ‘Windows Server 2019’

  • name: Get guest information
    community.vmware.vmware_guest_info:
    validate_certs: False
    hostname: ‘{{ vcenter_hostname }}’
    username: ‘{{ vcenter_username }}’
    password: ‘{{ vcenter_password }}’
    name: ‘dev-1’
    datacenter: Asia-Datacenter1

The output will be like -

ok: [localhost] => {
“changed”: false,
“instance”: {
“annotation”: “”,
“current_snapshot”: null,
“customvalues”: {
“OS”: “Windows Server 2019”
},

Thanks for Reply Abhijit … i already saw ur module - community.vmware.vmware_guest_custom_attributes

I am doing this already which powershell with one liner

Get-VM $($line.name) |Set-Annotation -CustomAttribute “OS” -Value $($line.os)

The power of ansible is it can talk on OS level & Vmware powercli does only on vCenter level

vCenter sees OS os with Vmwre-tools as CentOS7 … ok gr8 … but when it comes to say Ubuntu it simply says Ubuntu 64 bit & not Ubuntu18

Now we know with Ansible “fatcs & filter” we can get OS details … so that can somehow read & push into custom attributes ? If yes that will be awesome.

ansible all -m setup -a “filter=ansible_distribution_version” -o

Thanks

So again experts & it could be a feature request …

How can we dynamicailly update OS custome attribute

  • name: Set Custom Attributes
    community.vmware.vmware_guest_custom_attributes:
    validate_certs: False
    hostname: ‘{{ vcenter_hostname }}’
    username: ‘{{ vcenter_username }}’
    password: ‘{{ vcenter_password }}’
    state: present
    name: ‘dev-1’
    attributes:
  • name: OS
    value: ‘Windows Server 2019’

ansible all -m setup -a “filter=ansible_distribution_version” -o =====>> can be used as “value” in above ?

Can you be more clear in what you are actually trying to achieve?
What problem are you exactly having?
Share a playbook or inventory that does not do what you want, for example.