国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

puppet的facter使用方法

發(fā)布時(shí)間:2021-07-27 11:45 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 編程語(yǔ)言 歡迎投稿:712375056

這篇文章主要講解了“puppet的facter使用方法”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“puppet的facter使用方法”吧!

在puppet中有一個(gè)很重要的組件template,配合facter模塊可以實(shí)現按需配置的功能。

facter可以看做是在client端用來(lái)收集信息的一個(gè)功能組件。其代碼目錄可以通過(guò)

facter |grep dir
rubysitedir => /usr/lib/ruby/site_ruby/1.8  

查看(rb文件),每一個(gè)變量對應一個(gè)rb文件,rb文件的結構也比較簡(jiǎn)單,自定義的話(huà)也比較方便。

下面簡(jiǎn)單說(shuō)幾個(gè)應用實(shí)例:

1.在之前做web自動(dòng)化的時(shí)候,對squid的內存分配做到按照的內存配置做自動(dòng)化的分配。

cache_mem<%=(memorysize.to_i/2*1024) %> MB

2.在做hadoop的mapred的slot控制時(shí),按照hadoop的mem做slot的分配

<property>
  <name>mapred.tasktracker.map.tasks.maximum</name>
  <value><% if memorysize.split(' ')[0].to_i <= 20 %><%=9%><% elsif memorysize.split(' ')[0].to_i > 30 %><%=14%><% end %>
   </value>
</property>
<property>
  <name>mapred.tasktracker.reduce.tasks.maximum</name>
  <value>
   <% if memorysize.split(' ')[0].to_i <= 20 %><%=5%>
   <% elsif memorysize.split(' ')[0].to_i > 30 %><%=9%><% end %>
   </value>
</property>
<property>
  <name>mapred.child.java.opts</name>
  <value><% if memorysize.split(' ')[0].to_i <= 20 %><%="-Xmx1024m -Xms1024m -Xmn256m -XX:SurvivorRatio=6 -XX:MaxPermSize=128m"%>
   <% elsif memorysize.split(' ')[0].to_i > 30 %><%="-Xmx1280m -Xms1280m -Xmn256m -XX:SurvivorRatio=6 -XX:MaxPermSize=128m"%><% end %>
   </value>
  <final>true</final>
</property

3.zabbix配置

因為使用了active的模式,同時(shí)在自動(dòng)添加監控的時(shí)候,通過(guò)zabbix_get來(lái)獲取hostname的信息,因此zabbix的配置中,主機名必須是fqdn的格式。

Hostname=<%=fqdn %>

4.一個(gè)關(guān)于fqdn取值的實(shí)例

在幫qa做puppet的時(shí)候,agent端報錯:

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template zabbix/zabbix_agentd.conf.erb:
  Filepath: /usr/lib/ruby/site_ruby/1.8/puppet/parser/templatewrapper.rb
  Line: 67
  Detail: Could not find value for 'fqdn' at 1:/etc/puppet/templates/zabbix/zabbix_agentd_new.conf.erb
at /etc/puppet/modules/zabbix/manifests/new.pp:44 on node vlp-flume-111-25
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run


可以看到是由于fqdn 獲取問(wèn)題導致。

1)查看獲取fqdn的相關(guān)代碼:
/usr/lib/ruby/site_ruby/1.8/facter/fqdn.rb

host = Facter.value(:hostname)
domain = Facter.value(:domain)
if host and domain
  [host, domain].join(".")


#先取出domain和host,然后做鏈接操作,如果一個(gè)為空,則返回nil

2)hostname的取值

/usr/lib/ruby/site_ruby/1.8/facter/hostname.rb

hostname = nil
if name = Facter::Util::Resolution.exec('hostname')
  if name =~ /(.*?)\./             
    hostname = $1
  else
    hostname = name
  end

#對hostname的執行結果做正則處理

3)domain的取值

/usr/lib/ruby/site_ruby/1.8/facter/domain.rb

    hostname_command = 'hostname'
    can_do_hostname_f = Regexp.union /Linux/i, /FreeBSD/i, /Darwin/i
    hostname_command = 'hostname -f' if Facter.value(:kernel) =~ can_do_hostname_f
           
    if name = Facter::Util::Resolution.exec(hostname_command) \
      and name =~ /.*?\.(.+$)/
      return_value = $1          #取.之后的數據
    elsif domain = Facter::Util::Resolution.exec('domainname') \
      and domain =~ /.+/
      return_value = domain   #獲取dnsdomainname的數據
    elsif FileTest.exists?("/etc/resolv.conf")
      domain = nil
      search = nil
      File.open("/etc/resolv.conf") { |file|     #或者/etc/resolv.conf中domain|search的配置
        file.each { |line|
          if line =~ /^\s*domain\s+(\S+)/
            domain = $1
          elsif line =~ /^\s*search\s+(\S+)/
            search = $1
          end
        }
      }
      return_value ||= domain
      return_value ||= search
    end
    return_value = '' if return_value.nil?
    return_value.gsub(/\.$/, '')
  end
end

而這臺機器中,host只有主機名,沒(méi)有域名的設置,并且/etc/resolv.conf的數字為空,所以最終fqdn的值為空。

解決方法:規范主機名的格式。(因為active模式下要求hosts表中的host需要和zabbix配置一樣,如果是更改/etc/resolv.conf的話(huà),可能會(huì )導致zabbix數據獲取不到值)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

秋霞理论理论福利院久久| 99精品国产高清一区二区麻豆| 大屁股熟女白浆一区二区| 成人午夜精品无码区久久| 不卡无码人妻一区二区三区| 玩弄放荡人妇系列Av在线网站|