CloudStack
एडमिन में कहाँ: Infrastructure › Cloud provider › CloudStack › API connection (
/infra/cloudstack?tab=connect)। पहला कनेक्शन setup wizard, चरण 2 में भी बनाया जा सकता है।
यह क्या करता है
NexCMP ऐसे वर्चुअल मशीन बेचता है जो आपके Apache CloudStack क्लाउड पर चलते हैं। यह CloudStack API के माध्यम से VMs को तैनात, शुरू, बंद, आकार बदलता, स्नैपशॉट और हटाता है, ज़ोन से सार्वजनिक IP पते आवंटित करता है, बिलिंग और बैंडविड्थ के लिए उपयोग पढ़ता है, और एडमिन कंसोल में क्षमता तथा स्वास्थ्य दिखाता है। हाइपरवाइज़र के लिए CloudStack सत्य का स्रोत बना रहता है; NexCMP इसके शीर्ष पर स्टोरफ्रंट, बिलिंग और पोर्टल है।
इस पृष्ठ का उपयोग तब करें जब CloudStack आपका मुख्य VM स्रोत है (या होगा)। इसके बगल में दूसरे स्रोत के लिए, Proxmox VE देखें।
आवश्यकताएं
| आइटम | आवश्यकता |
|---|---|
| CloudStack version | 4.23 परीक्षित रिलीज़ है। VM कंसोल को 4.18 या नए की आवश्यकता है और चल रहे VM के लाइव CPU/RAM स्केलिंग के लिए KVM के साथ 4.23 की आवश्यकता है। |
| Zone type | ग्राहक VMs के लिए कम से कम एक गेस्ट नेटवर्क और मुफ़्त पतों के साथ एक सार्वजनिक IP रेंज वाला ज़ोन। |
| Hypervisor | KVM परीक्षित हाइपरवाइज़र है। |
| खाता | NexCMP के लिए बनाया गया एक समर्पित डोमेन और खाता। कभी भी ROOT एडमिनिस्ट्रेटर कुंजी का उपयोग न करें। |
| API reachability | पैनल सर्वर को HTTP(S) पर प्रबंधन सर्वर API URL (https://cloudstack.example.com/client/api) तक पहुँचना होगा। VM कंसोल, बैंडविड्थ और Kubernetes सुविधाएँ एक ही एंडपॉइंट का उपयोग करती हैं। |
| Optional read-only key | दूसरी, केवल-पढ़ने के लिए (read-only) कुंजी एडमिन कंसोल को होस्ट, स्टोरेज, सिस्टम VMs और सार्वजनिक IP रेंज दिखाने देती है। VMs बेचने के लिए आवश्यक नहीं है। |
| Public IP | ज़ोन में मुफ़्त सार्वजनिक IPv4 पते। वह उपसर्ग जिसे NexCMP बेच सकता है, Sales IP pools के तहत कॉन्फ़िगर किया जाता है। |
| Templates | कम से कम एक तैयार, पासवर्ड-सक्षम टेम्पलेट और एक सर्विस ऑफरिंग जिसे आपका खाता देख सके। Templates देखें। |
| Storage | खाते के वॉल्यूम के लिए प्राइमरी स्टोरेज, और यदि आप स्नैपशॉट या इमेज बेचते हैं, तो सेकेंडरी स्टोरेज। |
| इस पर निर्भर करता है | कुछ नहीं। Kubernetes, Private Cloud, Images और Bandwidth इस पेज पर निर्भर करते हैं। |
ROOT एडमिनिस्ट्रेटर कुंजी का उपयोग न करें
NexCMP के लिए एक समर्पित डोमेन और खाता बनाएं। इसके बाद कुंजी केवल उसी डोमेन तक पहुंचती है, और लीक हुई कुंजी आपके बाकी क्लाउड को प्रभावित नहीं कर सकती है। सेटअप विज़ार्ड यह भी जांचता है कि आपके द्वारा चुना गया नेटवर्क उस ज़ोन का है या नहीं और उस खाते का है जिसके पास कुंजी है।
बुनियादी ढांचा तैयार करें
कमांड CloudStack एडमिनिस्ट्रेटर के रूप में लॉगिन करके CloudMonkey (cmk) का उपयोग करते हैं। उदाहरण के नामों और कोणीय कोष्ठकों में दिए गए प्लेसहोल्डर को बदलें।
एक समर्पित खाता और API key बनाएं
वह डोमेन बनाएं जिसमें NexCMP की हर चीज़ होगी।
bashcmk create domain name=nexcmpआउटपुट में
idपर ध्यान दें; नीचे इसका उपयोग<domain-id>के रूप में किया जाता है।वह भूमिका खोजें जो आप खाते को देना चाहते हैं।
bashcmk list roles type=DomainAdmin filter=id,nameRole इसे कब चुनें Domain Admin (अनुशंसित) पूर्ण फ़ीचर सेट: VM, नेटवर्क, Kubernetes के लिए प्रोजेक्ट, VPC, इमेज। इसकी पहुंच nexcmpडोमेन पर समाप्त होती है।User केवल VM लाइफसाइक्ल। एक साधारण उपयोगकर्ता VM को तब तक डिलीट नहीं कर सकता जब तक कि ग्लोबल सेटिंग allow.user.expunge.recover.vmtrue न हो; इसके बाद NexCMP VM को बंद कर देता है और CloudStackexpunge.delayके बाद उसे हटा देता है।खाता और उसका पहला उपयोगकर्ता बनाएं। एक लंबा यादृच्छिक पासवर्ड उपयोग करें; इसे दोबारा कभी टाइप नहीं किया जाता है।
bashcmk create account name=nexcmp-api username=nexcmp-api \ password='CHANGE-ME-LONG-RANDOM' email=ops@example.com \ firstname=NexCMP lastname=API roleid=<role-id> domainid=<domain-id>नए उपयोगकर्ता के लिए API key जोड़ी जनरेट करें।
bashcmk list users domainid=<domain-id> username=nexcmp-api filter=id,username cmk generate userkeys id=<user-id>apikeyऔरsecretkeyको कॉपी करें। ये API key और Secret key हैं जिन्हें आप NexCMP में दर्ज करते हैं। NexCMP उन्हें एन्क्रिप्ट करके संग्रहीत करता है और उसके बाद केवल अंतिम चार वर्ण दिखाता है।सुनिश्चित करें कि डोमेन पर कोई प्रतिबंधात्मक संसाधन सीमाएँ (इंस्टेंस, वॉल्यूम, पब्लिक IP, नेटवर्क, स्नैपशॉट, टेम्पलेट, प्रोजेक्ट) नहीं हैं।
bashcmk list resourcelimits domainid=<domain-id>
ग्राहक VM के लिए गेस्ट नेटवर्क बनाएं
कस्टमर VM को एक गेस्ट नेटवर्क में तैनात किया जाता है जो नए खाते से संबंधित होता है। वर्चुअल राउटर (VR) और स्टैटिक NAT, फ़ायरवॉल और पोर्ट फ़ॉरवर्डिंग सेवाओं वाला एक आइसोलेटेड नेटवर्क अच्छी तरह से काम करता है, क्योंकि NexCMP स्टैटिक NAT के साथ प्रत्येक VM को एक पब्लिक IP जोड़ता है।
bash
cmk list networkofferings state=Enabled guestiptype=Isolated filter=id,name
cmk create network name=customers displaytext=customers zoneid=<zone-id> \
networkofferingid=<offering-id> account=nexcmp-api domainid=<domain-id>ऑफ़रिंग की डिफ़ॉल्ट एग्रेस पॉलिसी की जाँच करें: यदि यह "deny" है, तो फ़ायरवॉल एग्रेस नियम जोड़े जाने तक कस्टमर VM की कोई आउटबाउंड पहुँच नहीं होती है।
ऑफ़रिंग और टेम्पलेट दिखाई देने योग्य बनाएं
- Service offerings और network offerings सार्वजनिक होने चाहिए या
nexcmpडोमेन को असाइन किए जाने चाहिए, अन्यथा खाता उन्हें सूचीबद्ध या उपयोग नहीं कर सकता है। - कम से कम एक टेम्पलेट रजिस्टर या शेयर करें (Templates देखें)। NexCMP उन टेम्पलेट को सूचीबद्ध करता है जो तैयार और फ़ीचर्ड हैं।
वैकल्पिक: बुनियादी ढांचा पृष्ठों के लिए रीड-ऑनलाइन कुंजी
Capacity, Host, Storage और System VM टैब और पब्लिक IP रेंज सूची एक दूसरी कुंजी का उपयोग करती है जिसे केवल छह कमांड तक रीड एक्सेस की आवश्यकता होती है। पूर्ण प्रशासक कुंजी का पुन: उपयोग करने के बजाय एक सीमित भूमिका बनाएं:
bash
cmk create role name=nexcmp-readonly type=Admin
# <role-id> is the id printed above
for api in listHosts listCapacity listSystemVms listVlanIpRanges listClusters listStoragePools; do
cmk create rolepermission roleid=<role-id> rule=$api permission=allow
done
cmk create rolepermission roleid=<role-id> rule='*' permission=denyफिर उस भूमिका के साथ एक खाता बनाएं (ROOT डोमेन में, क्योंकि यह ज़ोन-व्यापी डेटा पढ़ता है), चरण 4 की तरह इसकी कुंजियाँ जनरेट करें, और उन्हें अगले अनुभाग में RO API key के रूप में दर्ज करें।
नेटवर्क पथ की जाँच करें
पैनल सर्वर से:
bash
curl -fsS -o /dev/null -w '%{http_code}\n' https://cloudstack.example.com/client/apiकोई भी HTTP उत्तर (यहाँ तक कि 4xx भी) यह साबित करता है कि पोर्ट तक पहुँचा जा सकता है। टाइमआउट का अर्थ है आपकी तरफ से फ़ायरवॉल या DNS की समस्या।
NexCMP में कनेक्ट करें
सेटअप विज़ार्ड में
सेटअप विज़ार्ड का चरण 2 उन्हीं मानों के लिए पूछता है। Test connection उन ज़ोन और नेटवर्क की सूची देता है जिन्हें कुंजी देख सकती है; ज़ोन और गेस्ट नेटवर्क, ज़ोन के लिए एक प्रदर्शन नाम और देश चुनें, फिर Save CloudStack पर क्लिक करें। विज़ार्ड उस नेटवर्क को अस्वीकार कर देता है जो उस ज़ोन में नहीं है या कुंजी को दिखाई नहीं दे रहा है।

बाद में, एडमिन कंसोल में
Infrastructure › Cloud provider › CloudStack खोलें और API connection टैब चुनें।
कार्ड Connection भरें:
फ़ील्ड उदाहरण मान Endpoint API https://cloudstack.example.com/client/apiAPI कुंजी (लिखने की अनुमति) XXXX(सहेजी गई कुंजी को बनाए रखने के लिए खाली छोड़ें)Secret key XXXXRO API कुंजी / RO सीक्रेट कुंजी वैकल्पिक, रीड-ऑनली खाते से Zone ID आपके ज़ोन का UUID 
सहेजने से पहले Test connection पर क्लिक करें। यह आपके द्वारा टाइप की गई कुंजियों का परीक्षण उन्हें सहेजे बिना करता है:
listZonesऔरlistCapabilitiesके साथ राइट कुंजी, औरlistSystemVmsके साथ रीड-ऑनली कुंजी।Save connection पर क्लिक करें। Enable CloudStack connection को चालू रखें; इसे बंद करने से वर्कर बिना डेटा खोए सभी CloudStack जॉब्स रोक देता है।
नए VM के लिए डिफ़ॉल्ट गेस्ट नेटवर्क, कस्टम ऑफ़रिंग और डिफ़ॉल्ट की पेयर सेट करने के लिए Services › Virtual Machines › Policy › Provisioning खोलें।

Infrastructure › Cloud provider › Sales IP pools खोलें और Configure sales ranges के अंतर्गत, Sellable IP range prefixes (उदाहरण के लिए
203.0.113.) और Excluded IP prefixes सेट करें यदि ज़ोन के कुछ पतों को कभी नहीं बेचा जाना चाहिए। प्रत्येक निःशुल्क पते की अनुमति देने के लिए प्रिफिक्स को खाली छोड़ दें।
NexCMP क्या पढ़ता और लिखता है
| क्षेत्र | पढ़ता है | बदलाव करता है |
|---|---|---|
| VMs | सूची, स्थितियाँ, उपयोग इतिहास, कंसोल एंडपॉइंट | डिप्लॉय, शुरू, बंद, रीबूट, रीइंस्टॉल, नष्ट, स्केल, पासवर्ड रीसेट और SSH Keys |
| डिसके और स्नैपशॉट | वॉल्यूम, VM स्नैपशॉट, बैकअप | बनाना, अटैच करना, अलग करना, आकार बदलना, हटाना, स्नैपशॉट, रिस्टोर |
| नेटवर्किंग | नेटवर्क, राउटर, पब्लिक IP, फ़ायरवॉल, पोर्ट फ़ॉरवर्डिंग, लोड बैलेंसर नियम | पब्लिक IP जोड़ना और जारी करना, स्टैटिक NAT, फ़ायरवॉल, पोर्ट फ़ॉरवर्डिंग, एग्रेस नियम, प्राइवेट क्लाउड के लिए नेटवर्क और ACL |
| कैटलॉग | सेवा, डिस्क और नेटवर्क ऑफ़रिंग, टेम्पलेट, ISO, OS प्रकार | टेम्पलेट और ISO (इमेज) रजिस्टर और हटाना, कस्टम प्लान बनाते समय सेवा ऑफ़रिंग |
| Kubernetes | समर्थित संस्करण, क्लस्टर, कॉन्फ़िगरेशन | प्रोजेक्ट, संसाधन सीमाएँ, नेटवर्क, क्लस्टर (मॉड्यूल Kubernetes) |
| रीड-ऑनली कुंजी | होस्ट, क्लस्टर, स्टोरेज पूल, सिस्टम VM, क्षमता, VLAN IP रेंज | कुछ नहीं |
लाइव CPU और RAM, और बैंडविड्थ
- हॉट-प्लग (Hot-plug)। चल रहे VM का आकार रीबूट किए बिना केवल तभी बदला जा सकता है जब इसका टेम्पलेट इसकी अनुमति देता हो (गतिशील रूप से स्केलेबल) और गेस्ट नए CPU और RAM को ऑनलाइन ले आए। NexCMP उन टेम्पलेट्स के लिए Auto Scaling चालू करता है जिनके नाम के अंत में
vNहोता है जिसमें N 6 या अधिक होता है, या जब आप इसे टेम्पलेट के vCPU/RAM hot-plug फ़ील्ड में मैन्युअली सेट करते हैं। Templates देखें। - बैंडविड्थ स्रोत। डिफ़ॉल्ट सेटिंग्स के साथ NexCMP, CloudStack VM सांख्यिकी (
listVirtualMachinesUsageHistory, हर 5 मिनट में पोल किया जाता है और प्रति VM नेटवर्क इंटरफ़ेस जोड़ा जाता है) से ट्रैफ़िक मापता है। आंकड़ों में VM के बीच का ट्रैफ़िक शामिल होता है, इसलिए वे एज राउटर द्वारा गिने जाने वाले ट्रैफ़िक से थोड़े अधिक हो सकते हैं। CloudStack VM सांख्यिकी संग्रह सक्षम रखें; सांख्यिकी प्रतिधारण से अधिक लंबे अंतराल को छोड़ दिया जाता है। Bandwidth देखें।
सत्यापित करें
- Test connection आपके ज़ोन और CloudStack संस्करण के साथ "Write key: OK" लौटाता है।
- Infrastructure › Cloud provider › Providers प्रदाता को हाल के परीक्षण समय के साथ सक्रिय रूप से दिखाता है। डैशबोर्ड हेल्थ पैनल अब "CloudStack: not connected" नहीं दिखाता है।
- Sales IP pools मुफ़्त पते सूचीबद्ध करता है (यह लगभग हर मिनट रिफ्रेश होता है)।
- कस्टमर पोर्टल या एडमिन कंसोल से एक छोटा VM ऑर्डर करें और जांचें कि यह Running तक पहुँचता है, इसमें एक सार्वजनिक IP है और आप कंसोल खोल सकते हैं।
सीमाएँ और नोट्स
- NexCMP के इस रिलीज़ में एक CloudStack क्लस्टर कनेक्ट किया जा सकता है। Add cloud provider संवाद दूसरे क्लस्टर की कुंजियों का परीक्षण कर सकता है लेकिन उन्हें सहेज नहीं सकता है।
- एक CloudStack ज़ोन NexCMP के डिफ़ॉल्ट ज़ोन से जुड़ा हुआ है; कई ज़ोन वाला CloudStack आपके द्वारा दर्ज किए गए ज़ोन तक सीमित है, इसलिए अन्य ज़ोन के VM, IP और नेटवर्क को अनदेखा कर दिया जाता है।
- CloudStack में गेस्ट नेटवर्क को हटाने से हर नया डिप्लॉयमेंट विफल हो जाता है। नेटवर्क गायब होने पर एडमिन कंसोल एक लाल सूचना दिखाता है।
- क्रेडेंशियल कभी भी सर्वर से बाहर नहीं जाते हैं। API केवल अंतिम चार वर्ण लौटाता है।
ट्रबलशूटिंग
| लक्षण | कारण | सुधार |
|---|---|---|
listCapabilities: cloudstack 401: unable to verify user credentials and/or request signature | गलत API कुंजी या गुप्त (secret), किसी अन्य उपयोगकर्ता की कुंजी, या पैनल सर्वर पर घड़ी की समस्या | cmk generate userkeys के साथ कुंजियाँ फिर से जनरेट करें और दोनों को पेस्ट करें। पैनल सर्वर का समय जाँचें। |
परीक्षण: listZones: … या टाइमआउट | पैनल सर्वर API URL तक नहीं पहुँच सकता | DNS, फ़ायरवॉल और सटीक /client/api पथ की जाँच करें। |
| विज़ार्ड: "network not found in that zone for this API key" | चुना हुआ नेटवर्क किसी अन्य खाते या ज़ोन से संबंधित है | समर्पित खाते में नेटवर्क बनाएँ (ऊपर देखें) और फिर से Test connection चलाएँ। |
| विज़ार्ड: "pick a zone and a network" | टेस्ट नहीं चलाया गया, या कोई ज़ोन या नेटवर्क नहीं चुना गया | Test connection पर क्लिक करें और दोनों सूचियाँ चुनें। |
| बैनर "CloudStack key not configured" | अभी तक कोई कुंजी सहेजी नहीं गई ("Connect later") | Connection कार्ड भरें, Save connection पर क्लिक करें, फिर Test connection करें। |
| Banner "CloudStack connection is OFF" | Enable CloudStack connection स्विच बंद है | इसे चालू करें और सहेजें। |
| रीड-ऑनली कुंजी: टेस्ट में "unusable …" | अनुपलब्ध रोल अनुमति या गलत खाता | छह स्वीकृत कमांड की जाँच करें और सुनिश्चित करें कि खाता ROOT डोमेन में है। |
| "Zone public IP ranges not measured yet" या "no public IP ranges declared" | कोई रीड-ऑनली कुंजी नहीं है, या वास्तव में ज़ोन में कोई पब्लिक रेंज नहीं है | read-only कुंजी जोड़ें, या CloudStack में सार्वजनिक IP रेंज जोड़ें। |
| "पूल खाली है — vmd सिंक के लिए 60 s प्रतीक्षा करें" | वर्कर द्वारा IP सूची को प्रति मिनट एक बार रीफ्रेश किया जाता है | एक मिनट प्रतीक्षा करें और पुनः लोड करें। |
| "रेंज 203.0.113. में कोई Free IP शेष नहीं है" | बेचे जाने वाले प्रीफ़िक्स के सभी पते उपयोग में हैं | ज़ोन में पते जोड़ें, प्रीफ़िक्स को चौड़ा करें या उपयोग न किए गए IP रिलीज़ करें। |
| "नेटवर्क डेटा लाने में विफल (CloudStack प्रतिक्रिया नहीं दे रहा है या कुंजी में अनुमतियाँ नहीं हैं)" | कुंजी की पहुँच समाप्त हो गई है, या CloudStack डाउन है | Test connection चलाएँ; जाँचें कि खाता सक्षम है। |
| "गेस्ट नेटवर्क मौजूद नहीं है" | नेटवर्क को CloudStack में हटा दिया गया था | नेटवर्क को फिर से बनाएँ और Provisioning के तहत इसे डिफ़ॉल्ट के रूप में सेट करें। |