一:介绍
puppet用于集中管理多台服务器的file、package、server、cron、user、group、exec(执行shell命令)、yumrepo等常用资源的C/S结构软件
二:puppet工作流程
- puppet客户端通过facter收集客户端信息(主机名、内存、IP地址、系统信息……)并发送给服务端
- 服务器端检测到客户端的主机名,然后到manifest里面解析对应的node配置(语法检测、生成伪代码、发送伪代码给客户端),只解析改节点的配置
- 客户端接收到代码后执行,然后客户端把执行结果传递给服务器端
- 服务器再把客户端的执行结果写入日志
三:安装配置
puppet server:192.168.1.10 master.puppet.com
puppet agent:192.168.1.11 agent.puppet.com
主机名和IP必须解析,可以手动修改hosts文件或使用DNS解析
- 配置epel源:
rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
- puppet server上操作:
yum install puppet-server -y
生成配置文件:
puppet master --genconfig > /etc/puppet/puppet.conf
touch /etc/puppet/manifests/site.pp
该文件相当于一个索引文件,记录载入agent配置,也可定义全局变量
例:
cat /etc/puppet/manifests/site.pp
import ‘nodes.pp‘
import ‘nodes/*.pp‘
$puppetserver=‘master.puppet.com‘
- puppet agent上操作:
yum install puppet -y
vim /etc/puppet/puppet.conf
在main中添加
server = master.puppet.com(master主机名,必须可以ping通,绑hosts或dns解析)
在agent中添加
runinterval = 10(向master查询间隔时间,单位秒)
四:测试
puppet server第一次启动:
puppet master --verbose --no-daemonize
puppet agent第一次启动:
puppet agent --server=master.puppet.com --no-daemonize --verbose --noop --onetime
会报错没有认证,在CA服务器上运行(这里CA和puppet server在一台上):
puppet cert --list 显示没有授权的客户端
puppet cert --sign agent.puppet.com
再次运行启动命令正常,则分别开启服务
/etc/init.d/puppetmaster start
chkconfig puppetmaster on
/etc/init.d/puppet start
chkconfig puppet on