一.安装前装备
1.puppet是基于ruby开发。所以要安装ruby语言环境,在我们的默认安装中并未安装。所以需要安装ruby语言环境。
找到相应版本对应的ruby的rpm包(下以redhat 5.4为例)
rpm –ivh ruby-libs-1.8.5-5.el5_2.3.i386.rpm
rpm –ivh ruby-1.8.5-5.el5_2.3.i386.rpm
2.Rdoc的安装。
如果需要查看帮助文档。需要安装此包。有一点特殊说明,此包在AS4上未找到相关的rpm。所以建议服务端使用5.3或者5.4的版本。部分客户端为AS4的版本无相应的rpm包,不会影响其使用。
rpm –ivh ruby-irb-1.8.5-5.el5_2.3.i386.rpm
rpm –ivh ruby-rdoc-1.8.5-5.el5_2.3.i386.rpm
至此,安装前的准备已完成
二.puppet的安装
1.下载相应的facter包进行安装
此包是puppet的依赖包
wget
tar xzvf facter-latest.tgz
cd facter-*
sudo ruby install.rb
2.安装puppet
wget
tar xzvf puppet-latest.tgz
cd puppet-*
sudo ruby install.rb
3.添加puppet用户和组
puppetmasterd –mkusers
客户端与server端的安装是相同的。只是在启用的时候分别使用不同的命令。
至此安装安装
三.后继工作
在安装完成之后,客户端执行
sudo /usr/sbin/puppetd –server puppet –verbose –waitforcert 60
服务端执行
puppetmasterd –verbose –no-daemonize
查询未验证的client端
puppetca –list
puppetca –sign 机器名(此处的机器名为 puppetca –list中列出的机器名)
如果想要全部认证,可以使用
puppetca –sign all
至此,所用的安装已完成。
puppet记录
1. 修改文件属性的site.pp
file { “/home/1.txt”:
owner => “root”,
group => “root”,
mode => 644,
}
2.执行shell命令
exec { “echo111″:
cwd => “/tmp”,
command => ” echo abcd >> /home/1.txt”,
user => “root”,
path => “/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin”,
}
3.文件传输
需要有fileserver.conf例如
[abc]
path /etc/puppet/files/
allow *
其中 site.pp的设置如下
file { “/home/test.txt”:
source => “puppet://puppet/abc/test.txt”,
}
此处的abc为fileserver.conf中定义模块
其前面的蓝色部分是puppet server端的名称(在hosts中解析,未使用DNS)
4.服务检查及修改
可以通过puppet对一些服务进行检查。puppet是通过service命令操作的。所以,只能针对在/etc/init.d/目录下的服务
site.pp的配置示例
service { portmap:
ensure => “stopped”,
}
ensure 还有一个参数是 running 如果服务停止,puppet会让服务启动。
puppet.conf
[puppetmasterd]
reports = store
hostprivkey = /etc/puppet/ssl/private_keys/sh-zj1.tele.trac.i.vmx.cn.pem
hostcsr = /etc/puppet/ssl/csr_sh-zj1.tele.trac.i.vmx.cn.pem
hostpubkey = /etc/puppet/ssl/public_keys/sh-zj1.tele.trac.i.vmx.cn.pem
hostcert = /etc/puppet/ssl/certs/sh-zj1.tele.trac.i.vmx.cn.pem
autosign = true
5.cron
cron { “test1″: #title部分,可用来作为注释。
ensure => absent, #删除相应的crontab
command => “( /bin/echo 123 >/home/lipengfei/abc )”, #要执行的命令
user => “root”, #添加到root用户下的crontab中
minute => “*/3″, #即第一个星号
hour => ['2-4'], #即第二个星号
monthday => “21″, #即第三个星号
month => “12″, #即第四个星号
weekday => “2″, #即第五个星号
}
说明:absent 选项可以支持 cron中的5个时间位置,如:monthday => absent,
即把 monthday 对应该的位置至为 *
阅读(797) | 评论(0) | 转发(0) |