puppet简介

puppet是一种基于ruby语言开发的Lnux、Unix、windows平台的集中配置管理系统。它使用自有的puppet描述语言,可管理配置文件file、用户user、cron任务、软件包、系统服务等系统实体。

puppet把这些系统实体称之为资源,puppet设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

puppet依赖于C/S(客户端/服务器)的部署架构。它需要在puppet服务器上安装puppet-server软件包(以下简称master),在需要管理的目标主机上安装puppet客户端软件(以下简称agent)。

当agent连接上master后,定义在master端的配置文件会被编译,然后在agent上运行。每个agent默认30分钟会连接一次master,确认配置信息的更新情况。但是这种方式在很多场景下不是很符合系统管理员的要求,所以很多系统管理员也会将agent通过crontab(任务计划)来管理,这样会更加灵活一些。

二、puppet优点

puppet的语法允许你创建一个单独的脚本,用来在你所有的目标主机上建立一个用户。所有的目标主机会依次使用适合本地系统的语法来解释和执行这个模块。如果这个配置是在Red Hat服务器上执行的话,建立用户使用useradd命令,如果这个配置是在FreddBSD服务器上执行的话,则使用adduser命令。

puppet另外一个卓越的地方就是它的灵活性。源于开源软件的天性,你可以自由地获得puppet的源代码。如果你遇到问题并且有能力处理的话,你可以修改或加强puppet的代码使其适用于你的环境,然后解决这个问题。

三、puppet安装部署前准备工作。


主机时间同步

为了减少在实验过程中不必要的麻烦,我们需要对所有主机(包括服务器和客户端)进行时间同步。即服务器与客户端的时间相差不能超过秒级。

    执行更新时间的命令:/sbin/ntpdate asia.pool.ntp.org

wKioL1e1NvmwFOgGAAALuThkLkY556.png-wh_50

  修改主机名

因为安装 puppet 时会把主机名写入证书,同时客户端和服务端之间通信需要这个证书。所以需要修改服务器与客户端的主机名。


要是主机名永久生效的话,需要修改/etc/sysconfig/network文件。如下:

cat /etc/sysconfig/network

      wKioL1e1N5uh2TJEAAAeBGSHzV8326.png-wh_50


本次实验,我们就不搭建DNS服务器,直接通过修改服务端与客户端的hosts文件来达到各自解析域名的目的。如下:

cat /etc/hosts

192.168.199.247 s.ilanni.com

192.168.199.248 c.ilanni.com

 关闭iptables和selinux


环境准备

puppet的安装可以分为源码安装和RPM安装,但是无论哪一种安装方法,我们都需要在安装之前对其进行几点需要说明。

4.1 puppet安装说明

1、由于puppet是采用ruby语言开发,所以无论是源码还是RPM方式安装puppet,我们都必须要先安装ruby语言环境

2、puppet从2.7版本以后,就需要hiera的支持。所以也必须安装hiera。

3、在前面章节中,我们说明了puppet是一个配置管理系统,而管理的资源,都是系统的实体。但是这些实体,是如何来的呢?这就需要我们安装另外一个资源收集软件—facter。

facter主要用来收集主机的一些信息,比如:CPU、主机IP等。facter把这些收集的信息发送给puppet服务器端,服务器端就可以根据不同的条件来对不同的节点机器生成不同的puppet配置文件。

facter也是ruby语言开发的


安装ruby

ruby的安装比较简单,我们在此使用是yum进行安装。如下:

yum -y install ruby

我们可以查看ruby的帮助信息,如下:

ruby -h

ruby安装完毕后,我们来查看其生成的文件。如下:

rpm -ql ruby

除此之外,我们还要安装ruby-rdoc这个软件包。该软件包主要用于查看ruby的帮助文档。如下:

yum -y install ruby-rdoc


 安装facter

facter我们可以从puppet官网下载,如下:

http://downloads.puppetlabs.com/facter/

建议yum安装 yum  install facter

安装完成后,

我们在执行facter命令后,会显示facter收集的相关信息。如下:

facter

wKioL1e1Of2gVbygAABjF7xPI1I259.png-wh_50

安装hiera

hiera主要用于控制一些agent经常变化的数值,在puppet2.7以后的版本必须要安装。如果不安装的话,我们在安装puppet时,系统会提示如下错误:

Could not load hiera; cannot install

yum  install hiera


但是在安装hiera之前,我们必须安装额外的yum源,否则系统会提示找不到该软件包。

该yum源,我们可以puppet官网查看到。如下:

https://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html#for-red-hat-enterprise-linux-and-derivatives

clip_p_w_picpath022

按照puppet官网的方法进行安装。如下:

rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

clip_p_w_picpath023

yum源配置完毕后,我们现在来安装hiera。如下:

yum -y install hiera

clip_p_w_picpath024

以上安装完毕后,我们就可以正式安装puppet。