環(huán)境:
網(wǎng)站設(shè)計(jì)制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營了10余年的創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司。
操作系統(tǒng):RedHat 5.3 64bit
Puppet版本:2.7.9
Facter版本:1.6.8
1、Puppet及Facter下載地址
Puppet:https://downloads.puppetlabs.com/facter/
Facter: https://downloads.puppetlabs.com/puppet/
2、Puppet Server安裝
首先在安裝Puppet之前,需要安裝ruby,我們這里就直接使用yum安裝,具體下:
# yum install -y ruby ruby-libs ruby-shadow
①、Facter安裝
# tar xzvf facter-1.6.8.tgz # cd facter-1.6.8 # ruby install.rb
②、Puppet安裝
# tar xzvf puppet-2.7.9.tgz # cd puppet-2.7.9 # ruby install.rb
如上Puppet Server端的安裝就已經(jīng)完成了,那么接下來就是一些配置文檔及啟動(dòng)腳本的設(shè)置了。
配置文件
安裝完成之后,我們需要copy安裝包里面的一些配置文件到Puppet配置目錄/etc/puppet,具體如下:
# cp conf/redhat/fileserver.conf /etc/puppet/ # cp conf/redhat/puppet.conf /etc/puppet/puppet.conf.default
fileserver.conf → Puppet文件系統(tǒng)配置
puppet.conf → Puppet的默認(rèn)配置文檔,可以參考下。不過這個(gè)也可以不復(fù)制,后面會命令生成
注意:根據(jù)操心系統(tǒng)不同復(fù)制的配置文件的目錄也會不一樣,如上我們操作系統(tǒng)為redhat,目錄為conf/redhat,如果操作系統(tǒng)是suse,那么目錄就為conf/suse。
啟動(dòng)腳本
# cp conf/redhat/server.init /etc/init.d/puppetmaster # chmod +x /etc/init.d/puppetmaster
注意:默認(rèn)情況下puppet的配置文檔/etc/puppet/puppet.conf設(shè)置pid的存儲路徑為/var/lib/puppet/run,而啟動(dòng)腳本的路徑為/var/run/puppet,這里兩者需要統(tǒng)一。
創(chuàng)建Puppet用戶及相應(yīng)目錄
# puppet master --mkusers # ll /var/lib/puppet/ total 48 drwxr-x--- 2 puppet puppet 4096 Nov 1 17:34 bucket drwxr-x--- 2 puppet puppet 4096 Nov 7 14:11 clientbucket drwxr-x--- 2 puppet puppet 4096 Nov 7 14:11 client_data drwxr-x--- 2 puppet puppet 4096 Nov 7 14:11 client_yaml drwxr-xr-x 2 puppet puppet 4096 Nov 1 17:34 lib drwxr-x--- 2 puppet puppet 4096 Nov 8 14:06 log drwxr-x--- 3 puppet puppet 4096 Nov 4 17:28 reports drwxr-x--- 2 puppet puppet 4096 Nov 1 17:34 rrd drwxrwxrwt 2 puppet puppet 4096 Nov 12 11:42 run drwxr-x--- 2 puppet puppet 4096 Nov 1 17:34 server_data drwxr-xr-t 3 puppet puppet 4096 Nov 7 14:11 state drwxr-x--- 4 puppet puppet 4096 Nov 4 16:37 yaml
創(chuàng)建的目錄主要是/var/lib/puppet
生成Puppet Server配置文檔
# puppetmasterd --genconfig > /etc/puppet/puppet.conf
以上就將Puppet Server端給安裝完成了,后續(xù)剩下的就是SSL認(rèn)證了。
3、Puppet Agent安裝
Agent端Facter及Puppet的安裝和Server端是一樣的,區(qū)別就在于兩者之后的啟動(dòng)腳本和配置文檔不一樣,相關(guān)的配置信息如下:
啟動(dòng)文件
# cp -p conf/redhat/client.init /etc/init.d/puppet # chmod +x /etc/init.d/puppet
生成Puppet Agent配置文檔
# puppet agent --genconfig > /etc/puppet/puppet.conf
4、SSL認(rèn)證
①、DNS設(shè)置或者h(yuǎn)ost設(shè)置
Puppet SSL認(rèn)證是通過域名來標(biāo)記的,所有這里需要設(shè)置域名。因?yàn)檫@里是測試使用,本次的話就直接通過/etc/hosts來設(shè)置域名的IP指向了,如果在生產(chǎn)環(huán)境使用的話,建議還是使用DNS來設(shè)置。如下為Puppet Server及Agent的hosts設(shè)置:
Puppet Server
# cat /etc/hosts ··· 10.197.95.245 szmlvm29-76 szmlvm29-76.easou.com 10.197.95.234 szmlvm29-77 szmlvm29-77.easou.com puppet
Puppet Agent
# cat /etc/hosts ··· 120.197.95.234 szmlvm29-77.easou.com szmlvm29-77 120.197.95.245 szmlvm29-76.easou.com szmlvm29-76
②、Puppet Agent證書申請
# puppetd --server szmlvm29-76.easou.com --test 或者 # puppetd --server szmlvm29-76.easou.com --no-daemonize –verbose
第一個(gè)是申請證書時(shí),不管是否成功,只執(zhí)行一次。
第二個(gè)是申請證書時(shí),一直在前端實(shí)現(xiàn)詳細(xì)信息,默認(rèn)情況下是以daemon的形式執(zhí)行的。
③、Puppet Server證書簽發(fā)
# puppetca --sign szmlvm29-77.easou.com 或者 puppet cert --sign szmlvm29-77.easou.com 簽發(fā)節(jié)點(diǎn)為szmlvm29-77.easou.com的證書 # puppetca --sign --all 或者 puppet cert --sign --all 簽發(fā)所有節(jié)點(diǎn)的證書
其他Puppet Server和證書相關(guān)的命令有如下一些:
# puppet cert --list或者puppetca --list 查看申請證書請求 # puppet cert -revoke puppet或者puppetca -revoke puppet 設(shè)置節(jié)點(diǎn)證書過期 # puppet cert --clean puppet或者puppetca --clean puppet 刪除節(jié)點(diǎn)證書
5、Puppet Server與Agent聯(lián)通測試
①、配置site.pp
site.pp這個(gè)文件是在/etc/puppet/manifests目錄下,Puppet Server所有對Agent的操作都是從這個(gè)配置文件入口的。這里為了測試就簡單的對這個(gè)文件進(jìn)行配置,對Agent創(chuàng)建一個(gè)用戶,具體信息如下:
$ cat site.pp node default { user { "test1" : ensure=>present,comment=>"測試",name=>test,shell=>"/bin/bash",home=>"/home/text",managehome=>true,password=>sha1('12345');} }
如上,對所有Agent創(chuàng)建一個(gè)用戶名為test用戶,使用shell為/bin/bash,加目錄為/home/test,密碼為12345。
②、Agent執(zhí)行
# /usr/sbin/puppetd --server szmlvm29-76.easou.com --test info: Caching catalog for szmlvm29-77.easou.com info: Applying configuration version '1384248986' notice: /Stage[main]//Node[default]/User[test1]/ensure: created notice: Finished catalog run in 0.16 seconds
# cat /etc/passwd ··· test:x:505:506:測試:/home/text:/bin/bash # ll /home/ ··· drwx------ 3 test test 4096 Nov 18 14:41 text # cat /etc/shadow test:8cb2237d0679ca88db6464eac60da96345513964:16027:0:99999:7:::
如上Puppet Agent執(zhí)行結(jié)果為執(zhí)行成功。