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自动化运维服务安装就做完了

猜你喜欢

转载自blog.csdn.net/qeeezz11224/article/details/84312688