यह CFEngine में एक हवा थी ... लेकिन मैं अब कठपुतली वातावरण में हूं , और कुछ sysctl.conf चर को असाइन / सुनिश्चित करने / जांचने में सक्षम होने की आवश्यकता है। CFEngine दुनिया में, मैं बस एक विन्यास फाइल के भीतर विशिष्ट लाइनों के लिए जाँच कर सकता हूँ ... मैं कठपुतली विकी पर एक sysctl मॉड्यूल और github में एक परियोजना के लिए एक छोटा सा संदर्भ मिला है जो मैं चाहता हूँ करने के लिए प्रकट होता है।
लेकिन न तो वास्तव में अच्छी तरह से प्रलेखित हैं। मैं बस एक तरह से जैसे मूल्यों के एक जोड़े को संपादित करने के लिए देख रहा हूँ net.core.rmem_default
और net.core.wmem_max
। गितुब पर होस्ट की गई परियोजना के प्रारूप में , मेरे 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";
}
}
मंचों और मेलिंग सूचियों के माध्यम से जा रहे हैं, कठपुतली प्लगइन्स और मॉड्यूल के बीच अंतर पर भ्रम होने लगता है। शर्तों का लगभग उपयोग किया जाता है ... मैंने कुछ बालों वाली पिछली त्रुटियों को प्राप्त करने के लिए अपने ग्राहकों पर प्लगइन्स को सक्षम करने की आवश्यकता समाप्त कर दी। मैंने सोचा कि यह एक मॉड्यूल था!
वर्तमान ग्राहक त्रुटियां:
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
कम से कम दर्द के साथ इसे कैसे पूरा किया जाए, इस पर कोई विचार?
संपादित करें: क्या मैं इस बग से प्रभावित हूं ?
संपादित करें: जेफ फेरलैंड और कठपुतली विकि से सुझाए गए ऑगेज पुस्तकालय का उपयोग करके ।
मैंने एक 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";
}
}