# cat site.pp
node 'pe-201810-master.puppetdebug.vlan' {
include resource_api::server
}
node 'pe-201810-agent.puppetdebug.vlan' {
include resource_api::agent
device_manager {'cisco.example.com':
type => 'cisco_ios',
credentials => { address => 'ip.dd.re.ss',
port => 22,
username => 'username',
password => 'password',
enable_password => 'password',
},
}
# include cisco_ios # autoincluded by device_manager
}
node 'cisco.example.com' {
network_vlan { '98': ensure => present, vlan_name => 'TEST VIA SITE', }
}
git clone https://github.com/puppetlabs/device_manager.git
cp -r device_manager /etc/puppetlabs/code/environments/production/modules
chown -R pe-puppet:pe-puppet /etc/puppetlabs/code/environments/production/modules/device_manager
puppet module install puppetlabs-resource_api --version 0.2.0
git clone https://github.com/puppetlabs/cisco_ios.git
git clone https://github.com/tphoney/netdev_stdlib.git -b resource_api
cp -r cisco_ios /etc/puppetlabs/code/environments/production/modules/
cp -r netdev_stdlib/lib/puppet* /etc/puppetlabs/code/environments/production/modules/cisco_ios/lib/
chown -R pe-puppet:pe-puppet /etc/puppetlabs/code/environments/production/modules/cisco_ios
puppet agent -t
# cat manifest.pp
network_vlan { '99':
ensure => present,
vlan_name => 'TESTVIAAPPLY',
}
puppet agent -t
puppet device --verbose --target cisco.example.com
puppet device --target cisco.example.com --verbose --apply manifest.pp
puppet device --target cisco.example.com --resource network_vlan '98'
network_vlan { "98":
vlan_name => 'TESTVIASITE',
shutdown => true,
ensure => 'present',
}
puppet device --target cisco.example.com --resource network_vlan '99'
network_vlan { "99":
vlan_name => 'TESTVIAAPPLY',
shutdown => true,
ensure => 'present',
}