1、实验环境node
2、实验步骤linux
搭建NTP servervim
#yum isntall -y ntpruby
#vim /etc/ntp.conf服务器
#service ntpd startssh
#chkconfig ntpd ontcp
搭建puppetmaster 服务器ide
修改主机名测试
#vim /etc/sysconfig/networkui
HOSTNAME=master.test.cn
#vim /etc/hosts
重启计算机
Puppetmaster 做为ntp客户端的配置
#yum install -y ntp
#ntpdate 192.168.1.40 时间同步
安装ruby,注意顺序,先安装commpat-readline5的包,也可一块儿安装。
安装完后检查ruby的版本
#ruby -v
Puppet,facter安装
建立puppet主目录
注明:manifests为节点信息,modules为模块信息
puppet服务证书请求与签名
修改配置文件:vim /etc/puppet/puppet.conf
在[main]标题下添加一行,配置服务器模块路径
#vim /etc/puppet/puppet.conf
启动puppet主程序
#service puppetmaster start
注明:puppetmaster 默认端口tcp 8140
搭建puppetclient(先配置client1)
修改主机名
#vim /etc/sysconfig/network
#vim /etc/hosts
重启计算机
与时间服务器同步
#yum -y install ntp (若是安装了,请忽略)
#ntpdate 192.168.1.40
安装ruby,注意顺序,先安装compat-readline5包,也可一块儿安装。
安装完以后检查ruby的版本:
Puppet,facter安装
puppet服务证书请求与签名
修改配置文件: vim /etc/puppet/puppet.conf
在[main]标题下添加一行,设置服务器域名。
#vim /etc/puppet/puppet.conf
注明:
Client2的配置过程与client1相似,只要将主机名修改成 client2.test.cn便可。
申请与注册
client端:
分别在client1和client2上进行注册
等待一下子后,此时能够按ctrl+c结束,由于puppet一直在等待任务,可是已经从server能够查看到申请信息。
master 端:
查看申请注册的客户端
将未注册的客户端进行注册:
#puppet cert sign --all
能够经过目录去查看已经注册的客户端
配置实例(应用)
案例应用的背景:为了保护linux的ssh端×××破,批量修改客户端sshd端口,将端口22修改成9922,并实现重启工做。
想完成以上几点,须要明确几点:
①需肯定openssh软件包安装
②需肯定存在ssh的配置文件
③肯定sshd的服务是系统服务
配置一个测试节点:
建立须要的必要目录
注明:建立ssh模块,模块的目录为ssh,模块下有三个文件分别是:manifests、templates、files。
建立模块配置文件install.pp
首先肯定客户端安装ssh服务
#vim /etc/puppet/modules/ssh/manifests/install.pp
建立模块配置文件config.pp
ssh主配置文件的配置:
#vim /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"],//调用ssh::install肯定
openssh已经安装
notify => Class["ssh::service"],//若是config.pp发生变化通知service.pp
}
}
这个文件的内容主要是定义,发布的配置文件权限以及调用ssh::install检查client是否安装了ssh服务,以及调用ssh::service从新启动sshd服务
建立模块配置文件service.pp
sshd服务的配置:
#vim /etc/puppet/modules/ssh/manifests/service.pp
注明:
class ssh::service{
service{ "sshd":
ensure =>running, //肯定sshd运
hasstatus=>true, //puppet该服务支持status命令,即相似service sshd status命令
hasrestart=>true, //puppet该服务支持status命令,即相似service sshd status命令
enable=>true, //服务是否开机启
require=>Class["ssh::config"] //确认config.pp调用
}
}
建立模块主配置文件init.pp
该模块的初始(入口)文件配置
#vim /etc/puppet/modules/ssh/manifests/init.pp
创建服务器端ssh 统一维护文件
因为服务器和客户端的sshd_config文件默认配置同样,此时将服务器端/etc/ssh/sshd_config复制到模块默认路径。
建立测试节点配置文件,并将ssh加载进去
#vim /etc/puppet/manifests/nodes/ssh.pp
将测试节点载入puppet,即修改site.pp
#vim /etc/puppet/manifests/site.pp
修改服务器端维护的sshd_config配置文件
#vim /etc/puppet/modules/ssh/files/ssh/sshd_config
重启puppet
#service puppetmaster restart
客户端主动拉取:(client1上操做)
Client端:
验证:vim /etc/ssh/sshd_config
查看ssh服务是否重启,端口是否生效:
服务器推送同步
Client2端:
修改配置文件
#vim /etc/puppet/puppet.conf
最后一行添加:
#vim /etc/puppet/auth.conf
最后一行添加:
启动puppet客户端
Master端:
开始往客户端推送
验证结果
在client2上验证:
#vim /etc/ssh/sshd_config
查看ssh服务是否重启,端口是否生效:
Puppet 介绍到此!!!