3

私は、Puppetを使用してスレーブデータベース間の構成を標準化するために、MySQLのmy.cnfをテンプレート化するという任務を負っています。現在、私はinnodb設定をターゲットにしています。メモリ、ディスク、プロシージャなどのハードウェア仕様に対して安全に計算できる構成オプションはありますか?

4

3 に答える 3

4

事実が必要です。

puppet:/etc/puppet/modules/master/lib/facter$ cat disks.rb
#!/usr/bin/ruby
#require 'facter'

mount = `/bin/mount`
disks=Array.new 
mount.split("\n").each_with_index { | disk,i |
  unless disk.scan(/ext3|simfs|reiserfs|xfs/).empty?
    d=disk.split[2]
    disks.push d
    disks.push ','
 end
}

Facter.add('disks') do
 setcode do
   disks
 end 
end 

`そしてpuppet.ppではファクト$disksを使用します

#add disk check to zabbix
exec { "create_host":
    command => "/bin/echo $fqdn $ipaddress $disks | do_work",
    require => File["/root/ticket"],
    subscribe => File["/root/ticket"],
    refreshonly => true,
}

パペットラボの「ファクトへのカスタムファクトの追加」を参照してください。

于 2011-03-24T19:45:27.273 に答える
2

計算をerbファイルに移動したいと思います。たとえば、key_buffer_sizeをシステムRAMの1/4に設定することをお勧めします。

set-variable = key_buffer_size=<%= (memorysize.split(' ')[0].to_i * 1024) / 4 -%>M

Facterから入手できる他の変数(プロセッサの数など)を操作して、上記のように他の変数を設定するための独自の計算を考え出すことができなかった理由はありません。

ERBはRubyのサブセットを効果的に提供するため、Rubyで実行できるほとんどすべてのことをERBで実行できることを忘れないでください。

于 2011-07-19T19:25:46.543 に答える
0

puppetにはerbテンプレートがあり、erbテンプレートはホスト名やメモなどのファクト値を使用できます。そして、あなたはあなたに自己ファクトリーシェルスクリプトを書くことができます。

于 2011-03-09T05:41:31.873 に答える