自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何將Puppet服務(wù)器及客戶端安裝到CentOS和RHEL上?

譯文
系統(tǒng) Linux
由于系統(tǒng)管理員需要管理的系統(tǒng)越來(lái)越多,日常任務(wù)自動(dòng)化顯得相當(dāng)重要。于是,許多管理員采用了編寫(xiě)自定義腳本這種方法,這些腳本其實(shí)模擬復(fù)雜的調(diào)配軟件??蛇z憾的是,腳本會(huì)變得過(guò)時(shí),開(kāi)發(fā)腳本的人可能離開(kāi)了公司,要是沒(méi)有投入大量的精力來(lái)維護(hù),一段時(shí)間后這些腳本最終就會(huì)無(wú)法使用……

由于系統(tǒng)管理員需要管理的系統(tǒng)越來(lái)越多,日常任務(wù)自動(dòng)化顯得相當(dāng)重要。于是,許多管理員采用了編寫(xiě)自定義腳本這種方法,這些腳本其實(shí)模擬復(fù)雜的調(diào)配軟件??蛇z憾的是,腳本會(huì)變得過(guò)時(shí),開(kāi)發(fā)腳本的人可能離開(kāi)了公司,要是沒(méi)有投入大量的精力來(lái)維護(hù),一段時(shí)間后這些腳本最終就會(huì)無(wú)法使用。一種更可取的方法無(wú)疑是共享一種人人都能使用的系統(tǒng),開(kāi)發(fā)不管某人的雇主是誰(shuí),都可以使用的工具。這方面有幾個(gè)系統(tǒng)可供我們使用,本文介紹如何使用其中一個(gè)系統(tǒng):Puppet

何謂Puppet?

Puppet是一款面向IT系統(tǒng)管理員和咨詢?nèi)耸康淖詣?dòng)化軟件。它讓用戶可以自動(dòng)處理重復(fù)性任務(wù),比如安裝應(yīng)用程序和服務(wù)、補(bǔ)丁管理及部署。所有資源的配置都存儲(chǔ)在一個(gè)所謂的清單文件(manifest)里面,可以適用于多臺(tái)機(jī)器,或適用于僅僅一臺(tái)服務(wù)器。如果你想知道更多信息,The Puppet Labs網(wǎng)站更全面地描述了Puppet的性質(zhì)及其工作方式:https://puppetlabs.com/puppet/what-is-puppet/。

我們準(zhǔn)備在本教程中實(shí)現(xiàn)什么任務(wù)?

我們將安裝和配置一臺(tái)Puppet服務(wù)器,并為我們的客戶端服務(wù)器完成一些基本的配置。我們會(huì)介紹如何編寫(xiě)及管理Puppet清單文件以及如何將它發(fā)送到你的服務(wù)器上。

前提條件

由于Puppet不在基本的CentOSRHEL發(fā)行版軟件庫(kù)中,我們只好添加由Puppet Labs提供的自定義軟件庫(kù)。在你想要使用Puppet的所有服務(wù)器上,安裝該軟件庫(kù),為此執(zhí)行下面這個(gè)命令(RPM文件名隨新版本而變化):

CentOS/RHEL 6.5上:

  1. # rpm -ivh https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs-release-6-10.noarch.rpm  

CentOS/RHEL 7上:

  1. # rpm -ivh https://yum.puppetlabs.com/el/7/products/x86_64/puppetlabs-release-7-10.noarch.rpm  

服務(wù)器的安裝

將軟件包“puppet-server”安裝到你想用作主服務(wù)器的服務(wù)器上。

  1. # yum install puppet-server  

安裝完畢后,設(shè)置Puppet服務(wù)器,以便在系統(tǒng)啟動(dòng)時(shí)自動(dòng)開(kāi)啟、并打開(kāi)它。

  1. # chkconfig puppetmaster on  
  2. # service puppetmaster start  

現(xiàn)在我們讓服務(wù)器運(yùn)行起來(lái)后,就要確保它能夠從我們的網(wǎng)絡(luò)加以訪問(wèn)。

iptables用作防火墻的CentOS/RHEL 6上,將下面這一行添加到/etc/sysconfig/iptables的“:OUTPUT ACCEPT”這部分。

  1. 1 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT  

為了讓這個(gè)變更生效,有必要重啟iptables

  1. # service iptables restart  

在使用firewalldCentOS/RHEL 7上,可以用下列命令實(shí)現(xiàn)同一操作:

  1. # firewall-cmd --permanent --zone=public --add-port=8140/tcp  
  2. # firewall-cmd --reload  

客戶端的安裝

Puppet客戶端軟件包安裝到客戶端節(jié)點(diǎn)上,為此執(zhí)行下面這個(gè)命令:

  1. # yum install puppet  

安裝完畢后,確保Puppet在系統(tǒng)啟動(dòng)后開(kāi)啟。

  1. # chkconfig puppet on  

你的Puppet客戶端節(jié)點(diǎn)必須知道Puppet主服務(wù)器位于何處。為此,最佳辦法就是使用DNS服務(wù)器,你可以在該服務(wù)器上配置Puppet域名。要是你沒(méi)有一臺(tái)正常運(yùn)行的DNS服務(wù)器,可以使用/etc/hosts文件,為此只要添加下面這一行:

  1. 1.2.3.4 server.your.domain  
  2. 2.3.4.5 client-node.your.domain 

1.2.3.4對(duì)應(yīng)于Puppet主服務(wù)器的IP地址,“server.your.domain”是主服務(wù)器的域名(默認(rèn)值通常是服務(wù)器的主機(jī)名稱),“client-node.your.domain”則是客戶端節(jié)點(diǎn)。應(yīng)該在所有相關(guān)的服務(wù)器(Puppet主服務(wù)器和客戶端服務(wù)器)上都要相應(yīng)配置該主機(jī)文件。

完成這些設(shè)置后,我們就要向Puppet客戶端表明誰(shuí)是主服務(wù)器。默認(rèn)情況下,Puppet尋找一臺(tái)名為“puppet”的服務(wù)器,但該設(shè)置通常不適合你的網(wǎng)絡(luò)配置,因此我們將它換成Puppet主服務(wù)器的完全符合標(biāo)準(zhǔn)的域名(FQDN)。打開(kāi)文件/etc/sysconfig/puppet,把“PUPPET_SERVER”值換成/etc/hosts中指定的Puppet主服務(wù)器域名:

  1. PUPPET_SERVER=server.your.domain 

主服務(wù)器名稱也必須在/etc/puppet/puppet.conf的“[agent]”部分中加以定義:

  1. serverserver=server.your.domain 

現(xiàn)在,你可以啟動(dòng)Puppet客戶端了:

  1. # service puppet start  

我們需要使用下面這個(gè)命令,迫使客戶端聯(lián)系上Puppet主服務(wù)器:

  1. # puppet agent --test  

你應(yīng)該會(huì)看到類(lèi)似下列輸出內(nèi)容的結(jié)果。別慌張,這很正常,因?yàn)樵摲?wù)器仍沒(méi)有在Puppet主服務(wù)器上得到驗(yàn)證。

  1. Exiting; no certificate found and waitforcert is disabled 

回到你的puppet主服務(wù)器,核實(shí)證書(shū)驗(yàn)證請(qǐng)求:

  1. # puppet cert list  

你應(yīng)該會(huì)看到一份列表,列出了從puppet主服務(wù)器請(qǐng)求證書(shū)簽名的所有服務(wù)器。找到客戶 服務(wù)器的主機(jī)名稱,使用下面這個(gè)命令來(lái)簽名(client-node是客戶端節(jié)點(diǎn)的域名):

  1. # puppet cert sign client-node  

至此,你已有了一臺(tái)正常工作的Puppet客戶端和服務(wù)器。祝賀你!不過(guò),眼下Puppet主服務(wù)器無(wú)法指令客戶端進(jìn)行什么操作。所以,不妨創(chuàng)建某個(gè)基本的清單文件,并設(shè)置客戶端節(jié)點(diǎn)來(lái)安裝基本的實(shí)用工具。

連接回到Puppet服務(wù)器,確保目錄/etc/puppet/manifests已存在。

  1. # mkdir -p /etc/puppet/manifests  

現(xiàn)在,創(chuàng)建具有下列內(nèi)容的清單文件/etc/puppet/manifests/site.pp

  1.  node 'client-node' {  
  2.  
  3.    include custom_utils  
  4.  }  
  5.  class custom_utils {  
  6.  
  7.     package { ["nmap","telnet","vim-enhanced","traceroute"]:   
  8.            ensure => latest,  
  9.            allow_virtual => false,  
  10.     }   
  11. }  

然后重啟puppetmaster服務(wù)。

  1. # service puppetmaster restart  

客戶端配置的默認(rèn)刷新間隔時(shí)間是30分鐘;如果你想手動(dòng)強(qiáng)行讓變更生效,就要在客戶端節(jié)點(diǎn)上執(zhí)行下面這個(gè)命令:

  1. # puppet agent -t  

如果你想更改默認(rèn)的客戶端刷新間隔時(shí)間,將下面這一行:

  1. runinterval = <yourtime> 

添加到客戶端節(jié)點(diǎn)上的/etc/puppet/puppet.conf的“[agent]”部分。該設(shè)置是個(gè)時(shí)間間隔,單位可能是秒鐘(3030s)、分鐘(30m)、小時(shí)(6h)、天(2d)或年(5y)。注意:運(yùn)行間隔為0意味著“連續(xù)運(yùn)行”,而不是“從不運(yùn)行”。

技巧和方法

1. 調(diào)試

有時(shí)候可能出現(xiàn)這種情況:你要提交錯(cuò)誤的配置,不得不調(diào)試Puppet在哪里出現(xiàn)了故障。為此,你總是可以從檢查/var/log/puppet/中的日志,或者手動(dòng)運(yùn)行代理軟件、查看輸出結(jié)果開(kāi)始入手:

  1. # puppet agent -t  

默認(rèn)情況下,“-t”激活詳細(xì)模式,所以它讓你可以查看Puppet的輸出結(jié)果。該命令還有幾個(gè)參數(shù),可以幫助更細(xì)致一點(diǎn)地識(shí)別問(wèn)題。第一個(gè)實(shí)用的選項(xiàng)是:

  1. # puppet agent -t --debug  

