溫馨提示×

溫馨提示×

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

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

Puppet 安裝配置

發(fā)布時間:2020-04-30 20:27:38 來源:網(wǎng)絡(luò) 閱讀:569 作者:想站著的豬 欄目:編程語言

一、什么puppet?

1、基于ruby語言開發(fā)的系統(tǒng)配置集中管理工具,跨平臺

2、一個C/S架構(gòu),配置服務(wù)端和客戶端

puppet依賴于ruby與facter,安裝puppet3.x,需要ruby1.8.7版本及以上;facter是一個系統(tǒng)盤點工具,收集主機(jī)的一些資料,比如OS、IP、CPU等

3、puppet是一個C/S結(jié)構(gòu)開源軟件,基于Ruby的系統(tǒng)配置管理工具,安裝puppet3.x,需要ruby1.8.7版本及以上

4、默認(rèn)情況下,客戶端每隔30分鐘連接一次puppet服務(wù)端

5、能管理多達(dá)40種資源,例如:file、user、cron、package、yum等,適合整個軟件的生命周期管理

原理圖:

Puppet 安裝配置


1)         客戶端通過facter收集客戶端信息并發(fā)送至服務(wù)端
2)         連接服務(wù)端并請求catalog日志
3)         請求節(jié)點(node)的信息
4)         從服務(wù)器端接收節(jié)點(node)的實例
5)         編譯代碼(包括語法檢查等工作)
6)         查詢是否有exported 虛擬資源
7)         如有,則從數(shù)據(jù)庫接收虛擬資源
8)         接收完整的catalog日志
9)         存儲catalog日志到數(shù)據(jù)庫
10)       客戶端接收完整的catalog日志

二、我們怎樣用puppet和實驗環(huán)境介紹

1、拓?fù)鋱D


Puppet 安裝配置

系統(tǒng)管理員經(jīng)常陷入一系列的重復(fù)任務(wù)中:如升級軟件包、管理配置文件、系統(tǒng)服務(wù)、用戶管理、cron任務(wù)以及添加新的配置、修復(fù)錯誤等。這些任務(wù)通常是重 復(fù)低效的,解決這類任務(wù)的第一反應(yīng)是讓他們自動化,于是出現(xiàn)了定制腳本。由于環(huán)境復(fù)雜,定制腳本和應(yīng)用程序一再被重復(fù)開發(fā),并且很難適合多種平臺,靈活性 和功能也很難保證,于是像Puppet這樣的自動化配置管理工具便出現(xiàn)了。

注:本次實驗要檢查防火墻確保8140端口開放.
禁用防火墻和SELinux
service iptables stop
chkconfig iptables off
setenforce 0
cat /etc/sysconfig/selinux <<EOF
SELINUX=disabled
SELINUXTYPE=targeted
EOF


2、下載

操作系統(tǒng)RHEL6.3 x64

facter下載: https://downloads.puppetlabs.com/facter/

puppet下載: https://downloads.puppetlabs.com/puppet/

3、puppetmaster與puppetclient可以相互解析(server和client都要如此)

vi /etc/hosts

192.168.0.200 puppetmaster.com

192.168.0.201 puppetclient1.com

4、puppet服務(wù)端與客戶端時間同步

yum install ntp -y

service ntpd start

ntpdate pool.ntp.org #同步時間

clock -w #將時間寫入硬件

chkconfig ntpd on

、安裝服務(wù)端puppet

1、安裝ruby環(huán)境

[root@puppetmaster ~]# yum install -y ruby ruby-libs ruby-shadow ruby-rdoc

2、安裝facter

安裝puppet之前必須先安裝facter
facter是一個系統(tǒng)盤點工具,收集主的一些資料,比如CPU,主機(jī)IP等,它收集到值發(fā)送給puppet服務(wù)器端,服務(wù)器端就可以根據(jù)不同的條件來對不同的節(jié)點機(jī)器生成不同的puppet配置文件

[root@puppetmaster ~]# tar zxvf facter-1.7.3.tar.gz
[root@puppetclient1 ~]# cd facter-1.7.3
[root@puppetmaster facter-1.7.3]# ruby install.rb

3、安裝配置puppet

[root@puppetmaster puppet-3.3.1]# useradd -s /sbin/nologin puppet
[root@puppetmaster ~]# tar zxvf puppet-3.3.1.tar.gz
[root@puppetclient1 ~]# cd puppet-3.3.1
[root@puppetclient1 puppet-3.3.1]# ruby install.rb
[root@puppetmaster puppet-3.3.1]# cp ext/redhat/puppet.conf /etc/puppet/
[root@puppetmaster puppet-3.3.1]# cp ext/redhat/server.init /etc/init.d/puppetmaster
[root@puppetmaster puppet-3.3.1]# chmod +x /etc/init.d/puppetmaster


剛開始的話, puppet.conf不需要配置就可以滿足。

[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[main]  #在main里面添加puppet服務(wù)端主機(jī)名

server = puppetmaster.com  

 

設(shè)置puppetmaster 服務(wù)開機(jī)啟動

[root@puppetmaster puppet-3.3.1]# chkconfig --add puppetmaster
[root@puppetmaster puppet-3.3.1]# chkconfig puppetmaster on
[root@puppetmaster puppet-3.3.1]# service puppetmaster start

注:要保證/var/lib/puppet/rrd目錄存在且屬主是puppet

  1. [root@puppetmaster puppet]# ls -l /var/lib/puppet/

  2. total 36

  3. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 bucket

  4. drwxr-xr-x 2 root   root   4096 Sep  3 12:17 facts

  5. drwxr-xr-x 2 root   root   4096 Sep  3 12:17 lib

  6. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 reports

  7. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 rrd

  8. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 server_data

  9. drwxrwx--x 8 puppet root   4096 Sep  3 12:26 ssl

  10. drwxr-xr-t 2 root   root   4096 Sep  3 12:17 state

  11. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 yaml

要查看端口

  1. [root@puppetmaster puppet]# netstat -Tanlp | grep 8140

  2. tcp        0      0 0.0.0.0:8140                0.0.0.0:* LISTEN      4556/ruby


四、安裝客戶端puppet agent

1、安裝ruby環(huán)境

[root@puppetclient1 ~]# yum install -y ruby ruby-libs ruby-shadow ruby-rdoc


2、安裝facter

[root@puppetclient1 ~]# tar zxvf facter-1.7.3.tar.gz
[root@puppetclient1 ~]# cd facter-1.7.3
[root@puppetclient1 facter-1.7.3]# ruby install.rb

3、安裝配置puppet

[root@puppetclient1 puppet-3.3.1]# useradd -s /sbin/nologin puppet
[root@puppetclient1 ~]# tar zxvf puppet-3.3.1.tar.gz
[root@puppetclient1 puppet-3.3.1]# ruby install.rb
[root@puppetclient1 puppet-3.3.1]# cp ext/redhat/puppet.conf /etc/puppet/puppet.conf
[root@puppetclient1 puppet-3.3.1]# cp ext/redhat/client.init /etc/init.d/puppet
[root@puppetclient1 puppet-3.3.1]# chmod +x /etc/init.d/puppet


[root@puppetclient1 ~]# vi /etc/puppet/puppet.conf

Agent的配置主要是更改agent上的/etc/puppet/puppet.conf文件的[agent]部分。

agentvim /etc/puppet/puppet.conf 添加如下配置

      server = puppetmaster.com     #master服務(wù)器的地址

       runinterval = 3600               #每隔多久的時間進(jìn)行自動更新,時間單位為秒

       listen =true                 #客戶端作為一個服務(wù)進(jìn)行監(jiān)聽,允許其它的機(jī)器觸發(fā)puppet運行允許遠(yuǎn)程觸發(fā)puppet的節(jié)點配置

[root@puppetclient1 puppet-3.3.1]# chkconfig --add puppet
[root@puppetclient1 puppet-3.3.1]# chkconfig puppet on
[root@puppetclient1 puppet-3.3.1]# service puppet start
[root@puppetclient1 puppet-3.3.1]# netstat -tupln | grep 8140

注:要保證/var/lib/puppet/rrd目錄存在且屬主是puppet

  [root@puppetmaster puppet]# ls -l /var/lib/puppet/

  1. total 36

  2. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 bucket

  3. drwxr-xr-x 2 root   root   4096 Sep  3 12:17 facts

  4. drwxr-xr-x 2 root   root   4096 Sep  3 12:17 lib

  5. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 reports

  6. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 rrd

  7. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 server_data

  8. drwxrwx--x 8 puppet root   4096 Sep  3 12:26 ssl

  9. drwxr-xr-t 2 root   root   4096 Sep  3 12:17 state

  10. drwxr-x--- 2 puppet puppet 4096 Sep  3 12:17 yaml


 要查看端口

  1. [root@puppetmaster puppet]# netstat -Tanlp | grep 8140

  2. tcp        0      0 0.0.0.0:8140                0.0.0.0:* LISTEN      4556/ruby


五、配置簽名證書

1、客戶端創(chuàng)建證書注冊請求

[root@puppetclient1 ~]# puppet agent --test
Info: Creating a new SSL key for puppetclient1.com
Info: Caching certificate for ca
Info: Creating a new SSL certificate request for puppetclient1.com
Info: Certificate Request fingerprint (SHA256): 7E:10:48:3F:3C:D4:13:BA:BF:66:ED:86:52:92:19:05:1E:D2:3A:CD:06:67:27:80:60:D6:54:66:0E:33:F7:C7
Exiting; no certificate found and waitforcert is disabled


2、服務(wù)端查看證書注冊請求

[root@puppetmaster ~]# puppet cert list  #加--all查看所有
  "puppetclient1.com"     (SHA256) 7E:10:48:3F:3C:D4:13:BA:BF:66:ED:86:52:92:19:05:1E:D2:3A:CD:06:67:27:80:60:D6:54:66:0E:33:F7:C7
  "puppetclient1.com.com" (SHA256) 46:B6:95:A6:1B:6A:FD:83:E4:1C:72:D4:5C:3C:B5:EF:3D:F7:43:2C:09:CF:00:B8:44:18:E4:3E:B3:DC:6F:FD


3、服務(wù)端受理客戶端證書注冊請求

[root@puppetmaster ~]# puppet cert sign puppetclient1.com  #主機(jī)名改為--all,是受理所有
Notice: Signed certificate request for puppetclient1.com
Notice: Removing file Puppet::SSL::CertificateRequest puppetclient1.com at '/var/lib/puppet/ssl/ca/requests/puppetclient1.com.pem'


4、客戶端確認(rèn)是否證書注冊成功

[root@puppetclient1 ~]# puppet agent --test


如果出現(xiàn)以下報錯,則在客戶端puppet.conf配置文件[main]里面添加pluginsync=false,再重啟!

Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppetmaster.com/plugins


5、想清除證書使用

[root@puppetmaster ~]# puppet cert clean puppetclient1.com


六、簡單測試

1、服務(wù)端編寫配置

[root@puppetmaster ~]# vi /etc/puppet/manifests/site.pp #修改后立即,無需重啟
node 'puppetclient1.com' {      #指定某臺,也可以不寫為所有
file { "/tmp/test.txt":
            content=> "hello,puppet test\n";
            #source=> "puppet://$puppetserver/files/httpd.conf"
            #也可以這樣分發(fā)一個配置文件
    }
}


注:file是一個資源管理關(guān)鍵字,用來管理文件的,還有package軟件包管理,service管理系統(tǒng)服務(wù),exec執(zhí)行shell命令,/tmp/test.txt是創(chuàng)建文件名字,content定義文件內(nèi)容

2、客戶端默認(rèn)30分鐘與服務(wù)端同步配置文件,所以我們手動執(zhí)行,也可以修改puppet.conf更改默認(rèn)時間,添加runinterval=600,設(shè)置為10分鐘同步一次

[root@puppetclient1 ~]# puppet agent --test
[root@puppetclient1 ~]# ls /tmp/

test.txt


client端出現(xiàn)test.txt文件 至此,基本的puppet系統(tǒng)配置完成!

參考文章 http://56281688.blog.51cto.com/780901/1222560

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

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

AI