puppet部署

puppet工做原理:node

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

puppet工做流程:vim

2018-03-09_161817.png

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

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

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

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

puppet工做流程中如下兩點值得注意:ide

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-64 192.168.1.20
puppetclient2
CentOS 6.5x86-64 192.168.1.30
NTP Server
CentOS 6.5x86-64 192.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

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

相關文章
相關標籤/搜索