Add initial work on network configuration for management network

Currently supports configuration of network interfaces
This commit is contained in:
Mark Goddard 2017-03-15 09:44:26 +00:00
parent cd33e4a75f
commit 08d34db3d1
5 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,12 @@
---
# Switch configuration.
###############################################################################
# Interface configuration.
# Interface configuration. Dict mapping switch interface names to configuration
# dicts. Each dict contains a description item and a 'config' item which should
# contain a list of additional per-interface configuration.
# Generally this should be configured on a per-switch basis via a host_vars
# file.
switch_interface_config: {}

View File

@ -0,0 +1,23 @@
---
- name: Ensure the power and management network switches are configured
hosts: mgmt-switches
gather_facts: no
vars:
provider:
host: "{{ ansible_host }}"
username: "{{ ansible_user }}"
password: "{{ ansible_ssh_pass }}"
transport: cli
authorize: yes
auth_pass: "{{ switch_auth_pass }}"
tasks:
- name: Ensure switch interfaces are configured
local_action:
module: dellos6_config
provider: "{{ provider }}"
lines: >
{{ ['description ' ~ item.value.description] +
item.value.config | default([]) }}
parents:
- "interface {{ item.key }}"
with_dict: "{{ switch_interface_config }}"

View File

@ -0,0 +1,20 @@
---
# Switch configuration.
###############################################################################
# Interface configuration.
# Interface configuration. Dict mapping switch interface names to configuration
# dicts. Each dict contains a description item and the name of a network which
# is used to lookup a variable containing interface config for ports on that
# network (switch_interface_config_<network>). Each dict can also have a
# 'config' item which should contain a list of additional per-interface
# configuration.
# Generally this should be configured on a per-switch basis via a host_vars
# file.
switch_interface_config: {}
# Example of an interface configuration variable for a network, referenced by
# the 'network' item of an interface in 'switch_interface_config'.
#switch_interface_config_example_net:
# - switchport access vlan 42

View File

@ -11,3 +11,20 @@
# Hosts in this group will have Docker installed. # Hosts in this group will have Docker installed.
seed seed
controllers controllers
###############################################################################
# Networking groups.
[mgmt-switches]
# Empty group to provide declaration of mgmt-switches group.
[ctl-switches]
# Empty group to provide declaration of ctl-switches group.
[hs-switches]
# Empty group to provide declaration of hs-switches group.
[switches:children]
mgmt-switches
ctl-switches
hs-switches

View File

@ -17,3 +17,12 @@ localhost ansible_connection=local
[controllers] [controllers]
# Add controller nodes here if required. These hosts will provide the # Add controller nodes here if required. These hosts will provide the
# OpenStack overcloud. # OpenStack overcloud.
[mgmt-switches]
# Add management network switches here if required.
[ctl-switches]
# Add control and provisioning switches here if required.
[hs-switches]
# Add high speed switches here if required.