이것은 CFEngine 에서 산들 바람이되었습니다 ...하지만 지금 은 꼭두각시 환경 에 있으며 특정 sysctl.conf 변수를 할당 / 보장 / 확인할 수 있어야합니다. CFEngine 세계에서는 구성 파일 내에서 특정 행을 간단히 확인할 수 있습니다 ... Puppet Wiki 의 sysctl 모듈 과 github 의 프로젝트에 대한 작은 참조를 찾았습니다 .
그러나 실제로는 잘 문서화되어 있지 않습니다. 나는 단순히 net.core.rmem_default
and와 같은 몇 가지 값을 편집하는 방법을 찾고 net.core.wmem_max
있습니다. github 에서 호스팅 되는 프로젝트 형식 에서 init.pp 매니페스트의 구성은 다음과 같아야합니다.
class sysctl {
sysctl::value {
"net.core.rmem_default": value => "9000000";
"net.core.wmem_default": value => "9000000";
"net.core.rmem_max": value => "16777216";
"net.core.wmem_max": value => "16777216";
}
}
포럼과 메일 링리스트를 살펴보면 꼭두각시 플러그인과 모듈의 차이점에 대해 혼란스러워하는 것 같습니다. 용어는 거의 상호 교환 적으로 사용됩니다 ... 나는 머리카락이 많은 오류를 피하기 위해 클라이언트에서 pluginsync를 활성화해야했습니다. 나는 이것이 모듈이라고 생각했다!
현재 클라이언트 오류 :
info: Loading downloaded plugin /var/lib/puppet/lib/puppet/type/sysctl.rb
info: Loading downloaded plugin /var/lib/puppet/lib/puppet/provider/sysctl/parsed.rb
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error
ArgumentError: Invalid resource type sysctl::value at /var/lib/puppet/base/modules/sysctl/manifests/init.pp:12 on node shimano.deore.abc.net
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
최소한의 고통으로 이것을 달성하는 방법에 대한 생각이 있습니까?
편집 : 이 버그의 영향을 받 습니까?
편집 : Jeff Ferland와 Puppet wiki 에서 제안한 Augeas 라이브러리를 사용하여 수정되었습니다 .
sysctl
모듈을 만들었습니다 ...
class sysctl {
# nested class/define
define conf ( $value ) {
# $name is provided by define invocation
# guid of this entry
$key = $name
$context = "/files/etc/sysctl.conf"
augeas { "sysctl_conf/$key":
context => "$context",
onlyif => "get $key != '$value'",
changes => "set $key '$value'",
notify => Exec["sysctl"],
}
}
file { "sysctl_conf":
name => $operatingsystem ? {
default => "/etc/sysctl.conf",
},
}
exec { "/sbin/sysctl -p":
alias => "sysctl",
refreshonly => true,
subscribe => File["sysctl_conf"],
}
}
... 및 관련 설정을 설정하는 다른 모듈 ...
class prod_sysctl {
include sysctl
sysctl::conf {
# increase PID rollover value
"kernel.pid_max": value => "1048576";
}
}