国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Puppet 搭建與部署,看這一篇就夠了

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

[[275950]]

Puppet工作原理

讓管理員只集中于要管理的目標,而忽視實現的細節。puppet既可以在單機上使用,也可以以C/S結構使用。在大規模使用puppet的情況下,通常使用C/S結構,在這種結構中puppet客戶端只運行puppetclient,Puppet服務端只運行puppetmaster。具體的工作流程如圖所示:

 

環境

使用四臺服務器模擬搭建puppet環境,拓撲圖如下所示:

 

環境表

 

實驗步驟

1.搭建Puppet Master

(1)規劃三臺服務器主機名

  1. [root@localhost ~]# vim /etc/hostname 
  2. master.test.cn 
  3. [root@localhost ~]# vim /etc/hosts 
  4. 192.168.126.138 master.test.cn 
  5. 192.168.126.148 client01.test.cn 
  6. 192.168.126.158 client02.test.cn 

(2)服務器時間同步

由于puppet需要使用SSL證書,依賴時間同步,所以需要搭建NTP服務器

1)搭建NTP Server

  1. [root@localhost ~]# yum install ntp -y 
  2. [root@localhost ~]# vim /etc/ntp.conf 
  3.  
  4. 添加以下兩行:server 127.127.1.0           #指定本地作為時間源服務器 
  5. fudge 127.127.1.0 stratum 8 

其作用是當 /etc/ntp.conf 中定義的server都不可用時,將使用local時間作為NTP服務提供給NTP客戶端。

2)啟動ntp服務并設置開機自啟動

  1. [root@localhost ~]# systemctl stop firewalld.service 
  2. [root@localhost ~]# systemctl disable firewalld.service 
  3. [root@localhost ~]# setenforce 0 
  4. [root@localhost ~]# systemctl start ntpd.service 
  5. [root@localhost ~]# systemctl enable ntpd.service 
  6. [root@localhost ~]# ntpstat    #同步 
  7. synchronised to NTP server (193.228.143.13) at stratum 3 
  8.    time correct to within 517 ms 
  9.    polling server every 64 s 

3)puppetmaster作為NTP客戶端的配置

  1. [root@master ~]# yum install ntpdate -y 
  2. [root@master ~]# ntpdate 192.168.126.159 
  3.  6 Aug 09:45:03 ntpdate[3488]: adjust time server 192.168.126.159 offset -0.072288 sec    #調整時間服務器192.168.126.159偏移-0.072288秒 

4)配置YUM源

  1. [root@master ~]# yum install epel-release -y 
  2.  
  3. [root@master ~]# yum install puppet-server -y   #安裝puppet服務端 

5)啟動puppet主程序

  1. [root@master ~]# systemctl stop firewalld.service 
  2. [root@master ~]# systemctl disable firewalld.service 
  3. [root@master ~]# setenforce 0 
  4. [root@master ~]# systemctl start puppetmaster.service 
  5. [root@master ~]# systemctl enable puppetmaster.service 

2.搭建puppetclient(兩臺客戶端配置一樣)

1)通過域名ping通puppetmaster

  1. [root@client01 ~]# ping master.test.cn 
  2. PING master.test.cn (192.168.126.138) 56(84) bytes of data. 
  3. 64 bytes from master.test.cn (192.168.126.138): icmp_seq=1 ttl=64 time=1.06 ms 
  4. 64 bytes from master.test.cn (192.168.126.138): icmp_seq=2 ttl=64 time=3.27 ms 
  5. 64 bytes from master.test.cn (192.168.126.138): icmp_seq=3 ttl=64 time=0.382 ms 
  6. 64 bytes from master.test.cn (192.168.126.138): icmp_seq=4 ttl=64 time=0.660 ms 

2)服務器時間同步

  1. [root@client01 ~]# yum install ntpdate -y 
  2. [root@client01 ~]# vim /etc/ntp.conf 
  3. server 127.127.1.0           #指定本地作為時間源服務器 
  4. fudge 127.127.1.0 stratum 8 
  5.  
  6. [root@client01 ~]# ntpdate 192.168.126.159 
  7.  6 Aug 10:01:12 ntpdate[3303]: adjust time server 192.168.126.159 offset -0.012348 sec 

