Шаблон MySQL my.cnf для настройки в Puppet - PullRequest
3 голосов
/ 18 февраля 2011

Мне было поручено создать шаблон MySQL my.cnf в попытке стандартизировать конфигурацию ведомых баз данных с помощью Puppet. Прямо сейчас я нацеливаюсь на настройки innodb. Существуют ли параметры конфигурации, которые можно безопасно рассчитать по аппаратным характеристикам, таким как память, диск и процессоры?

Ответы [ 3 ]

4 голосов
/ 24 марта 2011

Вам нужен фактор.

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 я использую факты $ disc

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

см. «Добавление пользовательских фактов в Facter» в кукольных лабораториях.

2 голосов
/ 19 июля 2011

У меня возникнет соблазн переместить вычисления в файл erb, например, для key_buffer_size рекомендуется установить значение 1/4 ОЗУ системы:

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

нет никаких причин, по которым выне может работать с другими переменными, доступными из Facter (количество процессоров и т. д.), и придумать свои собственные расчеты для установки других переменных, как указано выше.

Помните, что ERB эффективно предоставляет подмножество Ruby, поэтому практически все, что вы можете сделатьв Ruby можно сделать в ERB.

0 голосов
/ 09 марта 2011

puppet имеет шаблон erb, шаблон erb может использовать значение facter, например имя хоста или память. и вы можете написать собственный скрипт оболочки.

...