क्या आप क्लाउड पर माइग्रेट करने जा रहे हैं, लेकिन नहीं जानते कि कहां से शुरू करें? क्या आप यह महत्वपूर्ण कदम उठाने के लिए तैयार हैं, या आप एक आभासी वातावरण में जाने के बारे में बारीकी से सोच रहे हैं?

निश्चित रूप से आप पहले से ही अपने आप से एक सवाल पूछ चुके हैं: "मुझे क्या करना चाहिए अगर मैंने पहले से ही विंडोज, आरएचईएल, एसयूएस लाइसेंस खरीदे हैं?"
अपने स्वयं के ऑपरेटिंग सिस्टम को स्वतंत्र रूप से स्थापित करना और उनसे
टेम्पलेट तैयार करना आवश्यक है
- संदर्भ सर्वर कॉन्फ़िगरेशन ।
टेम्पलेट तैयार करने के लाभ
- पहली एक त्वरित शुरुआत है। आप एक अनअटेंडेड इंस्टॉलेशन सर्वर या सेंट्रल कॉन्फ़िगरेशन मैनेजमेंट सिस्टम का उपयोग कर सकते हैं, लेकिन टेम्प्लेट से सर्वर इंस्टॉल करना बहुत तेज है।
- दूसरे, टेम्पलेट एक स्थिर और नियंत्रित कॉन्फ़िगरेशन देते हैं। डिबगिंग या नई कार्यक्षमता का परीक्षण करने के लिए, एक गैर-बदलते सर्वर कॉन्फ़िगरेशन और सॉफ़्टवेयर संस्करण बहुत उपयोगी होगा। यह उन परियोजनाओं के लिए विशेष रूप से उपयोगी हो सकता है जहां अपने स्वयं के सॉफ्टवेयर का सक्रिय विकास चल रहा है।
- तीसरा, टेम्पलेट्स का उपयोग आपको जल्दी से पैमाने पर करने की अनुमति देगा, बस उसी प्रकार के नए सर्वरों की आवश्यक संख्या शुरू करना।
- चौथा, टेम्प्लेट का उपयोग अक्सर भौतिक सर्वर को क्लाउड वातावरण या किसी अन्य वर्चुअल वातावरण में ले जाने की प्रक्रिया में किया जाता है।
पहला लिनक्स टेम्पलेट बनाएं
नीचे एक लिनक्स-टेम्प्लेट, स्वचालित पासवर्ड पीढ़ी है, ओएस को लोड करते समय कंसोल पर इसका उत्पादन, साथ ही क्लाउड इन्फ्रास्ट्रक्चर में एक नया वर्चुअल सर्वर तैनात करते समय अन्य स्वचालित क्रियाओं के साथ कैसे आगे बढ़ें। विंडोज-समाधानों के बारे में, यदि दिलचस्पी है, तो बाद में होगी।
उदाहरण के लिए, हमारे क्लाउड (CROC) का उपयोग किया जाता है, लेकिन मैकेनिक सभी अमेज़ॅन-संगत क्लाउड के साथ काम करते हैं।
1. ऑपरेटिंग सिस्टम को अपनी डिस्क से इंस्टॉल करें।
इससे पहले कि आप अपनी आवश्यकता के लिनक्स वितरण को स्थापित करें, आपको फ़ाइल स्टोरेज में इंस्टॉलेशन डिस्क की आइसो-छवि डाउनलोड करनी होगी। ऐसा करने के लिए, हम विशेष c2-s3curl स्क्रिप्ट (http://storage.cloud.croc.ru/tools/c2-s3curl) का उपयोग करेंगे, जो हमारे S3- संगत संग्रहण के साथ बुनियादी फ़ाइल संचालन करने के लिए डिज़ाइन किया गया है।
root@c-jenkins:~# c2-s3curl --put my-bucket/rhel-server-6.1-x86_64-dvd.iso rhel-server-6.1-x86_64-dvd.iso
Uploading object: my-bucket/rhel-server-6.1-x86_64-dvd.iso
######################################################################## 100.0%
OK
हम एक फ़ाइल भंडारण में भरी हुई RedHat Enterprise Linux 6.1 वितरण छवि के उदाहरण का उपयोग करके अधिष्ठापन प्रक्रिया का प्रदर्शन करेंगे। आइसो-फ़ाइल को डाउनलोड करने के बाद, आपको एक डिस्क छवि बनाने की आवश्यकता है जिसका उपयोग स्थापना के लिए किया जाएगा:

एक नए वर्चुअल सर्वर को इंस्टॉल करने में दो चरण होते हैं: इंस्टॉलेशन डिस्क की छवि और सिस्टम डिस्क का आकार, साथ ही वर्चुअल सर्वर और नेटवर्क के मापदंडों को चुनना। पहले चरण में, हम एक नया उदाहरण बनाना चाहते हैं:

दूसरे चरण में, नए वर्चुअल सर्वर के पर्यावरण और मापदंडों को कॉन्फ़िगर किया गया है। हम सभी डिफ़ॉल्ट सेटिंग्स छोड़ देंगे, केवल उदाहरण के प्रकार को बदलकर, सर्वर में कुछ संसाधन जोड़ने से, ताकि इंस्टालेशन तेज हो।

एक नया उदाहरण शुरू करने के बाद, हम इंस्टॉलेशन प्रक्रिया को पूरा करने के लिए रिमोट कंसोल का उपयोग करेंगे (चित्र के माध्यम से वर्चुअल नेटवर्क और सर्वर के बारे में आईपी जानकारी हटा दी जाती है):

ओएस स्थापित करें (हम विस्तार से ध्यान नहीं देंगे):

इंस्टॉलेशन पूर्ण होने के बाद, आपके पास इंस्टालेशन के दौरान निर्दिष्ट यूज़रनेम और पासवर्ड के साथ सिस्टम में लॉग इन करने का अवसर है, जिसके बाद टेम्प्लेट के लिए सभी आवश्यक ऑपरेटिंग सिस्टम सेटिंग्स को पूरा करना आवश्यक होगा।
अपना खुद का लिनक्स टेम्पलेट बनाना
हम udv से नेटवर्क इंटरफेस बनाने के नियम हटाते हैं:
root@localhost:~# rm -Rf /etc/udev/rules.d/70-persistent-net.rules
यह कदम आवश्यक है ताकि टेम्पलेट से एक नया वर्चुअल सर्वर शुरू करने के बाद, ऑपरेटिंग सिस्टम नेटवर्क इंटरफेस को फिर से बनाता है, हाइपरविजर से मैक पते के बारे में नई जानकारी प्राप्त करता है।
फिर आपको पहले नेटवर्क इंटरफ़ेस के बारे में जानकारी को संपादित करने की आवश्यकता है, जो आमतौर पर वर्चुअल नेटवर्क से जुड़ती है जहां डीएचसीपी सर्वर काम करता है:
[root@ i-F98949C2 ~]# cat >> /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
DEVICE="eth0"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
EOF
इस चरण के बिना, टेम्पलेट से बनाया गया सर्वर क्लाउड से नेटवर्क सेटिंग्स प्राप्त नहीं करेगा और इसे कनेक्ट करना असंभव होगा।
अब सुनिश्चित करें कि ऑपरेटिंग सिस्टम बूट होने पर SSH सर्वर शुरू हो जाएगा।
[root@@ i-F98949C2~]# chkconfig --list | grep ssh
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
तब - कि ऑपरेटिंग सिस्टम का फ़ायरवॉल SSH सर्वर से कनेक्शन को छोड़ देता है। कुछ मामलों में, आप इसे पूरी तरह से अक्षम कर सकते हैं, क्योंकि हमारे क्लाउड में प्रत्येक वर्चुअल नेटवर्क के लिए आपके पास पहले से ही एक फ़ायरवॉल है जो आने वाले सभी ट्रैफ़िक को ब्लॉक करता है।
अगला चरण एक नया सर्वर शुरू होने पर प्रत्येक बार स्वचालित रूप से उत्पन्न होने के लिए व्यवस्थापक पासवर्ड सेट करना है।
[root@ i-F98949C2 ~]# cat >> /etc/rc.local << EOF
sh /usr/sbin/set-ssh-key.sh
EOF
फ़ाइल की सामग्री /usr/sbin/set-ssh-key.sh
#!/bin/sh
if [ -f /etc/.ssh_done ]; then
exit 0
fi
getpw()
{
echo `pwqgen`
}
if [ $? -eq 0 ]; then
PWRES=1
while [ $PWRES -eq 1 ];
do
ROOT_PW=$(getpw)
echo $ROOT_PW | passwd root --stdin > /dev/null 2>&1
PWRES=$?
done
echo ""
echo "$ROOT_PW" > /dev/ttyS0
fi
touch /etc/.ssh_done
यह चरण रूट टेम्पलेट उपयोगकर्ता के लिए एक पासवर्ड उत्पन्न करने और इसे सर्वर के सीरियल कंसोल पर जारी करने के लिए आपके टेम्पलेट से प्रत्येक नए सर्वर को बनाने की अनुमति देगा:

वर्चुअल सर्वर पर अतिरिक्त पैरामीटर पास करना
तीसरे आंकड़े में "उपयोगकर्ता डेटा" फ़ील्ड (एक नया वर्चुअल सर्वर बनाने का चरण) एक नया वर्चुअल सर्वर बनाने के चरण में अतिरिक्त मापदंडों, निर्देशों या किसी अन्य जानकारी को आपके सर्वर पर प्रसारित करने का इरादा है। आप वर्चुअल सर्वर के संपूर्ण जीवन चक्र के दौरान इस क्षेत्र से जानकारी प्राप्त कर सकते हैं या वहां लिख सकते हैं। ऐसा करने के लिए, आपको किसी भी उपयोगिता का उपयोग करना होगा जो आपको हमारे क्लाउड के अमेज़ॅन-संगत एपीआई तक पहुंचने की अनुमति देता है। इस लेख में, हम इन उद्देश्यों के लिए हमारे क्लाउड एपीआई के साथ काम को दर्शाने वाली
बोटो यूटिलिटी और एक छोटी स्क्रिप्ट का उपयोग करेंगे:
#!/usr/bin/env python
import sys
import os
from boto.ec2.connection import EC2Connection
import boto
import boto.ec2
from operator import attrgetter
from optparse import OptionParser
from boto.ec2.blockdevicemapping import BlockDeviceType
from boto.ec2.blockdevicemapping import BlockDeviceMapping
from pprint import pprint
import time
import base64
import logging
global region
global conn
AWS_ACCESS_KEY_ID = os.environ['EC2_ACCESS_KEY']
AWS_SECRET_ACCESS_KEY = os.environ['EC2_SECRET_KEY']
logging.basicConfig(filename="boto.log", level=logging.DEBUG)
region = boto.ec2.regioninfo.RegionInfo(name="ru-msk-vol51", endpoint="console.cloud.croc.ru")
conn = boto.connect_ec2(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,
is_secure=False,
region=region,
path="/services/cloud")
def getInstanceUserData(ami):
reservations = conn.get_all_instances()
instances = [i for r in reservations for i in r.instances]
for i in instances:
if (i.__dict__['id'] == ami):
return base64.b64decode(i.get_attribute('userData')['userData'])
return ''
def setInstanceUserData(ami, userData=''):
conn.modify_instance_attribute(ami, 'userData', base64.b64encode(userData))
''' '''
setInstanceUserData('i-9A4D0DDF','test!!!!')
print getInstanceUserData('i-9A4D0DDF')
इस फ़ील्ड का उपयोग करने के लिए एक अतिरिक्त विकल्प प्रशासनिक खाते के लिए पासवर्ड बदलने की क्षमता है यदि पासवर्ड किसी कारण से भूल गया था या खो गया था, साथ ही अतिरिक्त सॉफ़्टवेयर या आपके टेम्पलेट की किसी अन्य सेटिंग को स्थापित करना। अधिक विवरणों पर अलग से विचार किया जा सकता है, यदि रुचि हो, तो विषय बहुत बड़ा है।
सारांश
बादल सहज हैं। सुविधा संदर्भ प्रतिष्ठानों से शुरू होती है - टेम्पलेट। प्रत्येक बार सर्वर को मैन्युअल रूप से कॉन्फ़िगर नहीं करने, अपने लाइसेंस के साथ अपने वितरण का उपयोग करने, समय बचाने, त्रुटियों से बचाने और आमतौर पर प्रक्रियाओं को मानकीकृत करने के लिए टेम्पलेट की आवश्यकता होती है। हमने ऐसा ही एक टेम्पलेट बनाया है।
टिप्पणियों में, मुझे क्लाउड में काम के इस भाग के बारे में सवालों के जवाब देने में खुशी होगी।