
This patch adds in the option to support pacemaker integration in OSP7. Specifically when pacemaker integration is enabled two VMs will be created- one for the primary, and one for the secondary. Neither VM will be defined or started. Addditionally MACs will be generated for both VMs to prevent an issue on VSM switchover. Code was also added to support cases where the VSM needs to be brought up in setups where there's an existing bridge. Change-Id: I2ca2ccc12a9db56348440d210eef4bde25142aef
93 lines
3.2 KiB
Puppet
93 lines
3.2 KiB
Puppet
# == Class: n1k_vsm::vsmprep
|
|
#
|
|
# This class prepares the VSM image to be deploy in a server
|
|
# This class requires n1k_vsm to set some environmental variables
|
|
#
|
|
class n1k_vsm::vsmprep
|
|
{
|
|
include 'stdlib'
|
|
require n1k_vsm
|
|
include n1k_vsm
|
|
|
|
# prepare vsm folders
|
|
ensure_resource('file', '/var/spool/cisco/', {
|
|
ensure => directory,
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0664'}
|
|
)
|
|
ensure_resource('file', '/var/spool/cisco/vsm', {
|
|
ensure => directory,
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0664'}
|
|
)
|
|
|
|
#Check source of n1kv-vsm image:yum-repo (or) local file in 'files' directory
|
|
if $n1k_vsm::n1kv_source != '' {
|
|
if ($n1k_vsm::n1kv_source =~ /^http/) or ($n1k_vsm::n1kv_source =~ /^ftp/) {
|
|
$vsmimage_uri = 'repo'
|
|
$vsm_path = '/opt/cisco/vsm'
|
|
} else {
|
|
$vsmimage_uri = 'file'
|
|
$vsmtgtimg = "/var/spool/cisco/vsm/${n1k_vsm::n1kv_source}"
|
|
$vsm_path = '/var/spool/cisco/vsm'
|
|
}
|
|
} else {
|
|
$vsmimage_uri = 'unspec'
|
|
$vsm_path = '/opt/cisco/vsm'
|
|
}
|
|
|
|
if $vsmimage_uri == 'file' {
|
|
#specify location on target-host where image file will be downloaded to.
|
|
file { $vsmtgtimg:
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0664',
|
|
source => "puppet:///modules/n1k_vsm/${n1k_vsm::n1kv_source}",
|
|
require => File['/var/spool/cisco/vsm/'],
|
|
}
|
|
} else {
|
|
if $vsmimage_uri == 'repo' {
|
|
#vsm package: 'nexus-1000v-vsm' rpm will be downloaded and installed
|
|
#from below repo.
|
|
yumrepo { 'cisco-vsm-repo':
|
|
baseurl => $n1k_vsm::n1kv_source,
|
|
descr => 'Repo for VSM Image',
|
|
enabled => 1,
|
|
gpgcheck => 1,
|
|
gpgkey => "${n1k_vsm::n1kv_source}/RPM-GPG-KEY",
|
|
}
|
|
}
|
|
package {'nexus-1000v-iso':
|
|
ensure => $n1k_vsm::n1kv_version,
|
|
name => 'nexus-1000v-iso',
|
|
provider => 'yum',
|
|
}
|
|
}
|
|
|
|
# copy repackiso.py to local place
|
|
file { 'VSM_Repackage_Script':
|
|
ensure => present,
|
|
path => '/tmp/repackiso.py',
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0774',
|
|
source => 'puppet:///modules/n1k_vsm/repackiso.py',
|
|
}
|
|
|
|
# Now generate ovf xml file and repackage the iso
|
|
exec { 'Exec_VSM_Repackage_Script':
|
|
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",
|
|
creates => "/var/spool/cisco/vsm/${n1k_vsm::vsm_role}_repacked.iso",
|
|
}
|
|
|
|
# If we're under pacemaker_control, create a secondary VSM iso as well
|
|
if ($n1k_vsm::pacemaker_control) {
|
|
exec { 'Exec_VSM_Repackage_Script_secondary':
|
|
command => "/tmp/repackiso.py -i${vsm_path}/n1000v-dk9.${n1k_vsm::n1kv_version}.iso -d${n1k_vsm::vsm_domain_id} -n${n1k_vsm::vsmname_s} -m${n1k_vsm::mgmtip} -s${n1k_vsm::mgmtnetmask} -g${n1k_vsm::mgmtgateway} -p${n1k_vsm::vsm_admin_passwd} -r${n1k_vsm::vsm_role_s} -f/var/spool/cisco/vsm/${n1k_vsm::vsm_role_s}_repacked.iso",
|
|
creates => "/var/spool/cisco/vsm/${n1k_vsm::vsm_role_s}_repacked.iso",
|
|
}
|
|
}
|
|
}
|