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 manage individual lines in a file
In my lab, I want to allow the wheel group users to run sudo without typing password. As always, I have done it in puppet. Here is the how to:1) I use resource 'file_line' to do the work. As it is not in not in the default module, I need to install it. Run 'puppet … Continue reading Puppet manage individual lines in a file
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