IT industry performing engineering and or UNIX related roles. • Puppet builds and deployments within Finance, Telco, Govt sectors and some other boutique companies.
puppet has a supported schema • Shell/Exec - bash scripts that pull RESTful data out of cloud mgmt platforms • The Dashboard. The default ! most of these seemed cumbersome and just a little bit uninventive.
based on system facts • module specific variables make it visually understandable to your user base base:: params::variable • Resolve your class definitions via heira $PUPPET/manifests/site.pp node default { hiera_include('classes','') }
a custom backend might be better ? • Custom Hiera Backends http://docs.puppetlabs.com/hiera/1/custom_backends.html • puppet supports custom back ends written in ruby.
# subset - %{::sig_pod} # datacentre specifics - common # all nodes common.yaml, sig4_sgs.yaml, Redhat.yaml, wwwserve01.yaml You can use standard or custom facter facts in your hierarchy. We use sig_pod to denote the DC and its associated settings.
: This is our base node config. --- classes: ['base', 'mcollective', 'ntp', 'profile', 'ssh', 'cron'] In sig4_pod, we set dns, ntp, ldap, ipv6 dns: [‘1.1.1.1’, ‘8.8.8.8’] ipv6: yes In RedHat.yaml, we set the classes applied to all Red Hat systems : --- classes: ['yum']
host : --- classes: ['rabbitmq', 'redis', 'zabbix::client'] And in your site manifest on your master : node default { hiera_include('classes','') } ' ' means the failback. use failback when you retrieve your hiera variables. Saves the compilation from failing in the event that hiera resolution doesn’t work. $varname = hiera('mymodule::varname', 'default' } $ntpservers = hiera("ntpservers", “1.1.1.1”)
hiera-redis In /etc/puppet/hiera.yaml, add or switch to the new backend : :backends: - redis :redis: :password: nil Some versions require you to set at least one value. In this case it’s the account password to log into redis.
Puppet Enterprise gives you confidence that you’re meeting regulatory requirements by enforcing a desired state and provides full reporting capabilities for when the auditors arrive.
checkupdates mco rpc package update package=openssh -F "hostname=mytesthost01" ultimately we would like to patch using a mcollective agent that understands yum mco rpc yum install yum-security; mco rpc yum update --security;
no ad hoc changes • Have a workflow for releases. • Use revision control, svn, cvs,mercurial,cvs • Ensure you can show which release is currently deployed. Tag a release. • Have your baseline module perform all the usual stuff, assign it to common. Add pci compliance code after that.
gain visibility into your configuration, point them at the current release and • say 'that's the version we are running' • Show the auditors your puppet manifests and then point them at the dashboard. ◦ - The Sea of Green :) ◦ - The sea of green means compliance !