CentOS Puppet 教程
Puppet是一种Linux、Unix、Windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、Cron任务、软件包、系统服务等,Puppet把这些系统实体称之为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系,Puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互,每个客户端周期地(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。
前期准备
在开始之前,需要准备两台CentOS7虚拟机,一台用作server端,一台用作agent端,确保IP地址和hostname严格匹配FQDN格式,并同步时间,关闭防火墙和selinux,配置ip地址和hostname映射。
安装与配置
1. puppetmaster安装
下载官方rpm包,并配置yum源:
wget https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabsrelease710.noarch.rpm rpm ivh puppetlabsrelease710.noarch.rpm yum y update
安装puppetserver:
yum install puppetserver puppet y
启动服务:
systemctl start puppetmaster systemctl start puppet
查看启动情况:
netstat tnlp |grep 8140
修改配置文件:
vi /etc/puppet/puppet.conf certname=puppetmaster.jun.cc #定义自己签名认证的名称,即自己的主机名
2. puppetagent安装
安装puppet:
yum install puppet y
修改配置文件:
vi /etc/puppet/puppet.conf certname=puppetagent.jun.cc #定义自己签名认证的名称,即自己的主机名 server=puppetmaster.jun.cc #指定puppetmaster runinterval=60 #定义agent多长时间主动从master拉取一次资源
启动服务:
systemctl start puppet
3. 实现master和agent的认证连接
agent端尝试发送注册申请:
puppet agent t
master端进行认证连接:
puppet cert list
签发认证:
puppet cert sign all
agent再次发送注册申请:
puppet agent t
生成证书在:
/var/lib/puppet/ssl
应用案例
文件资源案例
1、创建文件:
编辑配置文件:
vi /etc/puppet/manifests/site.pp
node 'puppetagent.jun.cc'{ file{'aaa': path => "/tmp/puppet.txt", content => "Hello puppet agent"; } }
agent端手动拉取资源:
puppet agent t
查看执行情况:
cat /tmp/puppet.txt
输出应为“Hello puppet agent”。
2、复制本地配置文件:
编辑部署文件:
vi /etc/puppet/manifests/site.pp
node 'puppetagent.jun.cc'{ file{'conf': path => "/tmp/httpd.conf", mode => "644", owner => "root", group => "root", source => "puppet://puppetmaster.jun.cc/files/httpd.conf", } }
修改配置文件:
vi /etc/puppet/fileserver.conf
[files] path /etc/puppet/files/ allow
查看执行情况:
ls /tmp/
输出应包含httpd.conf文件。
常见问题解答(FAQs)
Q1: Puppet是什么?A1: Puppet是一种Linux、Unix、Windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等,Puppet把这些系统实体称之为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
Q2: 如何在CentOS上安装Puppet?A2: 下载官方rpm包,并配置yum源,安装puppetserver和puppet,修改配置文件,启动服务,并进行master和agent的认证连接。