Distributed configuration management with puppet on CentOS5
Jump to navigation
Jump to search
Contents
1 description
with centralized configuration management, its easy to manage a huge amount of nodes.
my prefered tool for this task is puppet, lets se how to getting started.
tested on CentOS5
2 install and configure puppet server
node name: pmaster.domain.com
install needed software
yum install puppet puppet-server facter
creating needed directories
mkdir -p /etc/puppet/modules/sudo/manifests mkdir -p /etc/puppet/modules/sudo/files
create config for our sudo module
vi /etc/puppet/modules/sudo/manifests/init.pp
---
class sudo {
package { sudo: ensure => latest }
file { "/etc/sudoers":
owner => root,
group => root,
mode => 440,
source => "puppet:///sudo/sudoers",
require => Package["sudo"],
}
}
copy sudoers template to getting started with
cp /etc/sudoers /etc/puppet/modules/sudo/files/sudoers
importing modules
vi /etc/puppet/manifests/modules.pp --- import "sudo" ---
create node configuration file, for deploying config to
vi /etc/puppet/manifests/nodes.pp
---
node basenode {
include sudo
}
node 'pclient.domain.com' inherits basenode {
}
create master configuration file
vi /etc/puppet/manifests/site.pp
---
import "modules"
import "nodes"
# The filebucket option allows for file backups to the server
filebucket { main: server => 'pmaster.domain.com' }
# Set global defaults - including backing up all files to the main filebucket and adds a global path
File { backup => main }
Exec { path => "/usr/bin:/usr/sbin/:/bin:/sbin" }
3 install and configure the puppet client
node name: pclient.comain.com
install nedded software
yum install puppet facter
set the puppet master
vi /etc/sysconfig/puppet --- PUPPET_SERVER=pmaster.domain.com ---
4 register the client on the puppet master
do all of this tasks within 3 minutes
node: pclient
/etc/init.d/puppet restart
node: pmaster
puppetca --list puppetca --sign pclient.comain.com
now, they are paired and can be used for configuration management
here some useful links: