您好,登錄后才能下訂單哦!
這篇文章主要介紹“puppet的安裝和配置步驟”,在日常操作中,相信很多人在puppet的安裝和配置步驟問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”puppet的安裝和配置步驟”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Puuppet是一個開源的新一代的集中化配置管理工具,它由自己所聲明的語言表達系統配置,通過客戶端與服務端直接的連接,維護著關系庫。
Puppet是一個跨平臺的集中化配置管理系統,它使用自由的描述語言,可管理配置文件、用戶、Cron、軟件包,系統服務等,Puppet把這些統稱為“資源”。
Puppet是基于Ruby語言并使用Apache協議授權的開源軟件,它既能以客戶端-服務端(C/S)的方式運行,也能獨立運行。客戶端默認每30分鐘會與服務端確認一次更新,以確保配置的一致性。
Puppet的安裝步驟
1)安裝Ruby、Ruby-libs和Ruby-shadow,用于進行用戶和組管理。
2)安裝Facter、Puppet和Puppet-server。
3)設置主機名、域名解析或指定hosts。
4)通過命令/etc/init.d/puppetmaster start啟動Server或者以非進程的方式啟動Server。通過命令puppet master --no-daemonize --verbose可以查看到相關日志與輸出。
5)在客戶端配置文件Puppet.conf中指定Server端,在終端運行Puppet agent-test命令或直接運行puppet agent --test --server server.domain.com 與Master交互完成簽名認證。
6)在Server上配置節點信息,告訴客戶端要做什么。
7)檢查語法是否正確(通長采用puppet parser validate test.pp命令進行語法檢查)。
8)客戶端再次運行配置(puppet agent --test)
一、 本文以Centos6.4操作系統下,安裝和配置Puppet。
(1)根據操作系統版本配置Yum源
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm 3
(2)在服務器端安裝Puppet。運行如下代碼會自動匹配安裝Facter等相關依賴包
yum -y install puppet-server
運行如下命令來檢查Puppet的安裝
[root@node1 ~]# puppet -V 3.7.3 [root@node1 ~]# facter -v 2.3.0
(3)在客戶端安裝Puppet。
yum -y install puppet
二、配置Puppet
1)服務的啟用方法如下:
主:[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)設定主機名指定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會監聽8140端口,因此我們需要開放8140端口
iptables -A INPUT -p tcp --dport 8140 -j ACCEPT
4)配置一個文件進行測試
[root@node1 ~]# cat /etc/puppet/manifests/site.pp node default { file { "/tmp/helloworld.txt": content => "hello, world"; } }
5)客戶端發起驗證,命令如下
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發起了一個證書驗證請求并且使用一個私鑰來加密連接。Puppet使用SSL證書來驗證Master和Agent之間的連接。Agent會持續每兩分鐘檢查一次是否存在被簽名的證書。
6)服務器完成驗證。
[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)客戶端再次運行配置。
[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)驗證配置
[root@node2 ~]# more /tmp/node2.txt Hello World!
如果遇到簽名故障,最直接的一種方法。刪除主客ssl整個目錄
rm -rf /var/lib/puppet/ssl
三、配置一個測試節點
1)創建test模塊。模塊目錄為test,class類名也必須是test。test類里有一個File資源,File資源的目的是在/tmp目錄中創建一個以Node2主機名的txt文件,其內容為"Hello World!"
主節點:
[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)在模塊配置文件中定義一個變量“$hostname",需要將變量傳遞給ERB模塊文件中,
[root@node1 ~]# vim /etc/puppet/modules/test/templates/test.erb hostname <%= fqdn %>
3)創建測試節點
[root@node1 ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp node 'node2.jiabin.com' { include test include httpd }
4)載入測試節點到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結尾的文件。
四、檢測配置文件
檢測語法分兩部分,第一步是在Puppet Master服務端采用puppet parser validate命令,
第二步是在Puppet Agent客戶端采用--noop參數檢測語法及代碼。
[root@node1 ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp
linux中沒顯示就是最好的結果
客戶端檢測
[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)創建httpd模塊相應的目錄
[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中沒顯示就是最好的結果
5)在客戶端運行配置,命令如下:
[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
出現一個警告,不影響程序運行。可以在服務器端的 pp文件中的package 中加入 :allow_virtual => false, 來解決出現的警告。
[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是否已經成功安裝
[root@node2 ~]# rpm -q httpd httpd-2.2.15-26.el6.centos.x86_64
到此,關于“puppet的安裝和配置步驟”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。