這篇文章主要介紹“puppet的安裝和配置步驟”,在日常操作中,相信很多人在puppet的安裝和配置步驟問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”puppet的安裝和配置步驟”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
專業(yè)從事企業(yè)網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)服務(wù),包括網(wǎng)站建設(shè)、域名注冊、虛擬空間、企業(yè)郵箱、微信公眾號開發(fā)、微信支付寶重慶小程序開發(fā)、重慶APP開發(fā)公司、軟件開發(fā)、等服務(wù)。公司始終通過不懈的努力和以更高的目標(biāo)來要求自己,在不斷完善自身管理模式和提高技術(shù)研發(fā)能力的同時(shí),大力倡導(dǎo)推行新經(jīng)濟(jì)品牌戰(zhàn)略,促進(jìn)互聯(lián)網(wǎng)事業(yè)的發(fā)展。Puuppet是一個(gè)開源的新一代的集中化配置管理工具,它由自己所聲明的語言表達(dá)系統(tǒng)配置,通過客戶端與服務(wù)端直接的連接,維護(hù)著關(guān)系庫。
Puppet是一個(gè)跨平臺的集中化配置管理系統(tǒng),它使用自由的描述語言,可管理配置文件、用戶、Cron、軟件包,系統(tǒng)服務(wù)等,Puppet把這些統(tǒng)稱為“資源”。
Puppet是基于Ruby語言并使用Apache協(xié)議授權(quán)的開源軟件,它既能以客戶端-服務(wù)端(C/S)的方式運(yùn)行,也能獨(dú)立運(yùn)行??蛻舳四J(rèn)每30分鐘會(huì)與服務(wù)端確認(rèn)一次更新,以確保配置的一致性。
Puppet的安裝步驟
1)安裝Ruby、Ruby-libs和Ruby-shadow,用于進(jìn)行用戶和組管理。
2)安裝Facter、Puppet和Puppet-server。
3)設(shè)置主機(jī)名、域名解析或指定hosts。
4)通過命令/etc/init.d/puppetmaster start啟動(dòng)Server或者以非進(jìn)程的方式啟動(dòng)Server。通過命令puppet master --no-daemonize --verbose可以查看到相關(guān)日志與輸出。
5)在客戶端配置文件Puppet.conf中指定Server端,在終端運(yùn)行Puppet agent-test命令或直接運(yùn)行puppet agent --test --server server.domain.com 與Master交互完成簽名認(rèn)證。
6)在Server上配置節(jié)點(diǎn)信息,告訴客戶端要做什么。
7)檢查語法是否正確(通長采用puppet parser validate test.pp命令進(jìn)行語法檢查)。
8)客戶端再次運(yùn)行配置(puppet agent --test)
一、 本文以Centos6.4操作系統(tǒng)下,安裝和配置Puppet。
(1)根據(jù)操作系統(tǒng)版本配置Yum源
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm 3
(2)在服務(wù)器端安裝Puppet。運(yùn)行如下代碼會(huì)自動(dòng)匹配安裝Facter等相關(guān)依賴包
yum -y install puppet-server
運(yùn)行如下命令來檢查Puppet的安裝
[root@node1 ~]# puppet -V 3.7.3 [root@node1 ~]# facter -v 2.3.0
(3)在客戶端安裝Puppet。
yum -y install puppet
二、配置Puppet
1)服務(wù)的啟用方法如下:
主:[root@node1 ~]# /etc/init.d/puppetmaster Usage: /etc/init.d/puppetmaster {start|stop|status|restart|reload|force-reload|condrestart|genconfig} 客:[root@node2 ~]# /etc/rc.d/init.d/puppet Usage: /etc/rc.d/init.d/puppet {start|stop|status|restart|reload|force-reload|condrestart|once|genconfig}
2)設(shè)定主機(jī)名指定hosts
[root@node1 ~]# cat /etc/hosts 192.168.254.2 node1.jiabin.com 192.168.254.5 node2.jiabin.com [root@node2 ~]# cat /etc/hosts 192.168.254.2 node1.jiabin.com 192.168.254.5 node2.jiabin.com
3)配置防火墻。
Puppet會(huì)監(jiān)聽8140端口,因此我們需要開放8140端口
iptables -A INPUT -p tcp --dport 8140 -j ACCEPT
4)配置一個(gè)文件進(jìn)行測試
[root@node1 ~]# cat /etc/puppet/manifests/site.pp node default { file { "/tmp/helloworld.txt": content => "hello, world"; } }
5)客戶端發(fā)起驗(yàn)證,命令如下
root@node2 ~]# puppet agent --server node1.jiabin.com --test Info: Caching certificate for ca Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml Info: Creating a new SSL certificate request for node2.jiabin.com Info: Certificate Request fingerprint (SHA256): 9D:26:8A:44:54:D4:B0:2A:73:0B:B6:BE:72:C3:E4:19:3C:13:CA:3F:C7:B8:03:99:69:70:06:9A:C1:DF:AD:69 Info: Caching certificate for ca Exiting; no certificate found and waitforcert is disabled
Agent發(fā)起了一個(gè)證書驗(yàn)證請求并且使用一個(gè)私鑰來加密連接。Puppet使用SSL證書來驗(yàn)證Master和Agent之間的連接。Agent會(huì)持續(xù)每兩分鐘檢查一次是否存在被簽名的證書。
6)服務(wù)器完成驗(yàn)證。
[root@node1 ~]# puppet cert --list "node2.jiabin.com" (SHA256) 9D:26:8A:44:54:D4:B0:2A:73:0B:B6:BE:72:C3:E4:19:3C:13:CA:3F:C7:B8:03:99:69:70:06:9A:C1:DF:AD:69 [root@node1 ~]# puppet cert sign node2.jiabin.com Notice: Signed certificate request for node2.jiabin.com Notice: Removing file Puppet::SSL::CertificateRequest node2.jiabin.com at '/var/lib/puppet/ssl/ca/requests/node2.jiabin.com.pem'
7)客戶端再次運(yùn)行配置。
[root@node2 ~]# puppet agent --server node1.jiabin.com --test Info: Caching certificate for node2.jiabin.com Info: Caching certificate_revocation_list for ca Info: Caching certificate for node2.jiabin.com Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for node2.jiabin.com Info: Applying configuration version '1419922755' Notice: Finished catalog run in 0.31 seconds
8)驗(yàn)證配置
[root@node2 ~]# more /tmp/node2.txt Hello World!
如果遇到簽名故障,最直接的一種方法。刪除主客ssl整個(gè)目錄
rm -rf /var/lib/puppet/ssl
三、配置一個(gè)測試節(jié)點(diǎn)
1)創(chuàng)建test模塊。模塊目錄為test,class類名也必須是test。test類里有一個(gè)File資源,F(xiàn)ile資源的目的是在/tmp目錄中創(chuàng)建一個(gè)以Node2主機(jī)名的txt文件,其內(nèi)容為"Hello World!"
主節(jié)點(diǎn):
[root@node1 ~]# mkdir -p /etc/puppet/modules/test/{manifests,templates,files} [root@node1 ~]# vim /etc/puppet/modules/test/manifests/init.pp class test { file { "/tmp/$hostname.txt": content => "Hello World!";} }
2)在模塊配置文件中定義一個(gè)變量“$hostname",需要將變量傳遞給ERB模塊文件中,
[root@node1 ~]# vim /etc/puppet/modules/test/templates/test.erb hostname <%= fqdn %>
3)創(chuàng)建測試節(jié)點(diǎn)
[root@node1 ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp node 'node2.jiabin.com' { include test include httpd }
4)載入測試節(jié)點(diǎn)到Puppet
[root@node1 ~]# vim /etc/puppet/manifests/site.pp import "nodes/node2.jiabin.com.pp" node default { file { "/tmp/helloworld.txt": content => "hello, world"; } } ~
import指令告訴Puppet載入nodes目錄中所有以.pp結(jié)尾的文件。
四、檢測配置文件
檢測語法分兩部分,第一步是在Puppet Master服務(wù)端采用puppet parser validate命令,
第二步是在Puppet Agent客戶端采用--noop參數(shù)檢測語法及代碼。
[root@node1 ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp
linux中沒顯示就是最好的結(jié)果
客戶端檢測
[root@node2 ~]# puppet agent --test --server node1.jiabin.com --noop Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for node2.jiabin.com Info: Applying configuration version '1419922755' Notice: Finished catalog run in 0.33 seconds
增加httpd模塊
1)創(chuàng)建httpd模塊相應(yīng)的目錄
[root@node1 ~]# mkdir -p /etc/puppet/modules/httpd/{manifests,templates,files}
2)編輯httpd模塊文件,指定資源配置
[root@node1 ~]# vim /etc/puppet/modules/httpd/manifests/init.pp class httpd { yumrepo { "repo163": descr => "163 repo", baseurl => "http://mirrors.163.com/centos/6/os/x86_64/", gpgcheck => "0", enabled => "1"; } package { "httpd": ensure => installed, require => Yumrepo["repo163"]; } }
3)修改node2.jiabin.com.pp,增加httpd模塊
[root@node1 ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp node 'node2.jiabin.com' { include test include httpd }
4)檢查配置文件語法的正確性
[root@node1 ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp
linux中沒顯示就是最好的結(jié)果
5)在客戶端運(yùn)行配置,命令如下:
[root@node2 ~]# puppet agent --server node1.jiabin.com --test Info: Retrieving pluginfacts Info: Retrieving plugin Info: Caching catalog for node2.jiabin.com Warning: The package type's allow_virtual parameter will be changing its default value from false to true in a future release. If you do not want to allow virtual packages, please exp (at /usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:430:in `default') Info: Applying configuration version '1419926864' Notice: Finished catalog run in 0.85 seconds
出現(xiàn)一個(gè)警告,不影響程序運(yùn)行??梢栽诜?wù)器端的 pp文件中的package 中加入 :allow_virtual => false, 來解決出現(xiàn)的警告。
[root@node1 ~]# vim /etc/puppet/modules/httpd/manifests/init.pp class httpd { yumrepo { "repo163": descr => "163 repo", baseurl => "http://mirrors.163.com/centos/6/os/x86_64/", gpgcheck => "0", enabled => "1"; } package { "httpd": ensure => installed, require => Yumrepo["repo163"], allow_virtual => false; } }
6)檢查httpd是否已經(jīng)成功安裝
[root@node2 ~]# rpm -q httpd httpd-2.2.15-26.el6.centos.x86_64
到此,關(guān)于“puppet的安裝和配置步驟”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。