最近在研究自动化运维工具,发现网上关于Puppet的文章都太老了参考意义不太大。官方已经更新到Puppet4.X,不少东西都变了,配置文件也有变化,遂写下此学习笔记,供分享学习。

一、介绍
Puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
Puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置客户端。配置完成以后,puppet客户端可以反馈给服务器端一个消息。 如果出错,也会给服务器端反馈一个消息。

二、安装前的准备
Puppet通常采用agent/master(client/server)架构运行,当然他也可以在独立的架构下运行。
另外,还可以使用PuppetDB来提供额外的Puppet功能并易于分析Puppet的数据。
master节点可以运行在各类类Unix系统之上,但是windows机器只能作为agent节点。

检查网络配置
a、防火墙:Puppet的master节点必须允许来自8140端口的连接,agent节点通过这个端口来连接master节点。在master节点上执行以下命令开放8140端口。
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT
b、域名解析:每一个节点必须拥有唯一的主机名。DNS必须设置正确。如果没有DNS,则必须为每个节点配置好/etc/hosts文件。
注:Puppet的master节点默认主机名是puppet。你的agent节点



检查时间设置
Puppet的master节点的时间必须设置准确,因为他将用于证书签发。必须尽可能的使用NTP。
(时间错误,将有可能错误地签发到齐的agent节点证书,导致故障。)


三、安装Puppet
1、安装Puppet Server
注: Puppet Server 2.2 依赖于Puppet Agent 1.3.0或者更新版本。 
a、系统要求:Puppet Server默认需要2G内存。如果仅仅只是在虚机上安装测试,可以将内存调到512M这么小。
b、内存配置:
/etc/sysconfig/puppetserver — RHEL
打开初始配置文件,
 # Modify this if you'd like to change the memory allocation, enable JMX, etc
 JAVA_ARGS="-Xms2g -Xmx2g"
替换2G为想要分配给Puppet Server的内存大小。比如,如果分配1G内存,use JAVA_ARGS="-Xms1g -Xmx1g"; 如果分配512M,则为“JAVA_ARGS="-Xms512m -Xmx512m"。
更多的设置可以参考Oracle关于JVM调试的文档
修改完配置文件后,重启puppetserver以生效。

快速开始:
a、配置好puppet labs软件源,sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
b、停止已经存在的Puppet Server服务。
c、执行# yum install puppetserver来安装Puppet Server包

d、执行# systemctl start puppetserver启动Puppet Server。查看端口和运行状态,已经在运行了。



2、安装PuppetDB(Peppet4不用再单独安装了)

3、安装Puppet Agent
a、确保puppet labs软件源配置好
b、在agent节点上安装Puppet Agent包,执行#sudo yum install puppet-agent.
c、配置关键的agent设置
你要在Server节点设置你的Puppet master主机名。默认为server=puppet,如果你的master可被访问,则可以跳过此步骤。

四、Puppet agent首次运行配置

在每个Puppet agent节点,执行#puppet agent -t.


每个Puppet agent节点第一次运行时,它会向证书中心(CA)所在的Puppet master节点发送证书认证请求(CSR)。你必须在Server节点上检查签发证书。
在Puppet Master节点上,执行命令#puppet cert list来查看来查看所有待处理的请求。这时在/etc/puppetlabs/puppet/ssl/ca/requests目录下,会产生相应的证书请求文件。


执行#puppet cert sign <agent名称>来签发Puppet agents的证书。这时,/etc/puppetlabs/puppet/ssl/ca/signed目录下,就多了一个agent的证书文件client1.localdomain.pem。


Agent节点的证书被签发之后,就可以接入和应用来自Puppet Master节点的配置目录。


至此,你的Puppet已经配置好,可以使用了!


Logo

更多推荐