123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- ---
- - name: Add VLAN definition
- nxos_vlans:
- config:
- - vlan_id: "{{ vlan_id }}"
- enabled: True
- name: "{{ vlan_name }}"
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-vlan
- - add-nxos-vlan
- - name: Generate list of interfaces (stretched)
- set_fact: iflist="{{ port_channels | list }}"
- when: generate_iflist is True and is_stretched is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - allow-vlan
- - name: Generate list of interfaces (non-stretched)
- set_fact: iflist="{{ iflist }} + [{{ item }}]"
- with_items: "{{ port_channels | list }}"
- when: generate_iflist is True and is_stretched is False and port_channels[item] is False
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - allow-vlan
- - name: Associate interfaces to VLAN
- nxos_config:
- lines:
- - switchport trunk allowed vlan add {{ vlan_id }}
- parents: interface {{ item }}
- with_items: "{{ iflist }}"
- when: iflist is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - allow-vlan
- - name: Add SVI definition
- nxos_interfaces:
- config:
- - name: Vlan{{ vlan_id }}
- enabled: True
- mode: layer3
- mtu: "{{ svi_mtu }}"
- description: "{{ svi_descr }}"
- when: svi_mtu is defined and svi_descr is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi
- - name: Set per-DC v4 IDF ID
- set_fact: v4_idf_id={{ idf_id }}
- when: is_stretched is False and build_v4 is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v4
- - name: Set stretched v4 IDF ID
- set_fact: v4_idf_id={{ stretched_idf_id }}
- when: is_stretched is True and build_v4 is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v4
- - name: Construct SVI IPv4 address
- set_fact: svi_v4_prefix={{ base_major_net }}.{{ vlan_id }}.{{ v4_idf_id }}
- when: build_v4 is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v4
- - name: Set SVI subnet length
- set_fact: svi_subnet_len="24"
- when: build_v4 is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v4
- - name: Add SVI v4 L3 parameters
- nxos_l3_interfaces:
- config:
- - name: Vlan{{ vlan_id }}
- ipv4:
- - address: "{{ svi_v4_prefix }}.{{ core_svi_v4_suffix }}/{{ svi_subnet_len }}"
- when: svi_v4_prefix is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v4
- - name: Set per-DC v6 IDF ID
- set_fact: v6_idf_id="{{ '%0x' % idf_id|int }}"
- when: is_stretched is False and build_v6 is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v6
- - name: Set stretched v6 IDF ID
- set_fact: v6_idf_id="{{ '%0x' % stretched_idf_id|int }}"
- when: is_stretched is True and build_v6 is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v6
- - name: Construct SVI v6 address
- set_fact: svi_v6_network="{{ base_v6_prefix }}:{{ '%0x' % vlan_id|int }}{{ v6_idf_id }}::"
- when: build_v6 is True
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v6
- - name: Add SVI v6 L3 parameters
- nxos_l3_interfaces:
- config:
- - name: Vlan{{ vlan_id }}
- ipv6:
- - address: "{{ svi_v6_network }}{{ core_svi_v6_suffix }}/64"
- when: svi_v6_network is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v6
- - name: Add SVI v6 L3 parameters
- nxos_config:
- lines:
- - ipv6 address use-link-local-only
- parents: interface Vlan{{ vlan_id }}
- when: svi_v6_link_local is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - add-svi-l3-v6
- - name: Add SVI OSPFv2 parameters
- nxos_interface_ospf:
- area: 0.0.0.0
- ospf: "{{ ospf_pid }}"
- interface: Vlan{{ vlan_id }}
- when: svi_v4_prefix is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-ospf
- - add-ospfv2
- - name: Add additional SVI OSPFv2 parameters
- nxos_config:
- lines:
- - ip ospf network {{ ospf_type }}
- parents: interface Vlan{{ vlan_id }}
- when: svi_v4_prefix is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-ospf
- - add-ospfv2
- - name: Disable SVI OSPFv2 passive interface
- nxos_config:
- lines:
- - no ip ospf passive-interface
- parents: interface Vlan{{ vlan_id }}
- when: svi_v4_prefix is defined and not passive_interface is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-ospf
- - add-ospfv2
- - name: Add SVI OSPFv3 parameters
- nxos_config:
- lines:
- - ipv6 router ospfv3 1 area 0.0.0.0
- - ospfv3 network {{ ospf_type }}
- parents: interface Vlan{{ vlan_id }}
- when: svi_v6_network is defined or svi_v6_link_local is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-ospf
- - add-ospfv3
- - name: Disable SVI OSPFv3 passive interface
- nxos_config:
- lines:
- - no ospfv3 passive-interface
- parents: interface Vlan{{ vlan_id }}
- when: (svi_v6_network is defined or svi_v6_link_local is defined) and not passive_interface is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-ospf
- - add-ospfv3
- - name: Add addition SVI parameters
- nxos_config:
- lines:
- - no ip redirects
- - no ipv6 redirects
- parents: interface Vlan{{ vlan_id }}
- when: svi_v4_prefix is defined or svi_v6_network is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-svi-l3
- - name: Enable HSRP
- nxos_config:
- lines:
- - hsrp version 2
- parents: interface Vlan{{ vlan_id }}
- when: (svi_v4_prefix is defined or svi_v6_network is defined) and use_hsrp is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-hsrp
- - name: Add HSRP v4 configuration
- nxos_config:
- lines:
- - authentication md5 key-chain HSRP_KEY
- - preempt
- - priority {{ core_hsrp_priority }}
- - timers 1 3
- - ip {{ svi_v4_prefix }}.{{ core_hsrp_vip_v4_suffix }}
- - track {{ core_hsrp_v4_track }} decrement 20
- parents:
- - interface Vlan{{ vlan_id }}
- - hsrp 1
- when: svi_v4_prefix is defined and use_hsrp is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-hsrp
- - add-hsrp-v4
- - name: Add HSRP v6 configuration
- nxos_config:
- lines:
- - authentication md5 key-chain HSRP_KEY
- - preempt
- - priority {{ core_hsrp_priority }}
- - timers 1 3
- - ip {{ svi_v6_network }}{{ core_hsrp_vip_v6_suffix }}
- - track {{ core_hsrp_v6_track }} decrement 20
- parents:
- - interface Vlan{{ vlan_id }}
- - hsrp 2 ipv6
- when: svi_v6_network is defined and use_hsrp is defined
- tags:
- - NXOS
- - vlan
- - nxos-vlan
- - add-hsrp
- - add-hsrp-v6
|