debug表明Puppet在運(yùn)行期間經(jīng)歷的所有步驟。它在調(diào)試非常復(fù)雜的規(guī)則的過(guò)程中大有用處??赡芎苡杏玫牧硪粋€(gè)參數(shù)是:

  1. # puppet agent -t --noop  

該選項(xiàng)將puppet設(shè)置在所謂的空運(yùn)行(dry-run)模式,并不執(zhí)行任何變更。Puppet只是在屏幕上輸出所要呈現(xiàn)的內(nèi)容,并不將任何內(nèi)容寫(xiě)入到磁盤(pán)上。

2. 模塊

一段時(shí)間后,你會(huì)發(fā)現(xiàn)處于這種情形:你想要有更復(fù)雜的清單文件。但在你坐下來(lái)開(kāi)始編寫(xiě)清單文件之前,應(yīng)該花點(diǎn)時(shí)間,瀏覽https://forge.puppetlabs.com。Forge是個(gè)龐大的軟件庫(kù),里面含有諸多Puppet社區(qū)模塊;你很有可能在這里找到問(wèn)題的解決方法。要是沒(méi)找到,就編寫(xiě)自己的模塊,然后提交,那樣別人就能得益于Puppet模塊文化。

現(xiàn)在,假設(shè)你已經(jīng)找到了可以解決你問(wèn)題的一個(gè)模塊。那么,如何把它安裝到系統(tǒng)上?安裝其實(shí)相當(dāng)容易,因?yàn)?/span>Puppet已經(jīng)含有直接下載模塊的接口。只要鍵入下面這個(gè)命令:

  1. # puppet module install <module_name> --version 0.0.0  

<module_name>是你所選擇模塊的名稱,version是可選的(要是沒(méi)有指定,那么下載最新版本。)如果你不記得想要安裝的那個(gè)模塊的名稱,可以試著使用module search(模塊搜索)來(lái)找到它:

  1. # puppet module search <search_string>  

因而,你會(huì)獲得一份列表,列出了含有搜索字符串的所有模塊。

  1. # puppet module search apache 

  1. Notice: Searching https://forgeapi.puppetlabs.com ...  
  2.  
  3. NAME           DESCRIPTION            AUTHOR          KEYWORDS                                          
  4.  
  5. example42-apache    Puppet module for apache      @example42        example42, apache                                 
  6.  
  7. puppetlabs-apache    Puppet module for Apache      @puppetlabs        apache web httpd centos rhel ssl wsgi proxy       
  8.  
  9. theforeman-apache   Apache HTTP server configuration @theforeman       foreman apache httpd DEPRECATED             

如果你想看看已經(jīng)安裝了哪些模塊,只要鍵入下面這個(gè)命令:

  1. # puppet module list 

結(jié)束語(yǔ)

至此,你應(yīng)該有了一個(gè)完全實(shí)用的Puppet主服務(wù)器,可以為一個(gè)或多個(gè)客戶端服務(wù)器提供基本的配置?,F(xiàn)在可以隨意為你的配置添加更多的設(shè)置,讓它適應(yīng)你的基礎(chǔ)設(shè)施。用不著為搗鼓Puppet而擔(dān)心,你會(huì)發(fā)現(xiàn)它確實(shí)大有幫助。

Puppet實(shí)驗(yàn)室在努力為其項(xiàng)目維護(hù)最高質(zhì)量的說(shuō)明文檔,所以如果你想進(jìn)一步了解Puppet及其配置,本人強(qiáng)烈建議訪問(wèn)Puppet項(xiàng)目的網(wǎng)頁(yè):http://docs.puppetlabs.com。

要是你有任何問(wèn)題,歡迎在下面留言,本人會(huì)盡量給予解答或給出建議。

 

責(zé)任編輯:牛小雨 來(lái)源: 51CTO
相關(guān)推薦

2019-04-08 09:00:00

CentOS 7ElasticsearLinux

2019-05-05 10:42:22

LinuxNTP命令

2009-09-16 15:44:25

2023-05-13 17:32:51

2014-06-01 11:03:13

VDI零客戶端

2016-10-24 09:40:53

CentOS高級(jí)入侵檢測(cè)

2019-10-14 15:00:12

Centos 8 RHEL 8VNC

2015-08-03 15:38:06

2018-12-19 10:31:32

客戶端IP服務(wù)器

2010-10-26 13:54:45

連接Oracle服務(wù)器

2014-01-17 15:23:55

Nagios

2017-04-11 13:20:06

CentOSRHELFedora

2023-05-05 16:20:15

2010-05-31 10:22:56

2011-08-02 14:11:19

服務(wù)器打印機(jī)

2011-06-09 10:51:26

Qt 服務(wù)器 客戶端

2009-09-17 18:06:44

Nis服務(wù)器

2019-11-05 11:20:36

CentOS 8RHEL 8Linux

2016-10-26 09:29:12

MongoDBLinux

2009-08-18 12:51:19

服務(wù)器+客戶端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)