<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 能做微創手術嗎? 通常,我們不希望將整個配置文件交由 Puppet 管理而僅僅是在配置文件中添加某項設置?—?尤其是如果該文件是由別人管理,我們不能覆蓋它的情況。 一種簡單而有用的方法是,如果配置文件中不存在指定的行就添加這行配置。例如: 添加一個內核模塊名到配置文件 /etc/modules 告知內核在啟動時加載此模塊。 你可以使用一個 exec 資源達成此任務。下面的例子將展示如何使用 exec 向一個文本文件追加一行配置。 #### 操作步驟 1. 使用如下內容創建 /etc/puppet/manifests/utils.pp 文件: ``` define append_if_no_such_line($file, $line) { exec { "/bin/echo '$line' &gt;&gt; '$file'": unless =&gt; "/bin/grep -Fx '$line' '$file'", } } ``` 2. 添加如下行到 /etc/puppet/manifests/site.pp 文件: ``` import "utils.pp" ``` 3. 添加如下代碼到你的配置清單: ``` append_if_no_such_line { "enable-ip-conntrack": file =&gt; "/etc/modules", line =&gt; "ip_conntrack", } ``` 4. 運行 Puppet: ``` # puppet agent --test info: Retrieving plugin info: Caching catalog for cookbook.bitfieldconsulting.com info: Applying configuration version '1303649606' notice: /Stage[main]//Node[cookbook]/Append_if_no_such_ line[enable-ip-conntrack]/Exec[/bin/echo 'ip_conntrack' &gt;&gt; '/etc/ modules']/returns: executed successfully notice: Finished catalog run in 1.22 seconds ``` #### 工作原理 exec 資源將追加指定的文本 $line 到文件 $file,除非它已經存在: ``` exec { "/bin/echo '$line' >> '$file'": unless => "/bin/grep -Fx '$line' '$file'", ``` 現在,append_if_no_such_line 資源已經可以在你的配置清單中使用了。 在本例中,我們已經使用它確保 /etc/modules 文件(此文件指定在啟動過程中需要加載哪些內核模塊)包含如下的行: ``` ip_conntrack ``` #### 更多用法 類似的,你可以使用 define 函數對文本文件執行其他細小的操作。例如, 下面的代碼片段可以讓你在文本文件中執行查找和替換的操作: ``` define replace_matching_line( $match, $replace ) { exec { "/usr/bin/ruby -i -p -e 'sub(%r{$match}, \"$replace\")' $name": onlyif => "/bin/grep -E '$match' $name", logoutput => on_failure, } } replace_matching_line { "/etc/apache2/apache2.conf": match => "LogLevel .*", replace => "LogLevel debug", } ``` #### 參見本書 * 本章的 [使用 Augeas 自動修改配置文件](#ch05sec02) 一節
                  <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>

                              哎呀哎呀视频在线观看