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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 使用文件資源遞歸地分發整個目錄樹 > To understand recursion, you must first understand recursion. > > — Saying 當你需要使用 Puppet 分發一批位于同一目錄下的多個文件時, 就應該考慮使用文件資源的遞歸特性來替代逐個文件的分發。 如果你在一個目錄上設置了 recurse 參數, Puppet 會復制此目錄及其子目錄中的所有文件到節點目錄,例如: ``` file { "/usr/lib/nagios/plugins/custom": source => "puppet:///modules/nagios/plugins", require => Package["nagios-plugins"], recurse => true, } ``` #### 操作步驟 1. 在 Puppet 倉庫中的適當位置創建如下的目錄樹: ``` # mkdir /etc/puppet/modules/admin/files/tree # mkdir /etc/puppet/modules/admin/files/tree/a # mkdir /etc/puppet/modules/admin/files/tree/b # mkdir /etc/puppet/modules/admin/files/tree/c # mkdir /etc/puppet/modules/admin/files/tree/a/1 ``` 2. 添加如下代碼到你的配置清單: ``` file { "/tmp/tree": source =&gt; "puppet:///modules/admin/tree", recurse =&gt; true, } ``` 3. 運行 Puppet: ``` # puppet agent --test info: Retrieving plugin info: Caching catalog for cookbook.bitfieldconsulting.com info: Applying configuration version '1304768523' notice: /Stage[main]//Node[cookbook]/File[/tmp/tree]/ensure: created notice: /File[/tmp/tree/a]/ensure: created notice: /File[/tmp/tree/a/1]/ensure: created notice: /File[/tmp/tree/b]/ensure: created notice: /File[/tmp/tree/c]/ensure: created notice: Finished catalog run in 1.25 seconds ``` #### 工作原理 如果一個 file 資源上設置了 recurse 參數,而且此資源又是個目錄,那么 Puppet 不僅會部署目錄自身,而且還會分發其中的所有內容(包括子目錄及其文件)。 對于要在節點上部署目錄樹及其所有的文件來說,這是一個很好的方法。 也可以用這種方法使用一個單獨的資源快速創建大量路徑。 #### 更多用法 有時你要部署一些文件到一個已經存在的目錄,但是首先要移除該目錄下的所有沒被 Puppet 管理的文件。 例如,Ubuntu 的 /etc/apt/sources.list.d 目錄下的文件, 你可能想要確保沒有文件存在,即刪除那些不是來自 Puppet 的文件。 purge 參數可以為我們實現這個功能。在 Puppet 中定義如下的目錄的 file 資源: ``` file { "/etc/apt/sources.list.d": ensure => directory, recurse => true, purge => true, } ``` 聯合使用 recurse 和 purge 將會移除 /etc/apt/sources.list.d 目錄及其子目錄下的所有不被 Puppet 管理的文件。 然后你就可以使用獨立的 file 資源將自己的文件部署到 /etc/apt/sources.list.d 目錄: ``` file { "/etc/apt/sources.list.d/bitfield.list": content => "deb http://packages.bitfieldconsulting.com/lucid-main\n", } ``` 如果有一個子目錄,其中包含了你不想 purge 的文件, 可以將此子目錄作為 Puppet 的一個 file 資源單獨進行定義, 這樣這個子目錄中的內容就會保留: ``` file { "/etc/exim4/conf.d/acl": ensure => directory, } ``` > ![注記](https://box.kancloud.cn/2016-05-12_5733eec619643.png) > 要知道,至少在 Puppet 的當前實現中,采用遞歸方式復制文件相當慢而且會占用大量服務器的內存。 如果要部署的文件不經常改變,使用 tarball 進行部署比使用這種遞歸方式會更好。
                  <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>

                              哎呀哎呀视频在线观看