For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

Ichnafi's avatar
Ichnafi
Icon for Cirrostratus rankCirrostratus
Feb 08, 2023
Solved

Modify vCMP-Guest with ansible not possible?

Hello fellow F5ers, I try to build an ansible playbook that performs the following: Get Names of trunk from vCMP-Host ->  got it by using module bigip_device_info Create a new VLAN and add it to ...
  • Ichnafi's avatar
    Ichnafi
    Feb 17, 2023

    Hello Matt_Mabis ,

    thank you for your answer.
    I can confirm, that one can add VLANs to a vcmp-guest like this, but:

    You have to list all the existing vlans next to the new one as well. You can't just add a new one. The module replaces all VLANs of the guest with the ones listed in the "vlans" section of the module.
    I find this rather awkward. To add a VLAN to a guest, without knowing or careing what VLANs were configured previosly you had to:

    1. Use module bigip_device_info to query information about all vCMP-guest on a vCMP-Host
    2. Filter the output by the name of the vCMP-Guest you like to update and get the list of currently configured vlans
    3. append the new vlan to the list
    4. apply the extended list to the guest

     

    vars:
      guest_to_modify: "Guest1"
      vlan_tobe_added: "/Common/fancy-new-vlan"
    
    tasks:
      - name: Get vCMP-Guest Info
        bigip_device_info:
          gather_subset:
            - vcmp-guests
          provider: "{{ bigip_provider }}"
        register: device_info
        delegate_to: localhost
    
      - name: Filter for specific guest and build a list with new vlan
        set_fact:
          list_current_vlans: "{{ device_info.vcmp_guests|selectattr('full_path', 'match', guest_to_modify) | map(attribute='vlans') }}"
          list_with_added_vlan: "{{ list_current_vlans[0] + [vlan_tobe_added] }}"
    
      - name: Add VLAN to vCMP-Guest
        bigip_vcmp_guest:
          name: "{{ guest }}"
          vlans: "{{ list_with_added_vlan }}"          
          provider: "{{ bigip_provider }}"
        delegate_to: localhost

     

     Anyway. I tested it and it worked for me. the abillity to just add a new vlan would be better i guess, but I'll take it.

    Thank you very much!