模板化 MySQL 的 my.cnf 以在 Puppet 中进行设置

发布于 2024-10-18 09:07:48 字数 112 浏览 1 评论 0原文

我的任务是对 MySQL 的 my.cnf 进行模板化,尝试使用 Puppet 标准化从属数据库之间的配置。现在,我的目标是 innodb 设置。 是否有可以根据内存、磁盘和进程等硬件规格安全计算的配置选项?

I have been tasked with templating MySQL's my.cnf in an attempt standardize the configuration amongst the slave databases using Puppet. Right now, I'm targeting the innodb settings.
Are there configuration options that can safely be calculated against hardware specifications such as memory, disk and procs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

唱一曲作罢 2024-10-25 09:07:48

你需要事实。

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,
}

请参阅 puppet 实验室上的“将自定义事实添加到 Facter”。

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.

淡淡離愁欲言轉身 2024-10-25 09:07:48

我很想将计算移至 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 中完成。

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.

娇妻 2024-10-25 09:07:48

puppet 有 erb 模板,erb 模板可以使用事实值,如主机名或内存。你可以编写你自己的 shell 脚本。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文