2011-02-18 2 views
3

퍼핏을 사용하여 슬레이브 데이터베이스 간의 구성을 표준화하기 위해 MySQL의 my.cnf 템플릿을 템플리트 화해야했습니다. 지금, 나는 innodb 설정을 목표로 삼고있다. 메모리, 디스크 및 procs와 같은 하드웨어 사양에 대해 안전하게 계산할 수있는 구성 옵션이 있습니까?퍼핏의 설정을위한 MySQL의 my.cnf 템플리트

답변

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에서 내가 사용하는 사실 $ 디스크는

#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에 사용자 지정 현황 추가"를 참조하십시오.

+0

감사합니다. 나는 그것을 줄 것이다. – sreimer

0

꼭두각시가 erb 템플릿을 가지고 있고, erb 템플릿은 hostname이나 memor처럼 facter 값을 사용할 수 있습니다. 당신은 스스로 facter 셸 스크립트를 작성할 수 있습니다.

2
나는 key_buffer_size는 시스템 RAM의 1/4로 설정하는 것이 좋습니다 예를 들어, ERB 파일로 계산을 이동 유혹 할 것

: 당신이 나오지 않았어 왜 이유가 없다

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

Facter (프로세서의 수 등)에서 사용 가능한 다른 변수에 대해 작업하고 위와 같이 다른 변수를 설정하는 자체 계산을 제안하십시오.

ERB는 효과적으로 Ruby의 하위 집합을 제공하므로 Ruby에서 수행 할 수있는 거의 모든 작업을 ERB에서 수행 할 수 있습니다.

+1

<% = memorysize.to_i/4 - %>도 작동하지만 메모리 크기의 크기가 순서에 따라 다를 수 있음을주의하십시오. 예를 들어 1GB에서 2GB로 컴퓨터 크기를 조정하면 facts에서 memorysize 사실을 "999.37 MB"에서 "1.9 GB"로 변경할 수 있습니다. 단위 (MB 대 GB)를 버리는이 간단한'to_i' 계산을 수행하면 첫 번째 결과는 249가되지만 두 번째 결과는 0이므로 불쾌한 결과를 초래합니다! 'memoryinbytes'와 같은 사용자 정의 사실을 추가하는 것이 더 안전합니다. 다음은 리눅스 커널의 예입니다 : https://github.com/brhelwig/puppet-memory-facts/blob/master/lib/facter/meminbytes.rb –

관련 문제