XenServer में वर्चुअल मशीनों को कैसे अपडेट करें - कैसे

XenServer में वर्चुअल मशीनों को कैसे अपडेट करें

कभी एक्सएमएल में एक ही बार में कई वीएम में अतिरिक्त संसाधन जोड़ने की आवश्यकता होती है? यहां बताया गया है कि मैं इसे कैसे करता हूं:

कुल 3 चरण

चरण 1: एक उपयोगी यूयूआईडी सूची प्राप्त करें

XenServer में प्रत्येक क्रिया UUIDs पर लागू होती है - मेजबान UUIDs, SR UUIDs, VM UUIDs, आदि।
इसलिए, इसे बंद करने के लिए, आपको एक प्रारूप में वीएम यूयूआईडी की सूची की आवश्यकता होगी, जिसके साथ आप काम कर सकते हैं। यह xe vm-list कमांड और कुछ यूनिक्स ट्रिकरी के संयोजन के साथ किया जाता है।
इस उदाहरण के लिए, मैं इस पूल में सभी वीएमएस में एक दूसरा वीसीपीयू जोड़ना चाहता था। यह जानते हुए कि आपको वीसीपीयू को जोड़ने के लिए वीएम को संचालित करना होगा, मैंने उन्हें सभी को बंद कर दिया, जिसका अर्थ है कि मैं कमांड का उपयोग कर सकता हूं
xe vm-list पॉवर-स्टेट = एक सूची प्राप्त करने के लिए रुका हुआ है - लेकिन मैं किसी भी प्रयोग करने योग्य प्रारूप में इसका उपयोग नहीं कर सकता। चरण 2 पर।

चरण 2: xe vm-list के पार्स परिणाम

संशोधन के लिए UUIDs को वापस किसी अन्य आदेश में खिलाने के लिए, मुझे केवल UUIDS के लिए निर्धारित परिणाम में कटौती करनी पड़ी। मैंने इसे grep, gawk और cut के संयोजन के साथ किया:
xe vm- सूची शक्ति-अवस्था = रुकी हुई | grep uuid | gawk '{प्रिंट $ 5}' | cud -d ":" -f 2

यह प्रत्येक परिणाम से केवल UUIDs लौटाता है।

चरण 3: एक बयान के लिए बनाएँ और इसे एक साथ रखें

अंतिम चरण वास्तव में लूप और कमांड का निर्माण कर रहा है जिसे आप कार्य करना चाहते हैं। चूंकि मैं vCPUs जोड़ रहा हूं, मैं xe vm-param-set कमांड का उपयोग कर रहा हूं। मेरे लूप का पूरा सिंटैक्स है:
x के लिए `xe vm- सूची शक्ति-अवस्था = रुका हुआ | grep uuid | gawk '{प्रिंट $ 5}' | कट -d ":" -f 2`; do xe vm-param-set uuid = $ x प्लेटफ़ॉर्म: cores-per-socket = 2 VCPUs-max = 2 VCPUs-at-स्टार्टअप = 2; किया हुआ

पहला कथन xe vm-list कमांड का परिणाम लेता है और इसे चर x में पार्स करता है। लूप के माध्यम से हर बार, xe vm-param-set कमांड को uuid = $ x के साथ निष्पादित किया जाता है, जो कि कथन 1 से x में वर्तमान uuid मान है। अंत में, सभी UUID के माध्यम से पुनरावृत्त होने के बाद, लूप समाप्त हो जाता है।

इस तरह की त्वरित बैश स्क्रिप्टिंग अमूल्य हो सकती है यदि आपके पास बड़ी संख्या में VMs हैं जिन्हें आपको जल्दी से संशोधित करने की आवश्यकता है।मैंने इसे कुछ सेकंड के मामले में 150 विंडोज 7 वीएम पर चलाया, और मुझे इसे हाथ से करने के बारे में सोचने की तुलना में अधिक समय लगेगा। मुझे उम्मीद है कि यह भविष्य में किसी की मदद करता है।