溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

puppet的安裝和配置步驟

發(fā)布時(shí)間:2021-07-30 17:18:26 來(lái)源:億速云 閱讀:195 作者:chen 欄目:編程語(yǔ)言

這篇文章主要介紹“puppet的安裝和配置步驟”,在日常操作中,相信很多人在puppet的安裝和配置步驟問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”puppet的安裝和配置步驟”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

  Puuppet是一個(gè)開(kāi)源的新一代的集中化配置管理工具,它由自己所聲明的語(yǔ)言表達(dá)系統(tǒng)配置,通過(guò)客戶(hù)端與服務(wù)端直接的連接,維護(hù)著關(guān)系庫(kù)。

  Puppet是一個(gè)跨平臺(tái)的集中化配置管理系統(tǒng),它使用自由的描述語(yǔ)言,可管理配置文件、用戶(hù)、Cron、軟件包,系統(tǒng)服務(wù)等,Puppet把這些統(tǒng)稱(chēng)為“資源”。

  Puppet是基于Ruby語(yǔ)言并使用Apache協(xié)議授權(quán)的開(kāi)源軟件,它既能以客戶(hù)端-服務(wù)端(C/S)的方式運(yùn)行,也能獨(dú)立運(yùn)行。客戶(hù)端默認(rèn)每30分鐘會(huì)與服務(wù)端確認(rèn)一次更新,以確保配置的一致性。

 Puppet的安裝步驟

1)安裝Ruby、Ruby-libs和Ruby-shadow,用于進(jìn)行用戶(hù)和組管理。

2)安裝Facter、Puppet和Puppet-server。

3)設(shè)置主機(jī)名、域名解析或指定hosts。

4)通過(guò)命令/etc/init.d/puppetmaster start啟動(dòng)Server或者以非進(jìn)程的方式啟動(dòng)Server。通過(guò)命令puppet master --no-daemonize --verbose可以查看到相關(guān)日志與輸出。

5)在客戶(hù)端配置文件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)信息,告訴客戶(hù)端要做什么。

7)檢查語(yǔ)法是否正確(通長(zhǎng)采用puppet parser validate test.pp命令進(jìn)行語(yǔ)法檢查)。

8)客戶(hù)端再次運(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)依賴(lài)包

yum -y install puppet-server

運(yùn)行如下命令來(lái)檢查Puppet的安裝

[root@node1 ~]# puppet -V
3.7.3
[root@node1 ~]# facter -v
2.3.0

(3)在客戶(hù)端安裝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)聽(tīng)8140端口,因此我們需要開(kāi)放8140端口

 iptables -A INPUT -p tcp --dport 8140 -j ACCEPT

4)配置一個(gè)文件進(jìn)行測(cè)試

[root@node1 ~]# cat /etc/puppet/manifests/site.pp 

node default {
        file {
                "/tmp/helloworld.txt": content => "hello, world";
        }
}

5)客戶(hù)端發(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è)證書(shū)驗(yàn)證請(qǐng)求并且使用一個(gè)私鑰來(lái)加密連接。Puppet使用SSL證書(shū)來(lái)驗(yàn)證Master和Agent之間的連接。Agent會(huì)持續(xù)每?jī)煞昼姍z查一次是否存在被簽名的證書(shū)。

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)客戶(hù)端再次運(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è)測(cè)試節(jié)點(diǎn)

1)創(chuàng)建test模塊。模塊目錄為test,class類(lèi)名也必須是test。test類(lèi)里有一個(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)建測(cè)試節(jié)點(diǎn)

[root@node1 ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp 

node 'node2.jiabin.com' {
include test
include httpd
}

4)載入測(cè)試節(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é)尾的文件。

四、檢測(cè)配置文件

檢測(cè)語(yǔ)法分兩部分,第一步是在Puppet Master服務(wù)端采用puppet parser validate命令,

第二步是在Puppet Agent客戶(hù)端采用--noop參數(shù)檢測(cè)語(yǔ)法及代碼。

[root@node1 ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp

linux中沒(méi)顯示就是最好的結(jié)果

客戶(hù)端檢測(cè)

[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)檢查配置文件語(yǔ)法的正確性

[root@node1 ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp

linux中沒(méi)顯示就是最好的結(jié)果

5)在客戶(hù)端運(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,  來(lái)解決出現(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)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI