<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 創建 Facter 的自定義 fact 雖然 Facter 內置的 facts 很有用,但實際上添加你自己的 facts 也是很容易的。 例如,如果你的機器位于不同的數據中心或托管提供商,你可以為此目的添加一個 **自定義 fact** 以便讓 Puppet 決定是否需要應用一些本地設置(例如,本地 DNS 服務器)。 #### 準備工作 1. 在配置文件 puppet.conf 中開啟 pluginsync 選項: ``` [main] pluginsync = true ``` 2. 為 fact 創建一個目錄。此目錄位于相應的模塊目錄中,目錄名為 lib/facter。 例如,你可以使用目錄 modules/admin/lib/facter。你創建的任何自定義 facts 都位于此目錄下并且 Puppet 會將其同步到客戶端。 #### 操作步驟 1. 創建一個名為 hello.rb 的包含如下內容的腳本文件: ``` Facter.add(:hello) do setcode do "Hello, world" end end ``` 2. 在客戶端運行 Puppet。這會將 fact 同步到客戶機: ``` # puppet agent --test info: Retrieving plugin notice: /File[/var/lib/puppet/lib/facter/hello.rb]/ensure: defined content as '{md5}7314e71d35db83b563a253e741121b1d' info: Loading downloaded plugin /var/lib/puppet/lib/facter/hello.rb info: Loading facts in hello info: Loading facts in hello info: Loading facts in hello info: Loading facts in hello info: Connecting to sqlite3 database: /var/lib/puppet/state/ clientconfigs.sqlite3 info: Caching catalog for cookbook.bitfieldconsulting.com info: Applying configuration version '1297258039' notice: Finished catalog run in 0.57 seconds ``` 3. 通過直接運行 Facter 命令的方式檢測 fact: ``` # facter hello Hello, world ``` 4. 現在你可以在一個 Puppet 的配置清單中應用這個自定義的 fact: ``` notify { $hello: } ``` 5. 當你運行 Puppet,對自定義 fact 的引用將返回其對應的值: ``` notice: Hello, world ``` #### 工作原理 Facter 內置的 facts 與我們剛剛創建的自定義 fact 相同的方式定義。 這種架構使添加和修改 facts 更為方便,并為你提供了一種在配置清單中讀取主機信息的標準方法。 Facts 可以包含任何 Ruby 代碼,語句塊 setcode do … end 中最后算出的值將作為 fact 的返回值。 例如,你可以做個更有用的 fact,下面的代碼將返回當前登錄的用戶數: ``` Facter.add(:users) do setcode do %x{/usr/bin/who |wc -l}.chomp end end ``` 其輸出是: ``` notice: 2 users logged in ``` #### 更多用法 你可以擴展 facts 使用以創建一個完全 “無節點定義(nodeless)” 的 Puppet 配置: 換言之,Puppet 可以僅基于 facts 的結果決定將哪些資源應用到一臺機器。 Jordan Sissel 寫了篇介紹這種方法的文章: [http://www.semicomplete.com/blog/geekery/puppet-nodeless-configuration.html](http://www.semicomplete.com/blog/geekery/puppet-nodeless-configuration.html) 。 在網絡上有許多可用的自定義 facts 的例子,包括 Cosimo Streppone 撰寫的關于 “根據 IP 地址決定數據中心的位置” 的文章,網址為: [http://my.opera.com/cstrep/blog/puppet-custom-facts-and-master-less-puppet-deployment](http://my.opera.com/cstrep/blog/puppet-custom-facts-and-master-less-puppet-deployment) 。
                  <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>

                              哎呀哎呀视频在线观看