PuppetのセットアップのためのMySQLのmy.cnfをテンプレート化します

StackOverflow https://stackoverflow.com/questions/5046244

  •  15-11-2019
  •  | 
  •  

質問

Puppetを使用してスレーブデータベースの中で設定を標準化しようとすると、MySQLのmy.cnfをテンプレート化しています。今、InnoDBの設定をターゲットにしています。 メモリ、ディスク、PROCSなどのハードウェア仕様に対して安全に計算できる設定オプションはありますか?

役に立ちましたか?

解決

You need facter.

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 

` and in puppet.pp i use facts $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,
}

see "Adding Custom Facts to Facter" on puppet labs.

他のヒント

I'd be tempted to move the calculations into the erb file, for example the key_buffer_size is recommended to be set to 1/4 of the Systems RAM:

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

there is no reason why you couldn't work on other variables available from Facter (number of processors etc) and come up with your own calculations to set other variables as above.

Remember ERB effectively provides a subset of Ruby so almost anything you can do in Ruby can be done in ERB.

puppet have the erb template, erb template can use the facter value ,like hostname or memor. and you can write you self facter shell script.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top