ओपनस्टैक स्थापित करना
यदि आप उठना और दौड़ना चाहते हैं तो इसके बजाय जल्दी से यहाँ जाएँ:
यह उत्तर ओपनस्टैक के साथ जूजू का उपयोग करने के तरीके पर अधिक विस्तृत नज़र है।
क्षेत्र
ओपनस्टैक प्लेटफॉर्म शक्तिशाली है और इसका विविध उपयोग करता है। प्रलेखन का यह खंड मुख्य रूप से एक "मानक" रनिंग ओपनस्टैक सिस्टम का उपयोग करके तैनात करने से संबंधित है, लेकिन यह MAAS, Juju और Ubuntu जैसे Canonical घटकों तक सीमित नहीं है। जहां उपयुक्त अन्य तरीकों और सॉफ्टवेयर का उल्लेख किया जाएगा।
मान्यताओं
- MAAS का उपयोग - पहले इन घुसपैठों का पालन करें।
- जूजू का प्रयोग
- स्थानीय नेटवर्क कॉन्फ़िगरेशन - यह दस्तावेज़ मानता है कि आपके पास पर्याप्त स्थानीय नेटवर्क कॉन्फ़िगरेशन है, जिसमें ओपनस्टैक क्लाउड तक पहुंच के लिए अलग-अलग इंटरफेस शामिल हैं। आदर्श नेटवर्क को [MAAS] [OpenAS के लिए MAAS प्रलेखन] में रखा गया है।
स्थापना की योजना बनाना
किसी भी सेवा को लागू करने से पहले, उपलब्ध संसाधनों का जायजा लेना और उनका उपयोग कैसे किया जाए, यह बहुत उपयोगी है। ओपनस्टैक में कई परस्पर संबंधित सेवाएं (नोवा, स्विफ्ट, आदि) शामिल हैं, जिनमें से प्रत्येक में मेजबानों की अलग-अलग मांगें हैं। उदाहरण के लिए, स्विफ्ट सेवा, जो वस्तु भंडारण प्रदान करती है, नोवा सेवा की तुलना में एक अलग आवश्यकता होती है, जो कंप्यूट संसाधन प्रदान करती है।
प्रत्येक सेवा और सिफारिशों के लिए न्यूनतम आवश्यकताएं आधिकारिक ओपनस्टैक ऑपरेशंस गाइड में रखी गई हैं
MAAS और जूजू के साथ ओपनस्टैक को तैनात करने के लिए नोड्स की अनुशंसित रचना यह है कि सिस्टम के सभी नोड किसी भी सेवा को चलाने में सक्षम होना चाहिए । यह प्रणाली की मजबूती के लिए सबसे अच्छा अभ्यास है, क्योंकि किसी भी भौतिक नोड को विफल होना चाहिए, दूसरे को इसकी जगह लेने के लिए पुनर्खरीद किया जा सकता है। यह स्पष्ट रूप से किसी भी हार्डवेयर आवश्यकताओं जैसे कि अतिरिक्त नेटवर्क इंटरफेस तक फैला हुआ है।
यदि अर्थव्यवस्था के कारणों के लिए या अन्यथा आप हार्डवेयर के विभिन्न कॉन्फ़िगरेशन का उपयोग करना चुनते हैं, तो आपको ध्यान देना चाहिए कि हार्डवेयर विफलता को दूर करने की आपकी क्षमता कम हो जाएगी। तैनाती को विशिष्ट नोड्स पर लक्षित करना भी आवश्यक होगा - टैग पर MAAS प्रलेखन में अनुभाग देखें ।
OpenStack कॉन्फ़िगरेशन फ़ाइल बनाएँ
हम ओपनस्टैक के घटक भागों को तैनात करने के लिए जूजू आकर्षण का उपयोग करेंगे। प्रत्येक आकर्षण किसी विशेष सेवा को स्थापित करने के लिए आवश्यक सभी चीजों को एन्क्रिप्ट करता है। हालांकि, व्यक्तिगत सेवाओं में कई कॉन्फ़िगरेशन विकल्प हैं, जिनमें से कुछ हम बदलना चाहते हैं।
इस कार्य को आसान और अधिक पुनरुत्पादनीय बनाने के लिए, हम सभी सेवाओं के लिए प्रासंगिक विकल्पों के साथ एक अलग कॉन्फ़िगरेशन फ़ाइल बनाएंगे। यह एक मानक YAML प्रारूप में लिखा गया है ( देखें www.yaml.org अगर यह आपके लिए अपरिचित है )।
यहाँ एक ओपनस्टैक- config.yaml का उदाहरण दिया गया है:
keystone:
admin-password: openstack
debug: 'true'
log-level: DEBUG
nova-cloud-controller:
network-manager: 'Neutron'
quantum-security-groups: 'yes'
neutron-external-network: Public_Network
nova-compute:
enable-live-migration: 'True'
migration-auth-type: "none"
virt-type: kvm
#virt-type: lxc
enable-resize: 'True'
quantum-gateway:
ext-port: 'eth1'
plugin: ovs
glance:
ceph-osd-replication-count: 3
cinder:
block-device: None
ceph-osd-replication-count: 3
overwrite: "true"
glance-api-version: 2
ceph:
fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
osd-devices: /dev/sdb
osd-reformat: 'True'
सभी सेवाओं के लिए, हम openstack-origin
एक संस्थापन स्रोत की ओर संकेत कर सकते हैं । इस मामले में, हम डिफ़ॉल्ट पर भरोसा करेंगे, जो उबंटू 14.04 एलटीएस ट्रस्टी रिलीज के लिए प्रासंगिक स्रोतों को इंगित करेगा। प्रत्येक दस्तावेज़ के लिए आगे की कॉन्फ़िगरेशन इस दस्तावेज़ में बताई गई है ।
अन्य विन्यास
ओपनस्टैक सेवाओं की तैनाती के लिए अन्य सेटिंग्स और कॉन्फ़िगरेशन विकल्प संभव हैं। ये जूजू द्वारा उपयोग किए गए व्यक्तिगत आकर्षण के दस्तावेज़ीकरण में विस्तृत हैं, और ऑनलाइन जूजू चार्म स्टोर पर जाकर पृष्ठ के ऊपरी बाएँ-साइड में खोज बॉक्स का उपयोग करके आकर्षण की खोज की जा सकती है। विन्यास सेटिंग्स मुख्य पृष्ठ में "विन्यास" के तहत विस्तृत हैं, जैसा कि दिखाया गया है:
जूजू के साथ ओपनस्टैक की तैनाती
अब चूंकि कॉन्फ़िगरेशन परिभाषित है, हम सेवाओं को तैनात करने और संबंधित करने के लिए जूजू का उपयोग कर सकते हैं।
प्रारंभिक जुजू
जूजू को सेटअप की न्यूनतम राशि की आवश्यकता होती है। यहाँ हम मानते हैं कि इसे पहले ही आपके MAAS क्लस्टर के साथ काम करने के लिए कॉन्फ़िगर किया गया है (इस बारे में अधिक जानकारी के लिए [जूजू इंस्टॉलेशन गाइड] [juju_install] देखें।
सबसे पहले, हमें उन चित्रों और उपकरणों को लाने की आवश्यकता है जो जूजू उपयोग करेंगे:
juju sync-tools --debug
तब हम बूटस्ट्रैप उदाहरण बना सकते हैं:
juju bootstrap --upload-tools --debug
हम अपलोड-टूल्स स्विच का उपयोग उन टूल्स के स्थानीय संस्करणों का उपयोग करने के लिए करते हैं, जिन्हें हमने अभी प्राप्त किया है। डीबग स्विच वर्बोज़ आउटपुट देगा जो उपयोगी हो सकता है। इस प्रक्रिया में कुछ मिनट लग सकते हैं, क्योंकि जूजू एक उदाहरण बना रहा है और उपकरण स्थापित कर रहा है। जब यह समाप्त हो गया है, तो आप कमांड के साथ सिस्टम की स्थिति की जांच कर सकते हैं:
juju status
इसे कुछ इस तरह लौटाना चाहिए:
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.18.1.1
dns-name: localhost
instance-id: localhost
series: trusty
ओपनस्टैक आकर्षण तैनात करें
अब जब जूजू बूटस्ट्रैप नोड ऊपर है और हम अपने ओपनस्टैक इंस्टॉलेशन को बनाने के लिए आवश्यक सेवाओं को तैनात कर सकते हैं। इन सेवाओं को ठीक से कॉन्फ़िगर करने के लिए जैसे कि वे तैनात हैं, हम पहले से परिभाषित कॉन्फ़िगरेशन फ़ाइल का उपयोग करेंगे, इसे --config
प्रत्येक तैनात कमांड के साथ स्विच के साथ पास करके। यदि आपके कॉन्फ़िगरेशन फ़ाइल का नाम और पथ अलग-अलग हो तो।
यह उपयोगी है, लेकिन नीचे के क्रम में सेवाओं को तैनात करने के लिए आवश्यक नहीं है। यह एक अतिरिक्त टर्मिनल विंडो खोलने और कमांड चलाने के लिए भी अत्यधिक प्रासंगिक है juju debug-log
। यह सभी सेवाओं के लॉग को आउटपुट करेगा जैसा कि वे चलाते हैं, और समस्या निवारण के लिए उपयोगी हो सकता है।
यह भी juju status
समय-समय पर एक कमांड चलाने की सिफारिश की जाती है , यह जांचने के लिए कि प्रत्येक सेवा स्थापित की गई है और ठीक से चल रही है। जूजू स्वचालित रूप से ऑनलाइन आकर्षण स्टोर से आकर्षण का सबसे अच्छा संभव संस्करण लाने की कोशिश करेगा। यदि आप एक प्रतिबंधित या बंद नेटवर्क के भीतर से इंस्टॉल कर रहे हैं, तो आवश्यक चार्म्स को प्री-भ्रूण करना संभव है। [ऑफ़लाइन आकर्षण के लिए प्रलेखन] देखें [आकर्षण-ऑफ़लाइन]।
juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw
ओपनस्टैक सेवाओं के बीच संबंध जोड़ें
हालाँकि अब सेवाएँ तैनात हैं, फिर भी वे एक साथ कनेक्ट नहीं हैं। प्रत्येक सेवा वर्तमान में अलगाव में मौजूद है। हम juju add-relation
उन्हें एक-दूसरे से अवगत कराने के लिए और किसी भी प्रासंगिक कनेक्शन और प्रोटोकॉल को सेट करने के लिए कमांड का उपयोग करते हैं । इस अतिरिक्त विन्यास का ध्यान व्यक्तिगत आकर्षण स्वयं रखते हैं।
हमें कीस्टोन प्राधिकरण सेवा और इसके डेटाबेस की स्थापना करके आकर्षण के बीच संबंध जोड़ना शुरू करना चाहिए, क्योंकि इसके लिए कई अन्य कनेक्शनों की आवश्यकता होगी:
juju add-relation keystone mysql
हम संबंध सेट होने तक इंतजार करते हैं। यह खत्म होने के बाद इसे जूजू स्थिति के साथ जांचें:
juju status mysql
juju status keystone
इस सेवा को निपटाने में कुछ पल लग सकते हैं। यद्यपि संबंधों को जोड़ना जारी रखना निश्चित रूप से संभव है (जूजू लंबित कार्यों के लिए एक कतार का प्रबंधन करता है) यह समग्र रूप से लिए गए समय के संदर्भ में उल्टा हो सकता है, क्योंकि कई संबंध समान सेवाओं को संदर्भित करते हैं।
निम्नलिखित संबंधों को भी बनाने की आवश्यकता है:
juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone
अंत में, जूजू स्थिति के आउटपुट को सभी संबंधों को पूर्ण रूप से दिखाना चाहिए। ओपनस्टैक क्लाउड अब चल रहा है, लेकिन इसे उपयोग के लिए तैयार होने से पहले कुछ अतिरिक्त घटकों के साथ आबाद करने की आवश्यकता है।