From ea8d404676aaae68856ae82f0b2f01e230c39289 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 22 Jun 2019 02:52:11 +0200 Subject: dellos: basic vlan management --- chaos-at-home/ch-sw0.yml | 1 + inventory/group_vars/chaos_at_home_switches/main.yml | 6 ++++-- inventory/group_vars/dellos6/main.yml | 17 +++++++++++++---- roles/dellos6/bootstrap/templates/init.j2 | 2 -- roles/dellos6/layer2/handlers/main.yml | 4 ++++ roles/dellos6/layer2/tasks/main.yml | 6 ++++++ roles/dellos6/layer2/templates/vlan.j2 | 5 +++++ 7 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 roles/dellos6/layer2/handlers/main.yml create mode 100644 roles/dellos6/layer2/tasks/main.yml create mode 100644 roles/dellos6/layer2/templates/vlan.j2 diff --git a/chaos-at-home/ch-sw0.yml b/chaos-at-home/ch-sw0.yml index 5ea632a2..fd0dedd0 100644 --- a/chaos-at-home/ch-sw0.yml +++ b/chaos-at-home/ch-sw0.yml @@ -5,3 +5,4 @@ roles: - dellos6/bootstrap - dellos6/base + - dellos6/layer2 diff --git a/inventory/group_vars/chaos_at_home_switches/main.yml b/inventory/group_vars/chaos_at_home_switches/main.yml index 676f87d8..df166186 100644 --- a/inventory/group_vars/chaos_at_home_switches/main.yml +++ b/inventory/group_vars/chaos_at_home_switches/main.yml @@ -1,3 +1,5 @@ --- -network_mgmt_zone: "{{ network_zones.mgmt }}" -network_mgmt_interface: "Gi1/0/28" +switch_mgmt_zone: "{{ network_zones.mgmt }}" +switch_mgmt_interface: "Gi1/0/28" + +switch_network_zones: "{{ network_zones }}" diff --git a/inventory/group_vars/dellos6/main.yml b/inventory/group_vars/dellos6/main.yml index d3f2a80b..7bf53699 100644 --- a/inventory/group_vars/dellos6/main.yml +++ b/inventory/group_vars/dellos6/main.yml @@ -5,7 +5,16 @@ ansible_become: yes ansible_become_method: enable ansible_become_password: "{{ vault_ansible_become_password }}" -dellos6_mgmt_vlan: "{{ network_mgmt_zone.vlan }}" -dellos6_mgmt_ipaddr: "{{ network_mgmt_zone.prefix | ipaddr(network_mgmt_zone.offsets[inventory_hostname]) | ipaddr('address') }}" -dellos6_mgmt_netmask: "{{ network_mgmt_zone.prefix | ipaddr('netmask') }}" -dellos6_mgmt_interface: "{{ network_mgmt_interface | default('') }}" + +dellos6_mgmt_vlan: "{{ switch_mgmt_zone.vlan }}" +dellos6_mgmt_ipaddr: "{{ switch_mgmt_zone.prefix | ipaddr(switch_mgmt_zone.offsets[inventory_hostname]) | ipaddr('address') }}" +dellos6_mgmt_netmask: "{{ switch_mgmt_zone.prefix | ipaddr('netmask') }}" +dellos6_mgmt_interface: "{{ switch_mgmt_interface | default('') }}" + + +dellos6_vlans: "{{ dellos6_vlans_yaml | from_yaml }}" +dellos6_vlans_yaml: | + {% for zone_name in switch_network_zones.keys() %} + - name: "{{ zone_name }}" + id: "{{ switch_network_zones[zone_name].vlan }}" + {% endfor %} diff --git a/roles/dellos6/bootstrap/templates/init.j2 b/roles/dellos6/bootstrap/templates/init.j2 index eef1e0a6..fa453018 100644 --- a/roles/dellos6/bootstrap/templates/init.j2 +++ b/roles/dellos6/bootstrap/templates/init.j2 @@ -17,8 +17,6 @@ ip address {{ dellos6_mgmt_ipaddr }} {{ dellos6_mgmt_netmask }} exit no spanning-tree -{# TODO: configure management port #} - crypto key generate rsa crypto key generate dsa ip ssh server diff --git a/roles/dellos6/layer2/handlers/main.yml b/roles/dellos6/layer2/handlers/main.yml new file mode 100644 index 00000000..944e75a3 --- /dev/null +++ b/roles/dellos6/layer2/handlers/main.yml @@ -0,0 +1,4 @@ +--- +- name: save configuration + dellos6_config: + save: true diff --git a/roles/dellos6/layer2/tasks/main.yml b/roles/dellos6/layer2/tasks/main.yml new file mode 100644 index 00000000..75617b1c --- /dev/null +++ b/roles/dellos6/layer2/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: create vlans + dellos6_config: + src: vlan.j2 + notify: save configuration + register: vlan_result diff --git a/roles/dellos6/layer2/templates/vlan.j2 b/roles/dellos6/layer2/templates/vlan.j2 new file mode 100644 index 00000000..6403c735 --- /dev/null +++ b/roles/dellos6/layer2/templates/vlan.j2 @@ -0,0 +1,5 @@ +{% for vlan in dellos6_vlans %} +vlan {{ vlan.id }} +name "{{ vlan.name }}" +exit +{% endfor %} -- cgit v1.2.3