<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                #### Puppet基礎篇6-Puppet更新方式的選型 基于C/S架構的Puppet更新方式一般有兩種,一種是Agent端設置同步時間主動去PuppetMaster端拉取配置,另一種是通過PuppetMaster端使用`puppet kick`命令或者借助mcollctive觸發更新配置,兩種方式適應不同的生產環境,各具特色。 ### 一、主動更新 主動更新就是節點運行的puppet守護進程到預設的時候后自動去和puppetmaster進行交互直至更新完成的過程。這種更新方式不易控制,主要表現在以下幾個方面: **優點:** - 節點定期主動更新,無論是誰將節點被puppet管理的配置更改了,都會在規定的時間內自動修復,無須管理員登錄查看。 - 環境搭建簡單,不需要很復雜的架構,puppet本身C/S架構便可以完成。 ... **缺點:** - 節點數量過大的情況下同時會向puppetmaster端發起更新請求,會造成puppetmaster性能瓶頸。當然,也有一些解決方案比如設置任務計劃,節點分批進行更新。 - 由于節點會定期向puppetmaster端提取配置進行更新,這要求puppetmaster端的環境要足夠的安全。否則,任何人上去修改puppet模板都會造成節點同步更新,如果有人寫了可執行資源“rm -rf /”,那損失就大了。 - 不能手動控制那些服務器需要更新,那些不需要更新。 ... 自動更新方式配置很簡單的,只需要在節點配置文件puppet.conf添加runinterval字段即可實現自動更新,以下步驟簡單測試下 **注:**默認情況下,puppet.conf配置文件中是沒有runinterval字段的,如果不配置,默認是每隔30分鐘自動同步一次。 **1、添加runinterval字段** 為了方便測試,可設置為10秒 ~~~ [root@agent1 ~]# vim /etc/puppet/puppet.conf [main] logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/ssl [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = puppetmaster.kisspuppet.com certname = agent1_cert.kisspuppet.com runinterval = 10 #設置同步的間隔時間,單位為秒 ~~~ **2、啟動puppetagent服務** ~~~ [root@agent1 ~]# /etc/init.d/puppet start Starting puppet: [ OK ] ~~~ **3、打開message日志查看同步狀態**可以看到日志里面每隔10秒鐘agent1向puppetmaster同步一次 ~~~ [root@agent1 ~]# tailf /var/log/messages Mar 11 23:39:42 agent1 kernel: ide: failed opcode was: 0xec Mar 11 23:39:42 agent1 smartd[3110]: Device: /dev/hdc, not ATA, no IDENTIFY DEVICE Structure Mar 11 23:39:42 agent1 smartd[3110]: Device: /dev/sda, opened Mar 11 23:39:42 agent1 smartd[3110]: Device: /dev/sda, IE (SMART) not enabled, skip device Try 'smartctl -s on /dev/sda' to turn on SMART features Mar 11 23:39:42 agent1 smartd[3110]: Monitoring 0 ATA and 0 SCSI devices Mar 11 23:39:42 agent1 smartd[3112]: smartd has fork()ed into background mode. New PID=3112. Mar 11 23:39:42 agent1 avahi-daemon[3076]: Server startup complete. Host name is agent1.local. Local service cookie is 773321440. Mar 11 23:44:11 agent1 puppet-agent[3210]: Reopening log files Mar 11 23:44:12 agent1 puppet-agent[3210]: Starting Puppet client version 2.7.25 Mar 11 23:44:16 agent1 puppet-agent[3210]: Finished catalog run in 1.53 seconds Mar 11 23:44:29 agent1 puppet-agent[3210]: Finished catalog run in 0.96 seconds Mar 11 23:44:40 agent1 puppet-agent[3210]: Finished catalog run in 0.20 seconds Mar 11 23:44:51 agent1 puppet-agent[3210]: Finished catalog run in 0.24 seconds Mar 11 23:45:02 agent1 puppet-agent[3210]: Finished catalog run in 0.21 seconds Mar 11 23:45:13 agent1 puppet-agent[3210]: Finished catalog run in 0.22 seconds ~~~ **4、通過命令進行測試** 同樣,每隔10秒會同步一次 ~~~ [root@agent1 ~]# /etc/init.d/puppet stop Stopping puppet: [ OK ] [root@agent1 ~]# puppet agent --verbose --no-daemonize notice: Starting Puppet client version 2.7.25 info: Caching catalog for agent1_cert.kisspuppet.com info: Applying configuration version '1394359075' notice: Finished catalog run in 0.21 seconds info: Caching catalog for agent1_cert.kisspuppet.com info: Applying configuration version '1394359075' notice: Finished catalog run in 0.20 seconds info: Caching catalog for agent1_cert.kisspuppet.com info: Applying configuration version '1394359075' notice: Finished catalog run in 0.20 seconds info: Caching catalog for agent1_cert.kisspuppet.com info: Applying configuration version '1394359075' notice: Finished catalog run in 0.21 seconds info: Caching catalog for agent1_cert.kisspuppet.com info: Applying configuration version '1394359075' notice: Finished catalog run in 0.21 seconds ~~~ ### 二、推送更新 推送更新就是通過puppet kick或者mcollective來控制節點什么時候向puppetmaster端獲取配置變更信息。這種方式比較容易控制,主要表現在以下幾個方面: **優點:** - 非常容易控制節點的更新周期 - 安全性比較高,每次更新之前可先檢查好代碼后再更新 - 可以針對某一個cluster(一組服務器)進行推送更新,靈活性很強。 - 擴展性很強,可整合各種其他平臺 ... **缺點:** - 環境搭建比較復雜,需要部署N多東西 - agent端配置被篡改后,需要手動觸發才能夠恢復,不能夠及時恢復 ... **1、puppet kick方式** puppet kick是是通過puppetmaster端的命令觸發的方式進行更新的,由于其鎖的問題很難解決外加上主機單元控制不是很靈活,逐漸被拋棄了,puppetlabs也看到了這一點,因此收購了mcollecitve。當然,這種方式在很多企業中還在用,這里給幾個大家方式參考: [http://purplegrape.blog.51cto.com/1330104/1179358](http://purplegrape.blog.51cto.com/1330104/1179358) [http://dreamfire.blog.51cto.com/418026/1279878](http://dreamfire.blog.51cto.com/418026/1279878) **2、mcollective觸發方式**需要搭建mcollective+MQ架構,搭建好了之后通過mco命令將puppet命令傳輸至MQ分配到一組節點上去,關于mcollective+MQ架構搭建會在第三部分詳細講解,也可以參考之前寫的一篇文章 [http://kisspuppet.com/2013/11/10/mcollective-middleware/](http://kisspuppet.com/2013/11/10/mcollective-middleware/) ~~~ [root@webui ~]# mco puppet -v runonce Discovering hosts using the mc method for 2 second(s) .... 3 * [ ============================================================> ] 3 / 3 node3.rsyslog.org : OK {:summary=> "Started a background Puppet run using the 'puppet agent --onetime --daemonize --color=false --splay --splaylimit 30' command"} node2.rsyslog.org : OK {:summary=> "Started a background Puppet run using the 'puppet agent --onetime --daemonize --color=false --splay --splaylimit 30' command"} node1.rsyslog.org : OK {:summary=> "Started a background Puppet run using the 'puppet agent --onetime --daemonize --color=false --splay --splaylimit 30' command"} ---- rpc stats ---- Nodes: 3 / 3 Pass / Fail: 3 / 0 Start Time: Tue Mar 11 17:40:56 +0800 2014 Discovery Time: 2003.85ms Agent Time: 1132.44ms Total Time: 3136.29ms ~~~ **3、封裝成WebUI的觸發更新** Kermit架構--一個非常完美的基于MCollective和Puppet,并結合Django和Rest組成的Web框架(第四部分會講) 搭建完成之后的操作界面 選中puppet插件 執行puppet推送動作 執行過程 顯示結果
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看