summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2019-06-22 02:52:11 +0200
committerChristian Pointner <equinox@spreadspace.org>2019-06-22 02:52:11 +0200
commitea8d404676aaae68856ae82f0b2f01e230c39289 (patch)
tree33c1d443940b9f534bbdfec84d43a4d9893271de
parentdellos6: fix idempotence (diff)
dellos: basic vlan management
-rw-r--r--chaos-at-home/ch-sw0.yml1
-rw-r--r--inventory/group_vars/chaos_at_home_switches/main.yml6
-rw-r--r--inventory/group_vars/dellos6/main.yml17
-rw-r--r--roles/dellos6/bootstrap/templates/init.j22
-rw-r--r--roles/dellos6/layer2/handlers/main.yml4
-rw-r--r--roles/dellos6/layer2/tasks/main.yml6
-rw-r--r--roles/dellos6/layer2/templates/vlan.j25
7 files changed, 33 insertions, 8 deletions
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 %}