1. 程式人生 > >Centos7.4安裝配置puppet

Centos7.4安裝配置puppet

實驗環境
master主機: 192.168.80.100 主機名master
client01主機: 192.168.80.101 主機名client01
client02主機: 192.168.80.102 主機名client02

注:3臺主機需要聯網
使用centos7.4預設自帶的yum倉庫
vi /etc/hostname
master
client01
client02

hostname master
hostname client01
hostname client02
exit 退出生效使用者名稱

分別搭建時間伺服器
systemctl stop firewalld
setenforce 0
yum install ntp -y 時間伺服器 在主的80.100
vi /etc/ntp/conf
restrict 192.168.80.0 mask 255.255.255.0 nomodify notrap 新增這一行讓192.168.80的網段同步時間
server 127.127.1.0
fudge 127.127.1.0 stratum 8
新增這三行儲存退出
在這裡插入圖片描述

service ntpd start 開啟ntp服務
systemctl enable ntpd 開啟開機自啟ntp服務

ntpdate time1.aliyun.com
date 檢視時間是否有同步

在80.101上安裝ntp
systemctl stop firewalld
setenforce 0
yum install -y ntp
ntpdate 192.168.80.100 去同步主的伺服器的時間
date 檢視時間

在80.102上安裝ntp
systemctl stop firewalld
setenforce 0
yum install -y ntp
ntpdate 192.168.80.100去同步主的伺服器的時間

在80.100中搭建puppetmaster
vi /etc/hosts
192.168.80.100 master
192.168.80.101 client01
192.168.80.102 client02
在這裡插入圖片描述
這步還要在80.101和80.102中操作
yum install -y epel-release 安裝epel源
yum install -y ruby ruby-libs ruby-shadow 安裝ruby相關的依賴包
yum install -y puppet puppet-server facter 安裝puppet相關的依賴包

puppet服務證書請求與簽名
vi /etc/puppet/puppet.conf 在[main]下新增
modulepath = /etc/puppet/modules:/usr/share/puppet/modules
在這裡插入圖片描述


systemctl start puppetmaster 開啟主的puppet
systemctl enable puppetmaster 開啟自啟
netstat -anput | grep 8140
在這裡插入圖片描述

搭建puppetClient
在80.101客戶端client01中
yum install -y epel-release 安裝epel源
yum install -y puppet 安裝puppet
vi /etc/puppet/puppet.conf 在[agent]下新增,末尾新增
server = master
在這裡插入圖片描述

service puppet start
systemctl enable puppet
ps aux | grep pupp
在這裡插入圖片描述

在80.102中client02跟client01一樣的操作

申請與註冊
client上操作接著在伺服器上授權
在client 80.101和102上:申請註冊

puppet agent --server=master --no-daemonize --verbose --debug

在這裡插入圖片描述

在master上80.100:

puppet cert --list   檢視申請的客戶端

在這裡插入圖片描述

puppet cert sign --all 將未註冊的客戶端進行註冊
在這裡插入圖片描述
ll /var/lib/puppet/ssl/ca/signed/ 檢視已經註冊的客戶端
在這裡插入圖片描述
在這裡插入圖片描述
client中的2臺 有這個說明正確了

注意如果在client出現報錯
在這裡插入圖片描述
解決
systemctl stop puppet 先停止服務
puppet agent --server=master --no-daemonize --verbose --debug 在執行這條命令

如果報錯在master中
find /var/lib/puppet -type f -print0 |xargs -0r rm 刪除認證將刪除的命令執行在master主機上,要重啟pupuetmaster 和兩臺client機子
systemctl restart puppetmaster
service puppet restart
service puppet restart

還有錯誤刪除在客戶端執行的命令
rm -rf /var/lib/puppet/ssl/certs/*

以上安裝配置puppet完成了

案例描述:
為了保護linux的ssh埠,批量修改客戶端sshd埠,將22埠修改9922,並實現重啟工作。

1、建立必要的目錄
在master上:
mkdir -p /etc/puppet/modules/ssh/{manifests,templates,files} 建立ssh模組,模組下面有三個檔案:manifests,templates,files
mkdir /etc/puppet/manifests/nodes 建立節點目錄
mkdir /etc/puppet/modules/ssh/files/ssh 建立ssh模組目錄
chown -R puppet /etc/puppet/modules/

ll /etc/puppet/modules/ssh/
在這裡插入圖片描述

2、建立模組配置檔案install.pp
vi /etc/puppet/modules/ssh/manifests/install.pp 新建檔案(首先確定客戶端安裝ssh服務)
class ssh::install{
package{“openssh”:
ensure => present,
}
}

vi /etc/puppet/modules/ssh/manifests/config.pp 新建檔案
class ssh::config{
file {"/etc/ssh/sshd_config":
ensure => present,
owner => “root”,
group => “root”,
mode => “0600”,
source => “puppet://$puppetserver/modules/ssh/ssh/sshd_config”,
require => Class[“ssh::install”],
notify => Class[“ssh::service”],
}
}

vi /etc/puppet/modules/ssh/manifests/service.pp 新建檔案
class ssh::service {
service {“sshd”:
ensure=>running,
hasstatus=>true,
hasrestart=>true,
enable=>true,
require=>Class[“ssh::config”]
}
}

vi /etc/puppet/modules/ssh/manifests/init.pp 新建檔案
class ssh{
include ssh::install,ssh::config,ssh::service
}

ll /etc/puppet/modules/ssh/manifests/ 下面有四個檔案
在這裡插入圖片描述

cp /etc/ssh/sshd_config /etc/puppet/modules/ssh/files/ssh
在這裡插入圖片描述
chown puppet /etc/puppet/modules/ssh/files/ssh/sshd_config
在這裡插入圖片描述
vi /etc/puppet/manifests/nodes/ssh.pp
node ‘client01’ {
include ssh
}
node ‘client02’ {
include ssh
}

vi /etc/puppet/manifests/site.pp 新建檔案
import “nodes/ssh.pp”

vi /etc/puppet/modules/ssh/files/ssh/sshd_config 修改13行
Port9922 去掉#號把22改為9922

service puppetmaster restart 重新啟動puppet

第一種方法client客戶端主動拉取
puppet agent -t
在這裡插入圖片描述
在這裡插入圖片描述
vi /etc/ssh/sshd_config 驗證如下
在這裡插入圖片描述
埠號發生了改變了
netstat -tunlp| grep ssh //檢視伺服器ssh服務是否重啟,埠是否生效

第二種方法
配置伺服器推送同步client中
在client操作
vi /etc/puppet/puppet.conf 最後一行新增
listen = true
在這裡插入圖片描述
vi /etc/puppet/auth.conf 最後一行新增
allow *
在這裡插入圖片描述
service puppet restart 啟動puppet客戶端

vi /etc/ssh/sshd_config //檢視
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

netstat -tunlp| grep ssh 確認啟動ssh服務

在master中
puppet kick client01 //開始往客戶端推送
在這裡插入圖片描述
puppet kick client02
在這裡插入圖片描述

vi /etc/ssh/sshd_config //在client驗證如下
Port 9922
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

netstat -tunlp| grep sshd //在client上檢視,檢視伺服器ssh服務是否重啟,埠是否生效

在這裡插入圖片描述

到此ssh自動化運維服務安裝就做完了