puppet部署

puppet工作原理:

    puppet的目的是讓管理員只集中於要管理的目標,而忽略實現的細節。puppet既可以在單機上使用,也可以以C/S結構使用。在大規模使用puppet的情況下,通常使用C/S結果,在這種結構中puppet客戶端只運行puppetclient,puppet服務器只運行puppetmaster。

puppet工作流程:

2018-03-09_161817.png

1)客戶端puppet調用facter(facter是通過ssl加密收集及檢測分析客戶端配置信息的一個工具),facter探測出主機的一些變量,如主機名,內存大小,ip地址等。Puppet把這些信息通過ssl連接發送到服務器器端

2)服務器端的puppetmaster通過facter工具分析檢測客戶端的主機名,然後找到項目主配置文件mainfest裏面對應的node配置,並對該部分內容進行解析。Facter發送過來的信息可以作爲變量處理,node牽扯到的代碼才解析,其他沒牽涉的代碼不解析,解析分爲幾個階段,首先進行語法檢查,如果語法沒錯,就繼續解析,解析的結果生成一箇中間的“僞代碼”,然後把僞代碼發送給客戶端。

3)客戶端接收到“僞代碼”並執行,客戶端把執行的結果發送給服務器。

4)服務器把客戶端的執行結果寫入日誌。

puppet工作流程中以下兩點值得注意:

1)爲了保證安全,client和master之間是基於ssl和證書的,只有經master證書認證的client可以與master通信。

2)Puppet會讓系統保持在人們所期望的某種狀態並一直維持下去,例如:檢測某個文件並保證其一直存在,保證ssh服務始終開啓,如果文件被刪除了或者ssh服務被關閉了,puppet下次執行時(默認30分鐘),會重新創建該文件或者啓動ssh服務。

案例環境:

2018-03-09_162518.png

主機
操作系統
IP地址
主要軟件
puppetmaster
CentOS 6.5x86-64
192.168.1.10

ruby-rdoc-1.8.7.352-13.el6.x86_64

ruby-libs-1.8.7.352-13.el.x86_64

ruby-irb-1.8.7.352-13.el6.x86_64

ruby-1.8.7.352-13.el6.x86_64

puppet-2.7.21.tar.gz

facter-1.7.1.tar.gz

puppetclient1
CentOS 6.5x86-64192.168.1.20
puppetclient2
CentOS 6.5x86-64192.168.1.30
NTP Server
CentOS 6.5x86-64192.168.1.40

1.搭建NTP Server

(1)安裝NTP

2018-03-06_213801.png

(2)修改配置文件

2018-03-06_213859.png

2018-03-06_213921.png

(3)啓動服務,設置防火牆規則

2018-03-06_214304.png

2.搭建puppetmaster

(1)規劃服務器主機名

小規模可以修改/etc/hosts文件,服務器多的時候我們需要搭建dns服務器來實現服務通過主機名進行通信,這裏就以/etc/hosts文件來實現

2018-03-06_214420.png

2018-03-06_214449.png


2018-03-06_214519.png

2018-03-06_214548.png

2018-03-06_214701.png

(2)puppetmaster作爲NTP客戶端的配置

2018-03-06_214822.png

(3)安裝ruby

一定安裝一下先後順序安裝,先安裝compat-readline5,也可以一併安裝

2018-03-06_214957.png

安裝完之後檢查ruby版本

2018-03-06_215018.png

(4)創建用戶

2018-03-06_215137.png

(5)安裝facter

2018-03-06_215608.png

(6)安裝puppet

2018-03-06_215622.png

複製配置文件

2018-03-06_220052.png

修改文件屬性

2018-03-06_220141.png

創建puppet主目錄

2018-03-06_220255.png

(7)puppet服務證書請求與簽名

生產環境中iptables默認是全部關閉的

2018-03-06_220334.png

修改配置文件

2018-03-06_220442.png

在[main]標題下添加一下一行,配置服務器模塊路徑

2018-03-06_220508.png

啓動puppet主程序

2018-03-06_220612.png

3.搭建puppetclient   (注意:puppetclient2的配置過程與puppetclient1類似,主機名改爲client2.itzhushou.cn即可,其他都一樣)

(1)規劃服務器主機名

vim  /etc/sysconfig/network

2018-03-06_220810.png

vim  /etc/hosts

2018-03-06_220838.png

2018-03-06_220944.png

(2)服務器時間同步

2018-03-06_221104.png

(3)安裝ruby

2018-03-06_221152.png

安裝完成後檢查ruby版本

2018-03-06_221221.png

(4)創建用戶

2018-03-06_221351.png

(5)安裝facter

2018-03-06_221410.png

(6)安裝puppet

2018-03-06_221427.png

複製配置文件

2018-03-06_221550.png

修改文件屬性

2018-03-06_221640.png

(7)puppet服務證書請求與簽名

生產環境中iptables默認是全部關閉的    service  iptables  stop

修改client文件

2018-03-06_221741.png

在[main]標題下添加以下一行,設置服務器的域名

2018-03-06_221807.png

申請與註冊

client端:

分別在puppetclient1和puppetclient2上進行註冊

2018-03-06_221944.png

此時可以按Ctrl+C結束,因爲puppet一直在等待任務,但是已經從server查看到申請信息。

master端:

查看申請註冊的客戶端

2018-03-06_222025.png

將未註冊的客戶端進行註冊

2018-03-06_222115.png

可以通過目錄去查看已經註冊的客戶端

2018-03-06_222142.png

此時客戶端已經完成證書的請求與簽名。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章