一、Puppet简介

Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理Puppet适用于服务器管的整个过程,比如初始安装、配置更新以及系统下线,puppet是一种Linux、Unix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因此,也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个puppet 客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.

二、Puppet的安装

Puppet的安装方式支持源码安装、yum安装以及rubygem安装。官网推荐使用yum来安装puppet,方面以后的升级、管理、维护。Centos可以采用yum来安装,但是Centos的默认源中没有puppet包,因此需要先安装epel包。Epel是企业版Linux附加软件包(Extra Packages for Enterprise Linux)的缩写,是一个由特别兴趣小组创建、维护并管理的,针对红帽企业版Linux(RHEL)及其衍生发行版(比如CentOSScientific Linux)的一个高质量附加软件包项目。


1.Master的安装

yum -y install ruby ruby-libsruby-shadow

wgetftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

rpm -Uvh epel-release-5-3.noarch.rpm

yum -y install puppet puppet-serverfacter

2.Agent的安装

yum install ruby ruby-libs ruby-shadow

wgetftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

rpm -Uvh epel-release-5-3.noarch.rpm

yum -y install puppet facter

三、Puppet的简单配置

1.Master的配置

先来看看puppet主目录下都有什么文件已经每个文件是做什么用的:

ls -1 /etc/puppet/

auth.conf#定义puppet master的acl文件

fileserver.conf#定义puppet master文件服务器的配置文件

manifests #puppet脚本主文件目录,site.pp文件必须存在

modules#puppet模块目录

puppet.conf#puppet主配置文件

ssl#存放ssl证书的目录

刚开始的话,puppet.conf不需要配置就可以满足。

需要更改hosts文件,注意hosts要和主机名对应。

vim /etc/hosts添加如下内容:

172.168.10.11 puppet.dingmh.com

172.168.10.12 client.dingmh.com


大家要根据实际情况加,我这里是一个master,两个agent。

2.Agent的配置

Agent的配置主要是更改agent上的/etc/puppet/puppet.conf文件的[agent]部分。

在agent上vim /etc/puppet/puppet.conf 添加如下配置


server = puppet.dingmh.com #master服务器的地址

runinterval = 3600 #每隔多久的时间进行自动更新,时间单位为秒

listen =true #客户端作为一个服务进行监听,允许其它的机器触发puppet运行允许远程触发puppet的节点配置

四、puppet的启动和停止

1.Master的启动和停止

Master的启动

/etc/rc.d/init.d/puppetmaster start

也可以以采用 service puppetmaster start启动

第一次启动建议采用puppet master --verbose --no-daemonize方式启动,有助于测试和调试错误,如果采用后面这种方式,你可以看到启动的整个过程,启动过程会做一些初始化的工作,为master创建本地证书认证中心,证书和key。并打开socket等待client的连接。你可以在/etc/puppet/ssl目录看到相关的文件和目录。

Master的停止

/etc/rc.d/init.d/puppetmaster stop

也可以以采用 service puppetmaster stop停止

更改多选项可以使用/etc/rc.d/init.d/puppetmaster –h查看

2.Agent的启动和停止

Agent的启动

/etc/rc.d/init.d/puppet start

也可以采用service puppet start来启动

调试的时候可以采用

puppet agent --server=puppet.dingmh.com --no-daemonize –verbose

的方式来启动,这样启动我们可以看到agent是如何和master建立连接的。

Agent的停止

/etc/rc.d/init.d/puppet stop

也可以采用service puppet stop来停止。