一、配置Puppetmaster
在第一部分中我們在centos 5.6 64bit安裝puppetmaster 和puppetd 軟件包,現在我們配置一個基於c/s 模型,在服務端將/etc/resolv.conf 自動分發到 客戶端
1.1創建你的第一個模型
我們的第一個模型叫networking::resolver, 它將推送一個 resolv.conf 到客戶端
在/etc/puppet 創建我們的目錄體系
- # cd /etc/puppet
- # mkdir {modules,files}
- # mkdir modules/networking/{files,mainfests}
1.2創建 resolv.conf
# vim modules/networking/files/resolv.conf
- nameserver 202.106.0.20
- nameserver 202.102.128.68
創建你的 mainfest模型
# vim modules/networking/manifests/init.pp
- class networking {
- }
- class networking::resolver inherits networking {
- file { "/etc/resolv.conf":
- ensure => present,
- source => "puppet:///modules/networking/resolv.conf",
- group => "root",
- owner => "root",
- mode => "0755"
- }
- }
1.3 配置你的站點 和節點
創建一個 最小化的站點文件
# vi manifests/site.pp
- import "nodes"
- import "templates"
- filebucket { main: server => puppet }
- Create a tempates file
- # vi manifests/templates.pp
- class baseclass {
- include networking::resolver
- }
- node default {
- include baseclass
- }
1.4 創建你的節點文件
不要忘了在將puppetmaser替換爲你自己的主機名
# vi manifests/nodes.pp
- node 'basenode' {
- include baseclass
- }
- node 'puppetmaster' inherits basenode {
- }
二、設置puppetmaster 屬性
2.1 創建默認配置文件(yum安裝後,就有了下面的配置文檔)
# vi puppet.conf
- [main]
- # The Puppet log directory.
- # The default value is '$vardir/log'.
- logdir = /var/log/puppet
- # Where Puppet PID files are kept.
- # The default value is '$vardir/run'.
- rundir = /var/run/puppet
- # Where SSL certificates are kept.
- # The default value is '$confdir/ssl'.
- ssldir = $vardir/ssl
- [agent]
- # The file in which puppetd stores a list of the classes
- # associated with the retrieved configuratiion. Can be loaded in
- # the separate ``puppet`` executable using the ``--loadclasses``
- # option.
- # The default value is '$confdir/classes.txt'.
- classfile = $vardir/classes.txt
- # Where puppetd caches the local configuration. An
- # extension indicating the cache format is added automatically.
- # The default value is '$confdir/localconfig'.
- localconfig = $vardir/localconfig
- report = true
- [master]
- autosign = true
2.2 爲你的文件服務器設置權限
# vi fileserver.conf
- [files]
- path /etc/puppet/files
- allow *
- [modules]
- allow *
- [plugins]
- allow *
2.3 啓動puppetmaster
# service puppetmaster start
- Starting puppetmaster: [ OK ]
三。配置puppet 客戶端
在客戶端服務器上,編輯你的puppet.conf,在[agen]部分添加下列內容,注意將puppetmaster 替換你的主機名
# vi /etc/puppet/puppet.conf
- [agent]
- server = puppetmaster
- report = true
- listen = true
四、設置 puppetrunner
創建一個叫namspaceauth.conf 文件,並添加下列的內容。
# vi /etc/puppet/namespaceauth.conf
- [puppetrunner]
- allow *
4.1 啓動 puppetd
# service puppet start
五、測試puppet客戶端和服務端是否正常通信
- # puppetd --server puppetmaster --test
- --- /etc/resolv.conf 2011-09-08 20:14:03.000000000 +0800
- +++ /tmp/puppet-file.30611.0 2011-09-09 17:49:26.000000000 +0800
- @@ -1,2 +1 @@
- nameserver 202.106.0.20
- -nameserver 202.106.196.115
- info: FileBucket adding {md5}d7ee49734e75e85345c70a702c69332c
- info: /Stage[main]/Networking::Resolver/File[/etc/resolv.conf]: Filebucketed /etc/resolv.conf to puppet with sum d7ee49734e75e85345c70a702c69332c
- notice: /Stage[main]/Networking::Resolver/File[/etc/resolv.conf]/content: content changed '{md5}d7ee49734e75e85345c70a702c69332c' to '{md5}45c56312b1256329a125ee86b1a68dd1'
- notice: Finished catalog run in 0.18 seconds
下一節,將講解puppet dashboard的安裝配置。