यह पहली बार नहीं है जब 2ndQuadrant ने Puppet को देखा है। गैब्रिएल बार्टोलिनी ने पहले ही दो भागों में एक लेख लिखा है कि कैसे पपेट और वैग्रांट के माध्यम से पोस्टग्रेएसक्यूएल सर्वर को तेजी से कॉन्फ़िगर किया जाए, साथ ही गिटहब (http://github.com/2ndquadrant-it/vagrant) पर उदाहरण में उपयोग किए गए कोड को जारी किया जाए। कठपुतली-postgresql).
तीन भागों में विभाजित, इस लेख का उद्देश्य एक PostgreSQL परीक्षण सर्वर का बैकअप लेने के लिए बर्मन के सेटअप और कॉन्फ़िगरेशन के स्वचालन को प्रदर्शित करना है।
यह लेख गैब्रिएल द्वारा एक के बजाय दो वर्चुअल मशीन, एक पोस्टग्रेएसक्यूएल सर्वर और एक बर्मन सर्वर बनाने के विचार के साथ जो लिखा गया था, उसका अपडेट है।
it2ndq/barman
कठपुतली के माध्यम से बर्मन की स्थापना का प्रबंधन करने के लिए 2ndQuadrant इटली द्वारा जारी किया गया मॉड्यूल है। मॉड्यूल के पास GPLv3 लाइसेंस है और यह http://github.com/2ndquadrant-it/puppet-barman पते पर GitHub पर उपलब्ध है। निम्नलिखित प्रक्रिया एक Ubuntu 14.04 भरोसेमंद तहर के लिए लिखी गई थी, लेकिन अन्य वितरणों पर समान तरीके से की जा सकती है।
आवश्यकताएं
वर्चुअल मशीन पर बर्मन के लिए मॉड्यूल शुरू करने के लिए, हमें निम्नलिखित सॉफ़्टवेयर की आवश्यकता है:
- वर्चुअलबॉक्स
- आवारा
- रूबी>=1.9
- कठपुतली
- लाइब्रेरियन कठपुतली
आवारा
Vagrant एक वर्चुअल मशीन प्रबंधक है, जो VirtualBox के डिफ़ॉल्ट के साथ कई वर्चुअलाइजेशन सॉफ़्टवेयर का समर्थन करने में सक्षम है।
हम VirtualBox को इस तरह स्थापित करते हैं:
$ sudo apt-get install virtualbox virtualbox-dkms |
वैग्रांट का नवीनतम संस्करण साइट से डाउनलोड किया जा सकता है और कमांड के साथ स्थापित किया जा सकता है:
$ sudo dpkg -i /path/to/vagrant_1.7.2_x86_64.deb |
रूबी
रूबी के संबंध में, हमारी सलाह है कि rbenv
. का उपयोग करें , जो एक रूबी विकास वातावरण बनाता है जिसमें वर्तमान उपयोगकर्ता के लिए संस्करण निर्दिष्ट करना है, जिससे सिस्टम पर्यावरण को दूषित होने से बचा जा सके। rbenv
स्थापित करने के लिए हम rbenv-installer
. का उपयोग करने का सुझाव देते हैं (http://github.com/fesplugas/rbenv-installer)।
आइए स्क्रिप्ट को डाउनलोड और निष्पादित करें:
$ curl https://raw.githubusercontent.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash |
अंत में, स्क्रिप्ट आपको निम्न पंक्तियों को ~/.bash_profile
में जोड़ने के लिए कहेगी फ़ाइल:
export RBENV_ROOT="${HOME}/.rbenv" if [ -d "${RBENV_ROOT}" ]; then export PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init -)" fi |
अब हमें हाल ही में बदले गए ~/.bash_profile
. को पुनः लोड करने की आवश्यकता है :
$ exec bash -l |
इस बिंदु पर, हम स्थानीय रूप से एक रूबी संस्करण स्थापित करते हैं (इस मामले में, 2.1.5) और उपयोगकर्ता को सिस्टम संस्करण के बजाय इस संस्करण को चलाने के लिए सेट करते हैं:
$ rbenv install 2.1.5 $ rbenv global 2.1.5 |
कठपुतली
कठपुतली न केवल वीएम पर बल्कि उन्हें चलाने वाली मशीन पर भी आवश्यक है। इसलिए हमें कठपुतली रत्न स्थापित करने की आवश्यकता है।
$ gem install puppet |
लाइब्रेरियन कठपुतली
अंत में, librarian-puppet
कठपुतली मॉड्यूल प्रबंधन को स्वचालित करने के लिए एक उपकरण है। कठपुतली की तरह, librarian-puppet
रत्न के रूप में स्थापित किया जा सकता है:
$ gem install librarian-puppet |
आवारा:विन्यास
अब जबकि हमारे पास निर्भरताएं हैं, हम अपने बैकअप सिस्टम के लिए वैग्रांट और पपेट कॉन्फ़िगरेशन लिखना शुरू कर सकते हैं।
हम एक कार्यशील निर्देशिका बनाकर शुरू करते हैं:
$ mkdir ~/vagrant_puppet_barman $ cd ~/vagrant_puppet_barman |
Vagrant हमें Vagrantfile
. नामक फ़ाइल लिखने की आवश्यकता है जहां यह VMs के कॉन्फ़िगरेशन की तलाश करता है।
निम्नलिखित Vagrantfile
pg
. नामक दो Ubuntu भरोसेमंद VMs प्रारंभ करता है और backup
, आईपी पते के साथ 192.168.56.221
और 192.168.56.222
. दोनों मशीनों पर इनलाइन शेल स्क्रिप्ट के माध्यम से प्रावधान किया जाएगा।
यह स्क्रिप्ट puppet-bootstrap
लॉन्च करती है (http://github.com/hashicorp/puppet-bootstrap), एक स्क्रिप्ट जो स्वचालित रूप से कठपुतली को विभिन्न प्रकार की मशीनों पर स्थापित और कॉन्फ़िगर करती है। चूंकि इसे एक से अधिक बार चलाने की आवश्यकता नहीं है, इसलिए आगे के निष्पादन को रोकने के लिए स्क्रिप्ट में एक परीक्षण डाला गया था।
Vagrant.configure("2") do |config| { :pg => { :ip => '192.168.56.221', :box => 'ubuntu/trusty64' }, :backup => { :ip => '192.168.56.222', :box => 'ubuntu/trusty64' } }.each do |name,cfg| config.vm.define name do |local| local.vm.box = cfg[:box] local.vm.hostname = name.to_s + '.local.lan' local.vm.network :private_network, ip: cfg[:ip] family = 'ubuntu' bootstrap_url = 'http://raw.github.com/hashicorp/puppet-bootstrap/master/' + family + '.sh' # Run puppet-bootstrap only once local.vm.provision :shell, :inline => <<-eos if [ ! -e /tmp/.bash.provision.done ]; then curl -L #{bootstrap_url} | bash touch /tmp/.bash.provision.done fi eos end end end |
VMs को ऊपर लाना
हमने कठपुतली वाले दो उबंटू भरोसेमंद वीएम को परिभाषित किया है। यह अंतिम नहीं है Vagrantfile
लेकिन पहले से ही दो मशीनों के निर्माण की अनुमति देता है। यदि आप उत्सुक हैं, तो यह सत्यापित करना संभव है कि दो मशीनें कमांड के साथ बनाई गई हैं:
$ vagrant up |
और फिर निम्न आदेशों का उपयोग करके कनेक्ट करना:
$ vagrant ssh pg $ vagrant ssh backup |
अंत में, मशीनों को नष्ट किया जा सकता है:
$ vagrant destroy -f |
निष्कर्ष
ट्यूटोरियल के इस पहले भाग में हमने देखा है कि निर्भरता को कैसे कॉन्फ़िगर किया जाए और कठपुतली, पोस्टग्रेएसक्यूएल और बर्मन के माध्यम से दो वर्चुअल मशीनों के साथ समाप्त किया, जिन पर हम स्थापित करेंगे। वास्तविक स्थापना के लिए कठपुतली मेनिफेस्ट लिखना अगले लेख का विषय होगा।
अभी के लिए अलविदा!