|
一 puppet简介
puppet是一种Linux、Unix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.
二 puppet安装测试环境介绍
虚拟机vmware 系统centos5.5
服务器端 192.168.2.113 centos113.sdj
客户端 192.168.2.114 centos114.sdj
安装puppet前的准备
在服务端和客户端都执行以下命令
添加puppet用户 # groupadd puppet
# useradd -g puppet -s /bin/false -M puppet
修改Host文件;# echo "192.168.2.113 centos113.sdj">> /etc/hosts
# echo "192.168.2.114 centos114.sdj">> /etc/hosts
安装ruby #yum -y install ruby
安装Facter 是用来搜集当前安装系统的环境变量信息的
# wget http://projects.puppetlabs.com/attachments/download/1101/facter-1.5.8.tar.gz
# tar xf facter-1.5.8.tar.gz && cd facter-1.5.8/
# ruby install.rb && cd ~
# facter 执行这个命令就可以看到facter获取到的变量名和内容
现在开始安装puppet
# wget http://projects.puppetlabs.com/attachments/download/1114/puppet-2.6.1.tar.gz
# tar xzf puppet-2.6.1.tar.gz && cd puppet-2.6.1
# ruby install.rb
# mkdir -p /etc/puppet &&cp conf/redhat/* /etc/puppet/ && cd ~
验证安装成功
# puppet master
# ps -ef|grep puppet |grep -v grep
puppet 3247 1 0 23:02 ? 00:00:00 /usr/bin/ruby /usr/bin/puppet master
# kill 1871
---------------------------------
接下来配置服务器端
将puppetmasterd设置为服务,并自启动
# cp /etc/puppet/server.init /etc/init.d/puppetmasterd
# chmod 755 /etc/init.d/puppetmasterd
# chkconfig --add puppetmasterd
# chkconfig --level 35 puppetmasterd on
启动服务 #service puppetmasterd start
查看是否打开8140端口 # netstat -tnl
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN
防火墙和端口设定。puppet服务器端默认使用8140端口监听服务,需要在iptables上开启该端口。
iptables -A INPUT -p tcp --dport 8140 -j ACCEPT
请在/etc/sysconfig/iptables 中加入上文的规则,并重启iptables。
审批证书
客户端申请证书
在客户端centos114执行 # puppetd --test --server centos113.sdj
warning: peer certificate won't be verified in this SSL session
info: Caching certificate for ca
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
info: Creating a new SSL certificate request for centos114.sdj
info: Certificate Request fingerprint (md5): C5:5A:5E:A9:04:44:CF:A7:F3:46:14:6A:C7:C1:24:C8
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
Exiting; no certificate found and waitforcert is disabled
出现上述类似信息说明成功
服务器接受申请
在服务器端centos113执行 # puppetca --list
centos114.sdj
批准当前证书 # puppetca -s centos114.sdj
notice: Signed certificate request for centos114.sdj
notice: Removing file Puppet::SSL::CertificateRequest centos114.sdj at '/var/lib/puppet/ssl/ca/requests/centos114.sdj.pem'
客户端取回已经通过审批的证书
客户端执行 # puppetd --test --server centos113.sdj
重新审批旧机器的新证书。
当申请到证书以后我们对比下这两个文件,他们的MD5值是一样的
服务器端[iyunv@centos113.sdj ~]# md5sum /var/lib/puppet/ssl/ca/signed/centos114.sdj.pem
客户端 [iyunv@centos114.sdj ~]# md5sum /var/lib/puppet/ssl/certs/centos114.sdj.pem
功能测试
在服务器端新建一个/etc/puppet/manifests/site.pp文件,大意是在/tmp下创建caotest.txt测试文件。
[iyunv@centos113.sdj ~]# vi /etc/puppet/manifests/site.pp
node default {
file {"/tmp/caotest.txt": #这是文件路径名,后面是冒号
content=>"I'm Caotest PUPPET"; } #这是文件的内容 后面是分号
} #初次创建这个文件需要重启服务
# service puppetmasterd restart
在客户端执行命令
# puppetd --test --server centos113.sdj
# ls -l /tmp 查看/tmp目录下是否有caotest.txt文件如果有说明测试成功
客户端设置守护进程
# puppetd --server caotest-1.cym --verbose --waitforcert 60
# --server 告诉它master结点的ip,--waitforcert是说每60秒去server检查,--verbose是可选的输出冗余信息
参考 http://bbs.linuxtone.org/forum-viewthread-tid-8480-fromuid-1049.html
|
|
|