Browse Source

Start to add support for vNIC templates.

Joe Clarke 4 years ago
parent
commit
6136d32f1f

+ 4 - 0
automation/cleu-ansible-n9k/inventory/hosts

@@ -52,9 +52,13 @@ tacacs_vrf="default"
 
 [HX:vars]
 multicast_policy="HyperFlex"
+connectivity_module_type="vnic_template"
+connectivity_module_name="hx-vm-network"
 
 [UCS:vars]
 multicast_policy=""
+connectivity_module_type="lan_connectivity"
+connectivity_module_name="CLEU_LAN_Policy"
 
 [vCenter]
 10.100.252.11

+ 4 - 0
automation/cleu-ansible-n9k/roles/nxos-vlan/tasks/main.yml

@@ -22,6 +22,7 @@
     - nxos-vlan
     - allow-vlan
     - remove-vlan
+    - remove-ucs-vlan
 
 - name: Generate list of interfaces (non-stretched)
   set_fact: iflist="{{ iflist }} + [{{ item.key }}]"
@@ -33,6 +34,7 @@
     - nxos-vlan
     - allow-vlan
     - remove-vlan
+    - remove-ucs-vlan
 
 - name: Associate interfaces to VLAN
   nxos_config:
@@ -46,6 +48,7 @@
     - vlan
     - nxos-vlan
     - allow-vlan
+    - allow-nxos-vlan
 
 - name: Add SVI definition
   nxos_interfaces:
@@ -354,6 +357,7 @@
     - vlan
     - nxos-vlan
     - remove-vlan
+    - remove-ucs-vlan
 
 - name: Delete VLAN definition
   nxos_vlan:

+ 70 - 0
automation/cleu-ansible-n9k/roles/ucs-vlan/tasks/main.yml

@@ -17,6 +17,76 @@
     - add-vlan
     - add-ucs-vlan
 
+- name: Add VLAN to vNIC template A
+  ucs_vnic_template:
+    hostname: "{{ inventory_hostname }}"
+    name: "{{ connectivity_module_name }}-a"
+    password: "{{ ucs_mgr_password }}"
+    username: "{{ ucs_mgr_username }}"
+    vlans_list:
+      - name: "{{ vlan_name }}"
+  delegate_to: localhost
+  when: connectivity_module_type == "vnic_template" and (delete_vlan is not defined or not delete_vlan|bool)
+  tags:
+      - ucs
+      - vlan
+      - ucs-vlan
+      - allow-vlan
+      - allow-ucs-vlan
+
+- name: Add VLAN to vNIC template B
+  ucs_vnic_template:
+    hostname: "{{ inventory_hostname }}"
+    name: "{{ connectivity_module_name }}-b"
+    password: "{{ ucs_mgr_password }}"
+    username: "{{ ucs_mgr_username }}"
+    vlans_list:
+      - name: "{{ vlan_name }}"
+  delegate_to: localhost
+  when: connectivity_module_type == "vnic_template" and (delete_vlan is not defined or not delete_vlan|bool)
+  tags:
+      - ucs
+      - vlan
+      - ucs-vlan
+      - allow-vlan
+      - allow-ucs-vlan
+
+- name: Remove VLAN from vNIC template A
+  ucs_vnic_template:
+    hostname: "{{ inventory_hostname }}"
+    name: "{{ connectivity_module_name }}-a"
+    password: "{{ ucs_mgr_password }}"
+    username: "{{ ucs_mgr_username }}"
+    vlans_list:
+      - name: "{{ vlan_name }}"
+        state: absent
+  delegate_to: localhost
+  when: connectivity_module_type == "vnic_template" and delete_vlan is defined and delete_vlan|bool
+  tags:
+      - ucs
+      - vlan
+      - ucs-vlan
+      - remove-vlan
+      - remove-ucs-vlan
+
+- name: Remove VLAN from vNIC template B
+  ucs_vnic_template:
+    hostname: "{{ inventory_hostname }}"
+    name: "{{ connectivity_module_name }}-b"
+    password: "{{ ucs_mgr_password }}"
+    username: "{{ ucs_mgr_username }}"
+    vlans_list:
+      - name: "{{ vlan_name }}"
+        state: absent
+  delegate_to: localhost
+  when: connectivity_module_type == "vnic_template" and delete_vlan is defined and delete_vlan|bool
+  tags:
+      - ucs
+      - vlan
+      - ucs-vlan
+      - remove-vlan
+      - remove-ucs-vlan
+
 - name: Delete VLAN from UCS
   ucs_vlans:
     fabric: common