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 介紹到此!!!