3)配置YUM源

  1. [root@client01 ~]# yum install epel-release -y 
  2.  
  3. [root@client01 ~]# yum install puppet -y    #安裝puppet客戶端 

4)修改puppet的配置文件/etc/puppet/puppet.conf

  1. [root@client01 ~]# vim /etc/puppet/puppet.conf 
  2. [main] 
  3.     # The Puppet log directory. 
  4.     # The default value is '$vardir/log'
  5.     logdir = /var/log/puppet 
  6.  
  7.     # Where Puppet PID files are kept. 
  8.     # The default value is '$vardir/run'
  9.     rundir = /var/run/puppet 
  10.  
  11.     # Where SSL certificates are kept. 
  12.     # The default value is '$confdir/ssl'
  13.     ssldir = $vardir/ssl 
  14.     server = master.test.cn    #添加puppet master的地址 

5)分別在puppetclient01和puppetclient01上進行注冊

  1. [root@client01 ~]# puppet agent --server=master.test.cn --no-daemonize --verbose 
  2. Info: Creating a new SSL key for client01.test.cn 
  3. Info: Caching certificate for ca 
  4. Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml 
  5. Info: Creating a new SSL certificate request for client01.test.cn 
  6. Info: Certificate Request fingerprint (SHA256): C1:1F:11:32:53:96:AA:91:16:9F:CE:F2:AD:D2:3F:56:C7:9B:D9:87:5C:F8:2D:30:7D:FE:49:66:46:2A:D9:FC 
  7. Info: Caching certificate for ca 

6)查看申請注冊的客戶端

  1. [root@master ~]# puppet cert --list 
  2.   "client01.test.cn" (SHA256) C1:1F:11:32:53:96:AA:91:16:9F:CE:F2:AD:D2:3F:56:C7:9B:D9:87:5C:F8:2D:30:7D:FE:49:66:46:2A:D9:FC 
  3.   "client02.test.cn" (SHA256) 7C:C9:22:59:B2:1E:2B:F5:12:30:4D:88:D9:B1:AF:60:FE:02:65:7 

7)對未注冊的客戶端進行注冊

  1. [root@master ~]# puppet cert sign --all 
  2. Notice: Signed certificate request for client01.test.cn 
  3. Notice: Removing file Puppet::SSL::CertificateRequest client01.test.cn at '/var/lib/puppet/ssl/ca/requests/client01.test.cn.pem' 
  4. Notice: Signed certificate request for client02.test.cn 
  5. Notice: Removing file Puppet::SSL::CertificateRequest client02.test.cn at '/var/lib/puppet/ssl/ca/requests/client02.test.cn.pem' 

8)查看已經注冊的客戶端

  1. [root@master ~]# ll /var/lib/puppet/ssl/ca/signed/ 
  2. 總用量 12 
  3. -rw-r--r--. 1 puppet puppet 1952 8月   6 21:22 client01.test.cn.pem 
  4. -rw-r--r--. 1 puppet puppet 1952 8月   6 21:22 client02.test.cn.pem 
  5. -rw-r--r--. 1 puppet puppet 2021 8月   6 21:06 master.test.cn.pem 

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

配置實例

  • 這里為了保護Linux的ssh端口,修改客戶端client1的sshd端口,將端口22修改為9922,并實 現重啟工作。
  • 首先創建ssh模塊,ssh模塊下面有三個文件:manifests,templates和files。
  • 在manifests里面包含一個init.pp文件,這是該模塊的初始入口文件,導入模塊時,會從init.pp開始執行??梢园阉械拇a都寫到init.pp里面,也可以分成多個pp文件,init再去包含其他文件。定義class類名的時候必須是ssh,這樣才能實現調用。
  • file目錄是該模塊的文件發布目錄,Puppet提供一個文件分發機制,類似于rsync的模塊。
  • templates目錄包含erb模型文件,這個和file資源的template屬性相關,不過很少用。具體配置如下:

