一、基本資訊說明
官網: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虛拟機
參考:https://blog.csdn.net/llwy1428/article/details/89328381
2、配置網卡
參考:https://blog.csdn.net/llwy1428/article/details/85058028
3、各個節點安裝基本工具
[[email protected] ~]# yum install -y vim net-tools lrzsz tree wget rpm unzip ntp
4、修改主機名
參考:https://blog.csdn.net/llwy1428/article/details/85156123
第一個節點:
[[email protected] ~]# hostnamectl set-hostname server.cn
第二個節點:
[[email protected] ~]# hostnamectl set-hostname slave.cn
效果如下:
5、配置防火牆
參考:https://blog.csdn.net/llwy1428/article/details/85156649
此處我關閉了防火牆
6、配置 hosts 檔案(ip以各自真實的ip為準,此處是我虛拟機的ip)
[[email protected] ~]# 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
[[email protected] ~]# vi /etc/hosts
slave 節點填入 server hosts 中的相同内容
7、配置節點間時間同步
參考:https://blog.csdn.net/llwy1428/article/details/89330330
8、設定 selinux 狀态
參考:https://blog.csdn.net/llwy1428/article/details/100938748
9、在各個節點上建立目錄,并進入目錄,下載下傳 rpm 檔案
Server節點:
[[email protected] ~]# mkdir /opt/puppet
[[email protected] ~]# cd /opt/puppet/
Slave節點:
[[email protected] ~]# mkdir /opt/puppet
[[email protected] ~]# cd /opt/puppet/
下載下傳 puppetlabs-release-7-10.noarch.rpm
以 server 節點為例(slave節點同server節點)
[[email protected] 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節點):
[[email protected] puppet]# rpm -ivh puppetlabs-release-7-10.noarch.rpm
11、更新系統工具的最新版本,以 server 節點為例(slave節點同server節點):
[[email protected] ~]# yum -y update
12、在 Server 節點安裝 puppet-server
[[email protected] ~]# yum -y install factor ruby puppet-server
13、在 Slave 節點安裝 puppet 用戶端
[[email protected] ~]# yum -y install factor ruby puppet
14、修改各個節點的配置檔案
[[email protected] ~]# vim /etc/puppet/puppet.conf
在最後寫入如下三行配置:
certname = slave.cn
server = server.cn
report = true
如下圖:
15、在 Server 節點上啟動 puppet 服務:
[[email protected] ~]# systemctl start puppet puppetmaster
16、在 Slave 節點上啟動 puppet 用戶端:
[[email protected] ~]# systemctl start puppet
17、在服務端檢視啟動狀态
[[email protected] ~]# netstat -lntp
[[email protected] ~]# ps -ef | grep puppet
[[email protected] ~]# puppet master --no-daemonize --debug
出現最後一行版本号,說明服務已經啟動成功
18、檢視用戶端的認證清單及狀态
[[email protected] ~]# puppet cert list --all
server 端剛安裝好後,在 "slave.cn" 前面是沒有 “+” 号的,說明用戶端尚未被服務端認證。
此時在用戶端 Slave 節點測試或出現以下效果:
[[email protected] ~]# puppet agent --test
此時需要在服務端對用戶端進行認證操作
[[email protected] ~]# puppet cert sign slave.cn
注:
清除使用者證書:puppet cert --clean slave.cn (client端要同時删除證書:rm -rf /var/puppet/ssl/slave.cn.local)
檢視認證結果清單
[[email protected] ~]# puppet cert list --all
服務節點和用戶端均已被認證,如下圖:
19、測試:
在服務端寫入檔案
[[email protected] ~]# vim /etc/puppet/manifests/site.pp
node default {
file { "/tmp/helloworld.txt" :
content => "Hello World!",
}
}
儲存并退出 :wq
20、在用戶端檢視結果:
[[email protected] ~]# puppet agent --test
在用戶端檢視檔案
[[email protected] ~]# ll /tmp/
total 4
-rw-r--r--. 1 root root 12 Sep 17 21:15 helloworld.txt
[[email protected] ~]# cat /tmp/helloworld.txt
Hello World!
至此,Centos7 搭建 Puppet 叢集配置完畢!