Chinaunix首页 | 论坛 | 博客
  • 博客访问: 126741
  • 博文数量: 20
  • 博客积分: 536
  • 博客等级: 中士
  • 技术积分: 295
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-14 11:04
文章分类
文章存档

2013年(4)

2012年(16)

我的朋友

分类: 系统运维

2012-05-09 15:09:12

一.安装前装备
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) |
给主人留下些什么吧!~~