一、基本信息说明

官网:https://puppet.com/

epel源下载地址:https://fedoraproject.org/wiki/EPEL/zh-cn

安装包下载地址:http://downloads.puppetlabs.com/puppet/

GitHub:https://github.com/puppetlabs/puppet

依赖关系:https://rubygems.org/gems/puppet

二、环境、工具说明

1、操作系统  Centos7.4 x64  Minimal 1708

安装2台虚拟机

各节点 1G内存  1核CPU  20G磁盘

2、工具:xshell5

3、VMware 版本:VMware Workstation Pro15

三、安装部署

1、安装Centos7虚拟机

参考:javascript:void(0)

2、配置网卡

参考:javascript:void(0)

3、各个节点安装基本工具

[root@localhost ~]# yum install -y vim net-tools lrzsz tree wget rpm unzip ntp

4、修改主机名

参考:javascript:void(0)

第一个节点:

[root@localhost ~]# hostnamectl set-hostname server.cn

第二个节点:

[root@localhost ~]# hostnamectl set-hostname slave.cn

效果如下:

记一次  Centos7 搭建  Puppet  集群_客户端

5、配置防火墙

参考:javascript:void(0)

此处我关闭了防火墙

记一次  Centos7 搭建  Puppet  集群_javascript_02

6、配置  hosts  文件(ip以各自真实的ip为准,此处是我虚拟机的ip)

[root@server ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.11.17 server.cn
192.168.11.18 slave.cn
[root@slave ~]# vi /etc/hosts

slave 节点填入 server hosts 中的相同内容

7、配置节点间时间同步

参考:javascript:void(0)

记一次  Centos7 搭建  Puppet  集群_centos_03

8、设置  selinux  状态

参考:javascript:void(0)

记一次  Centos7 搭建  Puppet  集群_centos_04

9、在各个节点上创建目录,并进入目录,下载 rpm 文件

Server节点:
[root@server ~]# mkdir /opt/puppet
[root@server ~]# cd /opt/puppet/
Slave节点:
[root@slave ~]# mkdir /opt/puppet
[root@slave ~]# cd /opt/puppet/

下载 puppetlabs-release-7-10.noarch.rpm

以  server  节点为例(slave节点同server节点)

[root@server puppet]# wget https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs-release-7-10.noarch.rpm

记一次  Centos7 搭建  Puppet  集群_Puppet_05

10、安装  puppetlabs-release-7-10.noarch.rpm

以  server  节点为例(slave节点同server节点):

[root@server puppet]# rpm -ivh puppetlabs-release-7-10.noarch.rpm

记一次  Centos7 搭建  Puppet  集群_服务端_06

11、更新系统工具的最新版本,以  server  节点为例(slave节点同server节点):

[root@server ~]# yum -y update

12、在 Server 节点安装 puppet-server

[root@server ~]# yum -y install factor ruby puppet-server

13、在 Slave 节点安装 puppet 客户端

[root@slave ~]# yum -y install factor ruby puppet

14、修改各个节点的配置文件

[root@slave ~]# vim /etc/puppet/puppet.conf

在最后写入如下三行配置:

certname = slave.cn
server = server.cn
report = true

如下图:

记一次  Centos7 搭建  Puppet  集群_服务端_07

15、在 Server 节点上启动 puppet 服务:

[root@server ~]# systemctl start puppet puppetmaster

16、在 Slave 节点上启动 puppet 客户端:

[root@slave ~]# systemctl start puppet

17、在服务端查看启动状态

[root@server ~]# netstat -lntp
[root@server ~]# ps -ef | grep puppet

记一次  Centos7 搭建  Puppet  集群_javascript_08

[root@server ~]# puppet master --no-daemonize --debug

出现最后一行版本号,说明服务已经启动成功

记一次  Centos7 搭建  Puppet  集群_javascript_09

18、查看客户端的认证列表及状态

[root@server ~]# puppet cert list --all

server 端刚安装好后,在   "slave.cn"  前面是没有  “+” 号的,说明客户端尚未被服务端认证。

此时在客户端  Slave 节点测试或出现以下效果:

[root@slave ~]# puppet agent --test

记一次  Centos7 搭建  Puppet  集群_centos_10

此时需要在服务端对客户端进行认证操作

[root@server ~]# puppet cert sign slave.cn

注:

清除用户证书:puppet cert --clean slave.cn    (client端要同时删除证书:rm -rf /var/puppet/ssl/slave.cn.local)

查看认证结果列表

[root@server ~]# puppet cert list --all

服务节点和客户端均已被认证,如下图:

记一次  Centos7 搭建  Puppet  集群_客户端_11

19、测试:

在服务端写入文件

[root@server ~]# vim /etc/puppet/manifests/site.pp
node default {
    file { "/tmp/helloworld.txt" :
        content => "Hello World!",
    }
}

保存并退出    :wq

20、在客户端查看结果:

[root@slave ~]# puppet agent --test

记一次  Centos7 搭建  Puppet  集群_Puppet_12

在客户端查看文件

[root@slave ~]# ll /tmp/
total 4
-rw-r--r--. 1 root root 12 Sep 17 21:15 helloworld.txt
[root@slave ~]# cat /tmp/helloworld.txt 
Hello World!

 

 

至此,Centos7 搭建  Puppet  集群配置完毕!