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