Forum Discussion
Modify vCMP-Guest with ansible not possible?
- 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:- Use module bigip_device_info to query information about all vCMP-guest on a vCMP-Host
- Filter the output by the name of the vCMP-Guest you like to update and get the list of currently configured vlans
- append the new vlan to the list
- 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!
Hey there Ichnafi!
I Tested code out for myself and got it working with bigip_vcmp_guest, here is the code i used you can see the first and second tasks creates 2 VCMP Guest Instances and the 3rd task of code modifies the existing created VCMP Guest, no ping loss no packet drops from my testing.
---
- hosts: localhost
connection: local
gather_facts: false
vars_files:
- /git/vars/lab/vault.yml
tasks:
- name: Create a vCMP guest with specific VLANs
bigip_vcmp_guest:
name: foo
mgmt_network: bridged
mgmt_address: 192.168.1.60/24
mgmt_route: 192.168.1.1
vlans:
- VLAN5
initial_image: "BIGIP-15.1.0.4-0.0.6.iso"
provider:
password: "{{ f5_password }}"
server: 192.168.1.50
user: "{{ f5_username }}"
validate_certs: false
delegate_to: localhost
- name: Create a vCMP guest with specific VLANs
bigip_vcmp_guest:
name: Testbip
mgmt_network: bridged
mgmt_address: 192.168.1.61/24
mgmt_route: 192.168.1.1
initial_image: "BIGIP-15.1.0.4-0.0.6.iso"
vlans:
- VLAN2101
state: configured
provider:
password: "{{ f5_password }}"
server: 192.168.1.50
user: "{{ f5_username }}"
validate_certs: false
delegate_to: localhost
- name: Modify a vCMP guest with specific VLANs
bigip_vcmp_guest:
name: foo
vlans:
- VLAN5
- VLAN2101
provider:
password: "{{ f5_password }}"
server: 192.168.1.50
user: "{{ f5_username }}"
validate_certs: false
delegate_to: localhost
Output from Code Run
Ansible Playbook Version - 2.14.1
Ansible Galaxy Collection - 1.21.0
- IchnafiFeb 17, 2023Cirrostratus
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:- Use module bigip_device_info to query information about all vCMP-guest on a vCMP-Host
- Filter the output by the name of the vCMP-Guest you like to update and get the list of currently configured vlans
- append the new vlan to the list
- 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!
- Matt_MabisFeb 17, 2023Employee
Totally understand where you are coming from, I think they would have had to create a different module for that scenario. The removal of a vlan would have created complications against bigip_vcmp_guests module as a "absent" status trying to remove a vlan would probably tell the system to remove the entire guest not just a vlan..
Glad you were able to figure out a solution.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com