Recipes for Puppet and Facter
Recipes for configuring Puppet
- AptKeys? (puppet, recipe)
- CompleteConfiguration Complete Configuration (complete, configuration, module, modules, puppet, recipe)
- Lab42Infrastructure Lab42 Puppet Infrastructure (infrastructure, lab42, module, modules, puppet, recipe)
- PuppetScalability Puppet Scalability Notes (performance, puppet, puppetmasterd, recipe, scalability, speed.)
- Recipes/AmazonWebService Amazon Web Service Recipes (Amazon, puppet, recipe)
- Recipes/AptKeys Recipe for managing apt gpg keys (apt, aptkets, keys, puppet, recipe, recipes)
- Recipes/Apt_Repositories Recipe for Mixing In Multiple apt Repositories (puppet, recipe)
- Recipes/AqueosShorewall Aqueos Shorewall Recipe (aqueos, puppet, recipe, shorewall)
- Recipes/Asterisk This is mode for installing asterisk, libpri, zaptel and app_rxfax/app_txfax. It is very Debian specific, since it has to build the zaptel kernel module.
It also requires small ruby function_ to get the kernel version without the architecture for the linux-kbuild package.
$libdir/parser/functions/kernelversion.rb::
module Puppet::Parser::Functions
newfunction(:kernelversion, :type (Asterisk, puppet, recipe)
- Recipes/Authorized_keys Authorized_keys Recipe (authorized_keys, puppet, recipe, ssh)
- Recipes/Autofs AutoFS Recipe (autofs, puppet, recipe)
- Recipes/CentralizedSudoers Centralised sudoers recipe (puppet, recipe, sudo, sudoers)
- Recipes/ClamAV ClamAV Antivirus Recipe (ClamAV, puppet, recipe)
- Recipes/Debian Operating System Release Management (Debian, puppet, recipe)
- Recipes/DebianApache2Recipe Recipe for Apache2 on Debian (Etch) (apache2, components, debian, puppet, recipe)
- Recipes/DebianPreseed Managing Debian packages using debconf preseed (debian, linux, package, preseed, puppet, recipe)
- Recipes/DownloadFileRecipe Download 1 or more Files (download, file, puppet, recipe)
- Recipes/FilePermissionCheck File Permissions Check Recipe (file, permissions, puppet, recipe)
- Recipes/FirmwarePassword Working with Passwords and other sensitive data with exec (password, passwords, puppet, recipe)
- Recipes/Fonts Font Installation Recipe (fonts, puppet, recipe)
- Recipes/GrowlManifestErrors Using Growl to Get Syntax Error Notifications from Puppetmaster (growl, puppet, puppetmaster, recipe)
- Recipes/HighAvailability High Availability Recipe (availability, puppet, recipe)
- Recipes/KernelModules Kernel Modules (kernel, linux, modules, puppet, recipe)
- Recipes/LDAPClientNSSwitch LDAP Client NSSwitch recipe (LDAP, nsswitch, puppet, recipe)
- Recipes/Logrotate Logrotate Module (puppet, recipe, recipes)
- Recipes/ModuleIptables The iptables module illustrated will help administer iptables rules. There are essentially three parts: the module manifest_, which declares an iptables class and a defined-type for adding fragments, the rebuild-iptables_ script that rebuilds the iptables rules when a fragment is added or removed, and an area for fragments_.
.. _module manifest:
modules/iptables/manifests/init.pp
::
# Handles iptables concerns. See also ipt_fragment definition
define ipt_fragment($ensure) {
case $ensure {
absent: {
file { "/etc/iptables.d/$name":
ensure (iptables, network, puppet, recipe)
- Recipes/MutualRestart Mutual Restart Recipe (puppet, recipe, restart)
- Recipes/MySQLServer Install MySQL server and set root password (MySQL, database, puppet, recipe)
- Recipes/MySQLStoredConfiguration MySQL Server Recipe for Stored Configuraton (MySQL, configuration, database, puppet, recipe, stored)
- Recipes/NFS Purpose (NFS, file, puppet, recipe, recipes)
- Recipes/Nagios This module contains two classes, one for an NRPE client (set up for Debian and FreeBSD), and one for the Nagios server (Debian):
modules/nagios/manifest/init.pp::
class nagios-nrpe {
case $operatingsystem {
"freebsd": {
$nrpeservice (nagios, nrpe, puppet, recipe)
- Recipes/OpenNTPD OpenNTPD Recipe (NTP, openntpd, puppet, recipe)
- Recipes/PasswordManagement Password Management (password, passwords, puppet, recipe)
- Recipes/Pkgsync Pkgsync (pkgsync, puppet, recipe)
- Recipes/RailsMongrelApacheProxybalancer Rails stack recipe (apache, mongrel, puppet, rails, recipe)
- Recipes/RdiffBackup rdiff-backup recipe (puppet, rdiff-backup, recipe)
- Recipes/ResolvConf resolv.conf recipe (network, puppet, recipe, resolv.conf)
- Recipes/ShowNodeObjects This script accepts a host name and produces a list of objects in manifest syntax associated with that host. It is meant to be run on the puppetmaster host. By default only the 'hostname' fact is supplied but other facts can be specified by using the '--fact` option (multiple times if needed). If the argument to '--fact' does not contain a ' (node, nodes, puppet, recipe)
- Recipes/SimpleText Simple Text edits (puppet, recipe, text)
- Recipes/Solaris_cde-login Solaris CDE login recipe (CDE, login, puppet, recipe, solaris)
- Recipes/SubversionIntegration I have published my code for creating and checking out Subversion repositories as a module_. It's pretty easy to use::
import 'subversion/svnrepo'
# Creates the repository at /var/lib/svn/puppet
svnrepo { puppet: path (puppet, recipe, subversion)
- Recipes/SubversionWorkingCopy Manage a Subversion Working Copy (puppet, recipe, subversion)
- Recipes/Sudo Improved sudo recipe (puppet, recipe, sudo, sudoers)
- Recipes/TemplateValidationFunction args[0]
checkscript (puppet, recipe, template, validation)
- Recipes/Timezone Timezone Recipe (puppet, recipe, timezone)
- Recipes/TracIntegration I have been managing my trac_ installations with Puppet for a long time, and I've recently converted my code to a module_. Here's how I use it at my site::
import 'trac'
Trac {
alt (puppet, recipe, trac)
- Recipes/UpdateFromSubversionRepo This is a script/daemon that updates a set of puppetmaster directories(manifests,files,etc) from a subversion repository, and will push those updates to additional puppetmasters via rsync+ssh.
It expects the subversion repository to setup in a trunk/tag format(though that's not necessary here, it's just the way that I use it). For instance::
/puppet
/puppet/trunk
/puppet/trunk/files
/puppet/trunk/manifests
....
/puppet/tags
/puppet/tags/prod-YYYYMMDDHHmmss
For the script below to work, /puppet-dev and /puppet-prod must have an initial check done ahead of time.
It'll do a "lite" query every 5 seconds, and perform updates if it detects something.
This script is most useful if you can't trigger an update via a commit hook.
puprepod
---------
::
#!/usr/bin/env ruby
CHECKFREQ (puppet, recipe, repo, subversion)
- Recipes/UserAndHomedirRecipe Adding a User and their Home directory (homedir, puppet, recipe, user)
- Recipes/VMWareGuest VMware (facter, puppet, recipe, vmware)
- Recipes/Vim VIM recipe (debian, puppet, recipe, vim)
- Recipes/VirtualMachine Virtual Machine Fact (puppet, recipe, virtual, vmware)
- Recipes/WorkstationInheritance Workstation Inheritance Recipe (inheritance, puppet, recipe, workstation)
- Recipes/YumServerBuild Yum Server Build Recipe (puppet, recipe, repo, repos, yum)
- Recipes/ZabbixAgent Zabbix Agent recipe (puppet, recipe, zabbix)
- Recipes/syslog-ng syslog-ng recipe (puppet, recipe, syslog-ng)
- Recipes:Logrotate? (logrotate, puppet, recipe, recipes)
- SimplestPuppetInstallRecipe Using Puppet is largely about developing the Puppet manifests, which describe the configuration of your system.
Once you have Puppet installed (see Installation Guide_ ) on at least one server (the Puppetmaster), and at least one client, you're ready to set up a minimal configuration and get started using Puppet.
A Simple Manifest: Managing Ownership of a File (certificates, certs, configuration, puppet, puppetmaster, recipe, ssl, sudo, tutorial)
- UsingMongrelOnDebian This is a complete step-by-step configuration for using Mongrel instead of Webrick on Debian Etch. It uses the Debian Apache2 recipe_ and creates a stand-alone apache server on port 8140 for puppetmaster.
You need:
1. The mongrel and libdaemons-ruby1.8 packages from etch-backports_
2. A stand-alone apache2 configuration for puppetmaster only: Apache Configuration_
3. An init script for stand-alone apache: Apache init script_
4. A puppetmaster init script, which starts 10 mongrel processes: Puppetmasterd init script_
5. And finally, a module called puppet to tie this all together. The module's init.pp file is listed below::
class puppetmaster inherits apache2 {
$certname (debian, http, mongrel, puppet, puppetmasterd, recipe, server)
- VersionControlPuppet Keep your Puppet manifests under version control (puppet, recipe, subversion, svn)
Recipes for configuring Facter
- AddingFacts Adding Custom Facts to Facter (custom, extend, extending, fact, facter, facts, module, plugins, recipe)
- Recipes/AmazonEC2 Amazon EC2 Facter Recipe (Amazon, EC2, facter, recipe, recipes)
- Recipes/AqueosFacterVps Add some facts about Verio VPS (VPS, aqueos, facter, recipe)
- Recipes/DRBDFacts DRBD cluster facts (DRDB, facter, recipe)
- Recipes/HomeFact Expose the location of your home directory (facter, home, recipe)
- Recipes/HostgroupFact Identify a node's group by its short hostname (facter, recipe)
- Recipes/NetworksFactsRecipe Output (facter, linux, network, recipe)
- Recipes/PythonVersion Python Version Fact (facter, python, recipe, version)
- Recipes/RaidFact Exporting RAID controller information (facter, raid, recipe)
- Recipes/SuSE_Version Get the SuSE Version (SUSE, facter, recipe, sles)
- Recipes/VMWareGuest VMware (facter, puppet, recipe, vmware)
- Recipes/dmidecode { 'BIOS Information' (dmi, facter, recipe)
Download in other formats: