一、基本信息说明
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虚拟机
2、配置网卡
3、各个节点安装基本工具
[root@localhost ~]# yum install -y vim net-tools lrzsz tree wget rpm unzip ntp
4、修改主机名
第一个节点:
[root@localhost ~]# hostnamectl set-hostname server.cn
第二个节点:
[root@localhost ~]# hostnamectl set-hostname slave.cn
效果如下:
5、配置防火墙
此处我关闭了防火墙
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、配置节点间时间同步
8、设置 selinux 状态
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
10、安装 puppetlabs-release-7-10.noarch.rpm
以 server 节点为例(slave节点同server节点):
[root@server puppet]# rpm -ivh puppetlabs-release-7-10.noarch.rpm
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
如下图:
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
[root@server ~]# puppet master --no-daemonize --debug
出现最后一行版本号,说明服务已经启动成功
18、查看客户端的认证列表及状态
[root@server ~]# puppet cert list --all
server 端刚安装好后,在 "slave.cn" 前面是没有 “+” 号的,说明客户端尚未被服务端认证。
此时在客户端 Slave 节点测试或出现以下效果:
[root@slave ~]# puppet agent --test
此时需要在服务端对客户端进行认证操作
[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
服务节点和客户端均已被认证,如下图:
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
在客户端查看文件
[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 集群配置完毕!