Puppet custom facter


In my lab, I added a custom facter 'environment', which tells me the box is in either development or production.Here are the steps1) Create a new module and associated file: /etc/puppet/modules/mylab/lib/facter/environment.rb2) Add the ruby code:# Add puppet facter environmentFacter.add("environment") do setcode do result = case Facter.hostname when /^dev/: "development" else "production" end result endendReference:https://docs.puppetlabs.com/facter/2.2/custom_facts.html 

Hidden Master DNS


Simply speaking 'Hidden Master DNS' is done by removing the SOA DNS server from the NS records. The common practise is that the company controls their own DNS master or SOA, and uses ISP or other vendors' DNS as secondary or slave. The benifit is to hide the master DNS from public, as generally speaking … Continue reading Hidden Master DNS

Puppet cron job configuration


In my lab, I want everything to be controlled by puppet. So I use puppet to set up the cron job that I mentioned in step 3) in the post Integrate puppet to foreman.# Push puppet node facts to foreman*/10 * * * * /etc/puppet/push_facts.rbThe manifest can be found here as well.class sys_cron::push_facts {cron { puppet_push_facts: … Continue reading Puppet cron job configuration

Integrate Puppet to Foreman


Continue with my previous post - Build Foreman as Puppet ENC. Now it's the time to integrate the Puppet to Foreman. On the foreman server (foreman.mylab.local): 1) Add the puppet smart proxy 2) Import the environments via the smart proxy On puppet master (puppet.mylab.local): 1) Create the two executable ruby scripts to push/pull facts to/from foreman: … Continue reading Integrate Puppet to Foreman