मुझे पता है कि कैसे स्थापित करने के लिए करना चाहते हैं :datadir:में hiera.yamlकठपुतली और Vagrant साथ इष्टतम उपयोग के लिए। वर्तमान में मैं Ubuntu 13.10 पर Ubuntu 12.04 अतिथि कठपुतली 3.1.1 के साथ virtualbox 4.2 के साथ 1.5.0 योनि का उपयोग कर रहा हूं
मैं इस ब्लॉग पोस्ट, कठपुतली श्रेष्ठ आचरण: पर्यावरण विशिष्ट विन्यास के समान वातावरण स्थापित करने का प्रयास कर रहा हूं । विशेष रूप से, मेरे Vagrantfile में शामिल हैं:
config.vm.define "servername" do |servername|
servername.vm.box = "precise-puppet-3"
servername.vm.network "private_network", ip: "192.168.213.2",
virtualbox__intnet: "networkname"
# Provision with puppet.
servername.vm.provision :puppet do |puppet|
puppet.hiera_config_path = "puppet/hiera.yaml"
puppet.manifests_path = "puppet/manifests"
puppet.module_path = "puppet/modules"
puppet.manifest_file = "servername.pp"
puppet.facter = {
"vagrant" => "1",
"server" => "servername",
}
end
end
मैं पुष्टि कर सकता हूं कि hiera_config_pathयह सही है, क्योंकि मुझे हटाने पर मुझे एक त्रुटि मिलती है hiera.yaml।
puppet/hiera.yaml शामिल हैं:
---
:backends: yaml
:yaml:
:datadir: "manifests/configuration"
:hierarchy:
- "%{::clientcert}"
- "%{::environment}"
- "virtual_%{::is_virtual}"
- common
:logger: console
और, आगे, puppet/manifests/configuration/common.yamlशामिल हैं:
---
myvar: "test"
कमांडलाइन से इसका परीक्षण:
$ hiera -c hiera.yaml myvar
test
अब तक सब ठीक है। हालाँकि, अगर मैं कठपुतली की घोषणा फ़ाइल के भीतर से यह परीक्षण करने की कोशिश करता हूं, तो चर नहीं मिल सकता है, और मुझे एक त्रुटि मिलती है। उदाहरण परीक्षण:
$myvariable = hiera(myvar)
notice("My variable is: ${myvar}")
त्रुटि यह है:
Error: Could not find data item myvar in any Hiera data file and no default supplied at...
यदि मैं अपनी मशीन के माध्यम से ssh करता हूं vagrant ssh, तो मैं देख सकता हूं कि Vagrant मेरी प्रकट निर्देशिका को / tmp / vag-कठपुतली -2 पर बढ़ा रहा है। यदि मैं hiera.yamlफ़ाइल को संपादित करता हूं , और :datadir:पूर्ण पथ के साथ प्रतिस्थापित करता /tmp/vagrant-puppet-2/manifests/configurationहूं, तो मेरा कठपुतली मैनिफेस्ट मेरे हिरे डेटा तक पहुंच सकता है। क्या मैं एक रिश्तेदार पथ के साथ ऐसा कर सकता हूं, हालांकि?
hiera.yamlफाइलें चाहिए, एक योनि के साथ उपयोग के लिए, और एक पपेट (उत्पादन में) के साथ उपयोग करने के लिए?