Add support for tagged interfaces and require ovs module

Currently the module can't deploy VSM on a management interface
that is tagged. This commit adds support for these interfaces by
properly handling them from a puppet perspective. Additionally
rather than calling similar code to check if OVS exists we call
the OVS module directly.

Change-Id: I148ee63e354701dbe4db6debc34660e47588ebb7
This commit is contained in:
Steven Hillman 2015-07-09 12:54:53 -07:00
parent ed391d3d9b
commit 7b57af350f
3 changed files with 20 additions and 18 deletions

View File

@ -76,10 +76,11 @@ class n1k_vsm(
$ovsbridge = 'vsm-br'
#VSM installation will be done only once. Will not respond to puppet sync
$_phy_ip_addr = inline_template("<%= scope.lookupvar('::ipaddress_${n1k_vsm::phy_if_bridge}') %>")
$_phy_if_bridge = regsubst($n1k_vsm::phy_if_bridge, '[.:-]+', '_', 'G')
$_phy_ip_addr = inline_template("<%= scope.lookupvar('::ipaddress_${_phy_if_bridge}') %>")
if $_phy_ip_addr != '' {
$phy_ip_addr = inline_template("<%= scope.lookupvar('::ipaddress_${n1k_vsm::phy_if_bridge}') %>")
$phy_ip_mask = inline_template("<%= scope.lookupvar('::netmask_${n1k_vsm::phy_if_bridge}') %>")
$phy_ip_addr = inline_template("<%= scope.lookupvar('::ipaddress_${_phy_if_bridge}') %>")
$phy_ip_mask = inline_template("<%= scope.lookupvar('::netmask_${_phy_if_bridge}') %>")
$gw_intf = $n1k_vsm::phy_gateway
include n1k_vsm::pkgprep_ovscfg
}

View File

@ -53,17 +53,8 @@ class n1k_vsm::pkgprep_ovscfg
unless => '/usr/bin/virsh net-info default | /bin/grep -c \'Autostart: .* no\'',
}
package { 'Package_ovs':
ensure => installed,
name => 'openvswitch',
}
# bring up OVS and perform interface configuration
service { 'Service_ovs':
ensure => running,
name => 'openvswitch',
enable => true,
}
# Ensure OVS is present
require vswitch::ovs
package { 'genisoimage':
ensure => installed,
@ -110,14 +101,22 @@ class n1k_vsm::pkgprep_ovscfg
'set BOOTPROTO none',
'set ONBOOT yes',
"set NAME ${n1k_vsm::phy_if_bridge}",
'rm IPADDR',
'set DEFROUTE no',
'set IPADDR ""',
'rm NETMASK',
'rm GATEWAY',
'set USERCTL no',
],
notify => Service['Service_network'],
}
# Make sure that networking comes fine after reboot
exec { 'Flap_n1kv_phy_if':
command => "/sbin/ifdown ${n1k_vsm::phy_if_bridge} && /sbin/ifup ${n1k_vsm::phy_if_bridge}",
require => augeas['Augeas_modify_ifcfg-phy_if_bridge'],
}
exec { 'Flap_n1kv_bridge':
command => "/sbin/ifdown ${n1k_vsm::ovsbridge} && /sbin/ifup ${n1k_vsm::ovsbridge}",
require => augeas['Augeas_modify_ifcfg-ovsbridge'],
}
# Make sure that networking comes fine after reboot- add init file and restart networking
file { 'Create_Init_File':
replace => 'yes',
path => '/etc/init.d/n1kv',
@ -125,6 +124,8 @@ class n1k_vsm::pkgprep_ovscfg
group => 'root',
mode => '0775',
source => 'puppet:///modules/n1k_vsm/n1kv',
require => exec['Flap_n1kv_phy_if', 'Flap_n1kv_bridge'],
notify => Service['Service_network'],
}
} # endif of if "${n1k_vsm::gw_intf}" != "${n1k_vsm::ovsbridge}"
}

View File

@ -80,7 +80,7 @@ class n1k_vsm::vsmprep
# Now generate ovf xml file and repackage the iso
exec { 'Exec_VSM_Repackage_Script':
command => "/tmp/repackiso.py -i/var/spool/cisco/vsm/${n1k_vsm::n1kv_version}.iso -d${n1k_vsm::vsm_domain_id} -n${n1k_vsm::vsmname} -m${n1k_vsm::mgmtip} -s${n1k_vsm::mgmtnetmask} -g${n1k_vsm::mgmtgateway} -p${n1k_vsm::vsm_admin_passwd} -r${n1k_vsm::vsm_role} -f/var/spool/cisco/vsm/${n1k_vsm::vsm_role}_repacked.iso ",
command => "/tmp/repackiso.py -i${vsm_path}/n1000v-dk9.${n1k_vsm::n1kv_version}.iso -d${n1k_vsm::vsm_domain_id} -n${n1k_vsm::vsmname} -m${n1k_vsm::mgmtip} -s${n1k_vsm::mgmtnetmask} -g${n1k_vsm::mgmtgateway} -p${n1k_vsm::vsm_admin_passwd} -r${n1k_vsm::vsm_role} -f/var/spool/cisco/vsm/${n1k_vsm::vsm_role}_repacked.iso ",
unless => "/usr/bin/virsh list --all | grep -c ${n1k_vsm::vsmname}",
}