引言
Puppet 是一种 Linux、Unix、Windows 平台的集中配置管理系统,使用 Puppet 自带的描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。Puppet把这些系统实体称之为资源,其设计目标是简化对这些资源的管理以及妥善处理资源之间的依赖关系。
puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置客户端. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息。
安装 puppet
192.168.1.1 puppetserver # puppet 服务端
192.168.1.2 agent.1.client # puppet 客户端 1
服务端
yum install puppet-server
修改配置文件
vim /etc/puppet/puppet.conf
##############################################################
[main]
certname = puppetserverssldir = /var/puppet/ssl #证书位置
##############################################################
修改 hosts 文件:
vim /etc/hosts
##############################################################
192.168.1.1 puppetserver
192.168.1.2 agent.1.client
##############################################################
启动 puppet 服务
systemctl start puppetmaster.service
或者
puppet master --verbose --no-daemonize
客户端
yum install puppet
修改配置文件
vim /etc/puppet/puppet.conf
##############################################################
[main]
ssldir = /var/puppet/ssl
[agent]
certname = agent.a1.client
server = puppetserver report = true##############################################################
修改 hosts 文件:
vim /etc/hosts
##############################################################
192.168.1.1 puppetserver
192.168.1.2 agent.1.client
##############################################################
启动 puppet 服务
systemctl start puppet.service
或者
puppet agent --server=puppetserver --verbose --no-daemonize --debug
默认puppet每2分钟向服务器端申请一次签名,直到获得服务器端发来的经过签名的证书才 start agent 服务。也可以通过--waitforcert=time 来设置等待时间,如果time为0 则不等待;
服务端:
查看客户端的签名申请: puppet cert --list
PS:"agent.a1.clent" 前面有加号就代表申请成功;
给客户端签名:puppet cert --sign agent.1.client
清除用户证书:puppet cert --clean agent.1.client (客户端端要同时删除证书:rm -rf /var/puppet/ssl/agent.1.client)
防火墙配置
setenforce 0
iptables -A INPUT -p tcp -m state --state NEW -s 192.168.1.0/24 --dport 8140 -j ACCEPT
或者
firewall-cmd --add-port=8140/tcp
定义清单
清单文件/etc/puppet/manifests/site.pp
yum 安装默认是没有这个文件的,服务端启动时需要手动创建一个,不然可能会无法启动(未测过,可能新版本优化过);
也可以在配置文件中自定义:
vardir =
/opt/puppetlabs/server/data/puppetserver
logdir =
/var/log/puppetlabs/puppetserver
rundir =
/var/run/puppetlabs/puppetserver
pidfile =
/var/run/puppetlabs/puppetserver/puppetserver
.pid
codedir =
/etc/puppetlabs/code