1)創建必要的目錄:

  1. [root@master ~]# cd /etc/puppet/ 
  2. [root@master puppet]# mkdir -p modules/ssh/{manifests,templates,files} 
  3. [root@master puppet]# mkdir manifests/nodes 
  4. [root@master puppet]# mkdir modules/ssh/files/ssh 
  5. [root@master puppet]# chown -R puppet modules/   #修改權限 

2)查看/etc/puppet/modules/ssh目錄下的結構

  1. [root@master puppet]# ll modules/ssh/ 
  2. 總用量 0 
  3. drwxr-xr-x. 3 puppet root 17 8月   6 21:32 files 
  4. drwxr-xr-x. 2 puppet root  6 8月   6 21:31 manifests 
  5. drwxr-xr-x. 2 puppet root  6 8月   6 21:31 templates 

3)創建模塊配置文件install.pp

  1. [root@master puppet]# vim /etc/puppet/modules/ssh/manifests/install.pp 
  2. 輸入以下信息(首先確定客戶端已安裝ssh服務):class ssh::install{ 
  3. package{"openssh"
  4.   ensure=>present, 
  5.   } 

4)創建模塊配置文件config.pp

  1. [root@master puppet]# vim /etc/puppet/modules/ssh/manifests/config.pp 
  2.  
  3. class ssh::config{ 
  4. file {"/etc/ssh/sshd_config":     #配置客戶端需要同步的文件 
  5. ensure=>present,                  #確認客戶端中有此文件 
  6. owner=>"root",         #文件屬主 
  7. group=>"root",         #文件屬組 
  8. mode=>"0600",          #文件權限屬性 
  9. source=>"puppet://$puppetserver/modules/ssh/ssh/sshd_config"
  10. #從服務端同步文件 
  11. require=>Class["ssh::install"],      #調用install.pp確認ssh已經安裝 
  12. notify=>Class["ssh::service"],       #如果config.pp發生變化,通知service.pp 

5)創建模塊配置文件service.pp

  1. [root@master puppet]# vim /etc/puppet/modules/ssh/manifests/service.pp 
  2. class ssh::service{ 
  3. service { "sshd"
  4. ensure=>running,     #確認ssh運行 
  5. hasstatus=>true,     #puppet該服務支持status命令,類似于service sshd status 
  6. hasrestart=>true,    #puppet該服務支持restart,類似于service sshd restart 
  7. enable=>true,        #服務器是否開機啟動 
  8. require=>Class["ssh::config"]     #確認config.pp調用 

6)創建模塊主配置文件init.pp

  1. [root@master puppet]# vim /etc/puppet/modules/ssh/manifests/init.pp 
  2.  
  3. class ssh { 
  4. include ssh::install,ssh::config,ssh::service  #將配置文件加載到ssh類中去 

7)此時/etc/puppet/modeles/ssh/mainfests目錄下有四個文件

  1. [root@master puppet]# ll /etc/puppet/modules/ssh/manifests/ 
  2. 總用量 16 
  3. -rw-r--r--. 1 root root 248 8月   6 21:40 config.pp 
  4. -rw-r--r--. 1 root root  60 8月   6 21:46 init.pp 
  5. -rw-r--r--. 1 root root  64 8月   6 21:38 install.pp 
  6. -rw-r--r--. 1 root root 165 8月   6 21:42 service.pp 

8)建立服務端ssh統一維護文件

由于服務端和客戶端的sshs_config文件默認一樣,此時將服務端的/etc/ssh/sshd_config復制到模塊默認路徑中去。

  1. [root@master puppet]# cp /etc/ssh/sshd_config /etc/puppet/modules/ssh/files/ssh/ 
  2. [root@master puppet]# chown -R puppet /etc/puppet/modules/ssh/files/ssh/ #修改權限 

9)創建測試節點配置文件,并將ssh加載進去。

  1. [root@master puppet]# vim /etc/puppet/manifests/nodes/ssh.pp 
  2. node 'client01.test.cn'
  3. include ssh 
  4.  
  5. node 'client02.test.cn'
  6. include ssh 

10)將測試節點載入puppet,即修改site.pp。

  1. [root@master puppet]# vim /etc/puppet/manifests/site.pp 
  2.  
  3. import "nodes/ssh.pp" 

11)修改服務器維護的sshd_config配置文件

  1. [root@master puppet]# vim /etc/puppet/modules/ssh/files/ssh/sshd_config 
  2. Port 22    #修改為9922 

12)重啟puppet服務

  1. [root@master puppet]# systemctl restart puppetmaster.service 

2.客戶端主動拉取

一般在小規模自動化集群中,如代碼上線需要重啟服務時,為了防止出現網站暫時性無法訪問的問題,每臺客戶端運行一次puppet agent -t命令,選擇模式根據客戶端集群規模的大小。根據經驗,一般puppet服務器到各客戶端會建立ssh信任,然后自定義shell腳本,ssh批量讓客戶端執行puppet同步命令。

1)Client01端:

  1. [root@client01 ~]# puppet agent -t 
  2. .....//省略 
  3. Notice: /Stage[main]/Ssh::Config/File[/etc/ssh/sshd_config]/content: 
  4. --- /etc/ssh/sshd_config    2017-08-07 10:28:25.000000000 +0800 
  5. +++ /tmp/puppet-file20180806-5162-jc80yr    2018-08-06 22:25:58.726506429 +0800 
  6. @@ -14,7 +14,7 @@ 
  7.  # SELinux about this change. 
  8.  # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER 
  9.  # 
  10. -#Port 22 
  11. +Port 9922 
  12.  #AddressFamily any 
  13.  #ListenAddress 0.0.0.0 
  14.  #ListenAddress :: 
  15. .....//省略 
  16.  
  17. Client02端:....//省略 
  18. Notice: /Stage[main]/Ssh::Config/File[/etc/ssh/sshd_config]/content: 
  19. --- /etc/ssh/sshd_config    2017-08-07 10:28:25.000000000 +0800 
  20. +++ /tmp/puppet-file20180806-4667-149tj11   2018-08-06 22:27:39.362282788 +0800 
  21. @@ -14,7 +14,7 @@ 
  22.  # SELinux about this change. 
  23.  # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER 
  24.  # 
  25. -#Port 22 
  26. +Port 9922 
  27.  #AddressFamily any 
  28.  #ListenAddress 0.0.0.0 
  29.  #ListenAddress :: 
  30. ......//省略 

2)此時命令在客戶端執行成功,驗證如下:

  1. [root@client01 ~]# cat /etc/ssh/sshd_config | grep Port 
  2. Port 9922 
  3. #GatewayPorts no 

3)查看服務器ssh服務是否重啟,端口是否生效。

  1. [root@client01 ~]# netstat -tunlp | grep ssh 
  2. tcp        0      0 0.0.0.0:9922            0.0.0.0:*               LISTEN      5428/sshd 
  3. tcp6       0      0 :::9922                 :::*                    LISTEN      5428/sshd 

3.服務器推送同步

1)當大規模部署時,采用服務器推送模式。

  1. client: 
  2. [root@client02 ~]# vim /etc/puppet/puppet.conf 
  3. 最后一行添加 
  4.   listen = true   #使puppet監聽8139端口 

2)驗證配置文件auth.conf定義了一些驗證信息及訪問權限

  1. [root@client02 ~]# vim /etc/puppet/auth.conf 
  2. 最后一行添加 
  3. allow *     #允許任何服務端推送 

3)啟動puppet客戶端

  1. [root@client02 ~]# systemctl start puppetagent.service 
  2.  
  3. [root@client02 ~]# cat /etc/ssh/sshd_config  #查看 
  4. ......//省略 
  5. Port 9922 
  6. #AddressFamily any 
  7. #ListenAddress 0.0.0.0 
  8. #ListenAddress :: 
  9. ......//省略 

4)開始往客戶端推送

  1. Master: 
  2. [root@master puppet]# puppet kick client02.test.cn 
  3. Triggering client02.test.cn 
  4. Getting status 
  5. status is success 
  6. client02.test.cn finished with exit code 0 
  7. Finished 

5)校驗結果如下

  1. [root@master puppet]# cat /etc/ssh/sshd_config | grep Port 
  2. #Port 22 
  3. #GatewayPorts no 

6)查看服務器ssh服務是否重啟,端口是否生效。

  1. [root@client02 ~]# netstat -tunlp | grep ssh 
  2. tcp        0      0 0.0.0.0:9922            0.0.0.0:*               LISTEN      4908/sshd 
  3. tcp6       0      0 :::9922                 :::*                    LISTEN      4908/sshd 

實驗成功,僅供參考。

責任編輯:武曉燕 來源: 51CTO博客
相關推薦

2022-08-01 11:33:09

用戶分析標簽策略

2021-04-08 07:37:39

隊列數據結構算法

2023-09-11 08:13:03

分布式跟蹤工具

2023-02-10 09:04:27

2020-02-18 16:20:03

Redis ANSI C語言日志型

2022-06-20 09:01:23

Git插件項目

2017-03-11 22:19:09

深度學習

2022-04-07 10:39:21

反射Java安全

2023-11-18 09:30:42

模型AI

2019-05-14 09:31:16

架構整潔軟件編程范式

2023-10-17 08:15:28

API前后端分離

2020-07-03 08:21:57

Java集合框架

2024-09-23 08:00:00

消息隊列MQ分布式系統

2018-05-22 08:24:50

PythonPyMongoMongoDB

2025-08-07 04:10:00

光模塊AI網絡

2019-04-10 10:43:15

Redis內存淘汰策略

2017-03-13 09:50:46

Python裝飾器

2019-04-02 10:51:29

瀏覽器緩存前端

2020-07-06 08:06:00

Java模塊系統

2019-12-31 09:56:16

Linux 系統 數據
點贊
收藏

51CTO技術棧公眾號

国内久久精品视频| 亚洲影院久久精品| 久久久久久久久久久免费 | 成人高h视频在线| 日韩欧美看国产| 亚洲日本中文字幕区| 热这里只有精品| 中文一区一区三区免费在线观看| 久久久91精品国产一区不卡| 麻豆最新免费在线视频| 亚洲码国产岛国毛片在线| 蜜臀精品一区二区| 日韩国产在线观看一区| 亚洲最大成人免费视频| 大奶在线精品| 在线视频中文亚洲| 福利影院在线看| 欧美色涩在线第一页| 交视频在线观看国产| 成熟亚洲日本毛茸茸凸凹| 欧美日韩一区二区视频在线| 五月天久久777| 久久久久久久一区二区三区| 三上悠亚国产精品一区二区三区| 91精品在线免费观看| 精品999视频| 欧美日韩国产一中文字不卡| 国产日本韩国在线播放| 中文字幕乱码一区二区免费| 干日本少妇首页| 成人午夜视频在线观看| 亚洲一区免费看| 久久综合网络一区二区| 国产麻豆日韩| 好看的亚洲午夜视频在线| 国产精品久久久久久久久久99| 亚洲一区二区三区在线免费| 久久激情视频久久| 国产精品高清一区二区| 日韩中文字幕在线播放| 国产精品久久久久久久久免费高清| 国产婷婷色综合av蜜臀av| 55av亚洲| 国产一区二区黄| 日韩一级视频| 久久av在线播放| jizz18欧美18| 国产99在线|中文| 精品视频免费| 91精品久久久久久蜜桃| 亚洲先锋成人| 精品国产一区二区三区日日嗨| 亚洲东热激情| 日韩欧美电影一区二区| 精品亚洲成a人| 日日碰狠狠添天天爽超碰97| 2022国产精品视频| 99re精彩视频| 午夜成人免费视频| av黄色在线观看| 欧美一区二区福利在线| 性欧美freesex顶级少妇| 亚洲欧美日韩天堂一区二区| 天堂综合在线播放| 热草久综合在线| 欧美视频官网| 一本一道久久久a久久久精品91| 国产精品性做久久久久久| 青青青在线视频播放| 日本一区二区久久| 在线天堂av| 欧美一区二区福利在线| 春暖花开亚洲一区二区三区| 久久99精品久久久久久噜噜| 国产成人黄色| 久久久久久国产精品免费免费| 久久99热国产| **三级三级97片毛片| 激情亚洲一区二区三区四区| 伊人福利在线| 欧美成人国产va精品日本一级| 亚洲瘦老头同性70tv| 99porn视频在线| 精品夜夜嗨av一区二区三区| 午夜国产一区二区三区| 色播五月激情综合网| 欧美第一视频| 国产欧美精品在线| 捆绑调教一区二区三区| 成人午夜剧场免费观看完整版| 色婷婷综合久色| 国产污视频在线播放| 欧美亚洲免费电影| 美女久久网站| 成人免费视频77777| 欧美日韩国产精品成人| 精品欧美日韩精品| 国产精品日日做人人爱| 亚洲日本天堂| 亚洲综合av影视| 另类春色校园亚洲| 国产视频福利一区| 久久不见久久见中文字幕免费 | 国产经典欧美精品| 97人洗澡人人免费公开视频碰碰碰| 中文字幕在线看片| 亚洲欧美激情精品一区二区| 精品久久对白| 国产精品com| 免费欧美激情| 精品国产欧美成人夜夜嗨| 在线成人动漫av| 日韩国产精品一区二区| 亚洲一区日韩精品中文字幕| 国产日韩一区二区在线观看| 色综合天天综合网国产成人综合天| 伊人成综合网站| 91久久精品国产| 26uuu欧美日本| av在线看片| 国产精品久久久久久亚洲影视| 国产精品一区二区三区四区| 久色视频在线| 欧美在线播放视频| heyzo一本久久综合| gogogogo高清视频在线| 国产精品中文字幕在线观看| 91浏览器在线视频| 芒果视频成人app| 欧美日韩国产综合在线| 狠狠综合久久av一区二区小说| 一区二区三区四区高清视频 | 亚州欧美日韩中文视频| 精品亚洲porn| 中文字幕有码在线观看| 成人中文字幕在线观看| 亚洲色图一区二区三区| 色999韩欧美国产综合俺来也| 日本一区二区在线| 欧美日韩国产美女| 欧美精品不卡| 天堂av电影在线观看| 国产精品日韩久久久久| 亚洲精品日韩一| 亚洲自拍电影| 成人亚洲成人影院| 欧美激情精品久久久久久大尺度| 懂色av一区二区三区免费观看| 丁香花在线影院| 亚洲精品日韩精品| 精品国产一区久久| 秋霞午夜av一区二区三区| 黄页视频在线播放| 九九九久久久| 日韩一区二区免费在线电影| 久久精品道一区二区三区| av网站在线免费看推荐| 日本在线观看一区| 精品欧美一区二区久久| 青青国产91久久久久久| hd国产人妖ts另类视频| 亚洲一区二区在| 一区二区三区久久精品| 91在线云播放| 开心激情综合| 992tv在线| 国产精品一区二区三区精品| 777亚洲妇女| 免费不卡在线视频| 亚洲a∨精品一区二区三区导航| 国风产精品一区二区| 中文字幕日韩在线观看| 久久麻豆一区二区| 精品精品精品| 日本福利片在线| 欧美激情视频一区二区三区| 精品国产乱码久久久久久久 | 国产精品盗摄久久久| 五月天视频一区| 99热这里只有精品8| 国产白丝在线观看| 精品国产一区二区三区无码| 久久99精品久久久久久青青91 | 国产精品美女久久| 在线视频欧美区| 九色综合国产一区二区三区| 亚洲色图综合| 美女胸又www又黄的网站| 成人黄色免费片| 91.com在线观看| 成人午夜激情视频| 女人av一区| a视频在线观看| 日韩av综合在线观看| 国产成人一区二区在线| 欧美四级电影在线观看| 国产精品自拍在线| 免费av一区| 欧洲成人综合网| 久热精品在线观看视频|