Skip to content

Instantly share code, notes, and snippets.

@tkishel
Last active May 7, 2020 16:45
Show Gist options
  • Save tkishel/2d4523524e85e8e0ce2b4f2286e123ab to your computer and use it in GitHub Desktop.
Save tkishel/2d4523524e85e8e0ce2b4f2286e123ab to your computer and use it in GitHub Desktop.

Configure Master

# 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', }
}

Install on Master

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

Configure Agent

# cat manifest.pp 
network_vlan { '99':
  ensure      => present,
  vlan_name   => 'TESTVIAAPPLY',
}

Install on Agent

puppet agent -t
puppet device --verbose --target cisco.example.com
puppet device --target cisco.example.com --verbose --apply manifest.pp

Verify on Agent

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',
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment