<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 使用 Rake 部署變更 每個人的生活都離不開鍵盤,但我討厭不必要的敲打。 如果你按照 [使用版本控制](#ch01sec01) 一節所描述的工作流程工作, 可以添加一些自動化任務使這個處理過程更加容易。 有許多工具可以幫助我們在遠程機器上執行命令,包括 Capistrano([https://github.com/capistrano/capistrano](https://github.com/capistrano/capistrano))和 Fabric([https://github.com/fabric/fabric](https://github.com/fabric/fabric)),但在本例中,我們將使用 Rake([http://rake.rubyforge.org/](http://rake.rubyforge.org/))。 #### 準備工作 若你還沒有安裝 Rake, 運行如下的命令: ``` apt-get install rake ``` 執行這個命令,你需要一個 Internet 連接。 #### 操作步驟 1. 在你的 Puppet 配置清單工作副本的頂級目錄下創建一個名為 Rakefile 的文件,例如: ``` john@laptop:~/puppet-work$ vi Rakefile ``` 文件內容看上去像這樣: ``` PUPPETMASTER = 'cookbook' SSH = 'ssh -t -A' task :deploy do sh "git push" sh "#{SSH} #{PUPPETMASTER} 'cd /etc/puppet && sudo git pull'" end ``` 2. 當你在本地副本上應用 Puppet 配置清單的改動時,可以簡單地運行命令: ``` $ rake deploy ``` 3. Rake 會更新遠程 Git 倉庫并刷新 Puppetmaster 的工作目錄副本: ``` $ git push Counting objects: 4, done. Delta compression using 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 452 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To ssh:/ /git@cookbook.bitfieldconsulting.com/var/git/cookbook 561e5a6..a8b8c76 master -&gt; master ssh -A -l root cookbook 'cd /etc/puppet && git pull' From ssh://cookbook.bitfieldconsulting.com/var/git/cookbook 561e5a6..a8b8c76 master -&gt; origin/master Updating 561e5a6..a8b8c76 Fast-forward Rakefile | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) create mode 100644 Rakefile ``` 4. 你還可以添加一個 Rake 任務用于在客戶端上運行 Puppet: ``` task :apply =&gt; [:deploy] do client = ENV['CLIENT'] sh "#{SSH} #{client} 'sudo puppet agent --test'" do |ok, status| puts case status.exitstatus when 0 then "Client is up to date." when 1 then "Puppet couldn't compile the manifest." when 2 then "Puppet made changes." when 4 then "Puppet found errors." end end end ``` 5. 當你要在指定客戶端上測試你所做的變更時,可以運行如下的命令: ``` rake CLIENT=cookbook apply ``` 替換 cookbook 為你客戶端的名字,或設置 CLIENT 環境變量,使 Rake 知道你要在哪個客戶機上運行 Puppet。 ``` info: Caching catalog for cookbook info: Applying configuration version '1292865016' info: Creating state file /var/lib/puppet/state/state.yaml notice: Finished catalog run in 0.03 seconds ``` 6. 如果你只想查看 Puppet 將會做些什么,而不是實際應用這些變更, 你可以使用 --noop 標志: ``` task :noop =&gt; [:deploy] do client = ENV['CLIENT'] sh "#{SSH} #{client} 'sudo puppet agent --test --noop'" end ``` 7. 現在你可以運行: ``` $ rake noop ``` 這將會顯示一個變更預覽。 #### 工作原理 一個 Rakefile 文件由若干任務組成,任務由關鍵字 task 來標識。 任務定義了一系列的操作步驟,在本例中,使用一系列的 shell 命令推送你的配置清單到主版本倉庫, 然后更新 Puppetmaster 上的工作副本。 任務可以互相引用,因為一個任務可能會依賴其它任務。例如,在我們的 Rakefile 中, apply 任務引用了 deploy 任務,每當你運行 rake apply ,Rake 會先確保完成 deploy 任務,然后再執行 apply 任務。 #### 更多用法 你可以擴展這個 Rakefile 實現更多的自動化任務,包括在更新 Puppet 配置清單之前運行語法檢查, 甚至可以在引導啟動過程中使用 Puppet 來初始化你的新機器。 Rake 是一個功能強大的工具,在使用 Puppet 管理大型網絡時會為我們提供很大的幫助。 #### 參見本書 * 本章的 [使用版本控制](#ch01sec01) 一節 * 本章的 [創建去中心化的分布式 Puppet 架構](#ch01sec10) 一節 * 本章的 [使用提交鉤子](#ch01sec02) 一節
                  <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>

                              哎呀哎呀视频在线观看