ایمیزون کلاؤڈ میں خالص CentOS 5.9 کے ساتھ اپنی تصویر بنانا

جیسا کہ آپ جانتے ہیں، ایمیزون کلاؤڈ میں ورچوئل مثالیں تصاویر کی بنیاد پر شروع کی جاتی ہیں (نام نہاد AMI)۔ ایمیزون ان میں سے ایک بڑی تعداد فراہم کرتا ہے؛ آپ تیسرے فریق کے ذریعہ تیار کردہ عوامی تصاویر بھی استعمال کرسکتے ہیں، جس کے لیے کلاؤڈ فراہم کرنے والا، یقیناً، کوئی ذمہ داری نہیں اٹھاتا ہے۔ لیکن بعض اوقات آپ کو ضروری پیرامیٹرز کے ساتھ ایک صاف سسٹم امیج کی ضرورت ہوتی ہے، جو امیجز کی فہرست میں نہیں ہے۔ پھر ایک ہی راستہ ہے کہ آپ اپنا AMI بنائیں۔

سرکاری دستاویزات بیان کرتی ہیں۔ راستہ ایک "مثال کے طور پر اسٹور کی حمایت یافتہ AMI" بنانا۔ اس نقطہ نظر کا نقصان یہ ہے کہ تیار شدہ تصویر کو بھی "EBS کی حمایت یافتہ AMI" میں تبدیل کرنے کی ضرورت ہوگی۔

درمیانی اقدامات کے بغیر ایمیزون کلاؤڈ میں اپنا ای بی ایس کی حمایت یافتہ AMI کیسے بنائیں اس مضمون میں بحث کی جائے گی۔

ایکشن پلان:

  • ماحول کو تیار کریں۔
  • صاف ستھرا سسٹم انسٹال کریں اور ضروری سیٹنگز بنائیں
  • ڈسک کا سنیپ شاٹ لیں۔
  • AMI رجسٹر کریں۔

ماحول کی تیاری

ہمارے مقاصد کے لیے، کسی بھی شکل کی کوئی بھی مثال موزوں ہے، یہاں تک کہ t1.micro۔ آپ اسے CLI کے ذریعے چلا سکتے ہیں:

aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro

آئیے ای بی ایس حجم بنائیں، جہاں ہم بعد میں اپنا سسٹم انسٹال کریں گے:

aws ec2 create-volume --availability-zone us-east-1a --size 10

یہ کمانڈ ہمارے لیے 10 جی بی ڈسک بنائے گی۔ اہم: ڈسک کا مثال کے طور پر اسی زون میں ہونا چاہیے (ہمارے معاملے میں یہ us-east-1a ہے)۔
اگلا، آپ کو مثال کے ساتھ ڈسک منسلک کرنے کی ضرورت ہے:

aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf

اب آئیے ssh کے ذریعے مثال میں لاگ ان کریں، ڈسک کو فارمیٹ کریں اور اسے ڈائریکٹری میں ماؤنٹ کریں:

mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$

کلین سینٹوس 5.9 انسٹال کرنا

سسٹم کو انسٹال کرنے سے پہلے، آپ کو ڈائرکٹری ٹری، ماؤنٹ proc اور sysfs، اور ڈیوائسز کا کم از کم سیٹ بنانے کی ضرورت ہے:

mkdir centos-image/{boot,tmp,dev,sys,proc,etc,var}
mount -t proc none /mnt/centos-image/proc/
mount -t sysfs none /mnt/centos-image/sys/
for i in console null zero ; do /sbin/MAKEDEV -d /mnt/centos-image/dev -x $i ; done

ہم yum اور درج ذیل کنفیگریشن فائل کا استعمال کرتے ہوئے سسٹم کو انسٹال کریں گے۔
yum-centos.conf

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
exclude=*-debuginfo
gpgcheck=0
obsoletes=1
reposdir=/dev/null

[base]
name=CentOS-5.9 - Base
mirrorlist=http://mirrorlist.centos.org/?release=5.9&arch=x86_64&repo=os
#baseurl=http://mirror.centos.org/centos/5.9/os/x86_64/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[updates]
name=CentOS-5.9 - Updates
mirrorlist=http://mirrorlist.centos.org/?release=5.9&arch=x86_64&repo=updates
#baseurl=http://mirror.centos.org/centos/5.9/updates/x86_64/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

[extras]
name=CentOS-5.9 - Extras
mirrorlist=http://mirrorlist.centos.org/?release=5.9&arch=x86_64&repo=extras
#baseurl=http://mirror.centos.org/centos/5.9/extras/x86_64/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-5

[centosplus]
name=CentOS-5.9 - Plus
mirrorlist=http://mirrorlist.centos.org/?release=5.9&arch=x86_64&repo=centosplus
#baseurl=http://mirror.centos.org/centos/5.9/centosplus/x86_64/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-5

[contrib]
name=CentOS-5.9 - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=5.9&arch=x86_64&repo=contrib
#baseurl=http://mirror.centos.org/centos/5.9/contrib/x86_64/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-5

yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y groupinstall Base

تنصیب کے عمل کو مکمل کرنے کے بعد، آپ کسی بھی ضروری پیکج کو اسی طرح انسٹال کر سکتے ہیں:

yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name

آئیے fstab میں ترمیم کریں:

vi /mnt/centos-image

/dev/xvda1  /      ext3    defaults        0 0
none       /dev/pts  devpts  gid=5,mode=620  0 0
none       /dev/shm  tmpfs   defaults        0 0
none       /proc     proc    defaults        0 0
none       /sys      sysfs   defaults        0 0

CentOS 5.9 میں آپ کو ابھی بھی xen سپورٹ کے ساتھ دانا انسٹال کرنے کی ضرورت ہے۔

yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen

گرب انسٹال کریں:

chroot /mnt/centos-image/ grub-install /dev/xvdf

اور ایک نیا initrd تیار کریں:

chroot /mnt/centos-image/
cd boot/
mkinitrd --omit-scsi-modules --with=xennet --with=xenblk --fstab=/etc/fstab --preload=xenblk initrd-2.6.18-348.1.1.el5xen.img 2.6.18-348.1.1.el5xen

ان تمام پیرامیٹرز اور ایک نئے fstab کی وضاحت کرنا بہت ضروری ہے، ورنہ سسٹم بوٹ نہیں ہوگا۔
اس کے بعد آپ کو grub کے لیے ایک menu.lst فائل بنانے کی ضرورت ہے:

default=0
timeout=5
hiddenmenu
title CentOS_5.9_(x86_64)
        root (hd0)
        kernel /boot/vmlinuz-2.6.18-348.1.1.el5xen ro root=/dev/xvda1
        initrd /boot/initrd-2.6.18-348.1.1.el5xen.img

آئیے نیٹ ورک اور sshd کو ترتیب دیں:

vi etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no

vi etc/sysconfig/network
NETWORKING=yes

chroot /mnt/centos5img/ chkconfig --level 2345 network on

vi /mnt/centos5img/etc/ssh/sshd_config
...
UseDNS no
PermitRootLogin without-password

اس طرح، ہمیں ایک ورکنگ نیٹ ورک اور کیز کا استعمال کرتے ہوئے مثال میں لاگ ان کرنے کی صلاحیت ملے گی۔ لیکن خود کلید کو کسی نہ کسی طرح مثال میں منتقل کرنے کی ضرورت ہے۔ یہ اسکرپٹ کا استعمال کرتے ہوئے کیا جاسکتا ہے جو کلید لے اور اسے مثال کے طور پر محفوظ کرے:

vi /mnt/centos5img/etc/init.d/ec2-get-ssh

ec2-get-ssh#! / بن / بیش
# chkconfig: 2345 95 20
# عمل کا نام: ec2-get-ssh
# تفصیل: EC2 صارف کے لیے AWS عوامی کلیدی اسناد کیپچر کریں۔

# سورس فنکشن لائبریری
. /etc/rc.d/init.d/functions

# سورس نیٹ ورکنگ کنفیگریشن
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network

# اپنے سسٹم کے لیے درج ذیل ماحولیاتی متغیرات کو تبدیل کریں۔
برآمد PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# چیک کریں کہ نیٹ ورکنگ کنفیگر ہے۔
اگر [ "${NETWORKING}" = "نہیں" ]; پھر
echo "نیٹ ورکنگ کنفیگر نہیں ہے۔"
باہر نکلیں 1
fi

شروع () {
اگر [! -d /root/.ssh]؛ پھر
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# HTTP کا استعمال کرتے ہوئے میٹا ڈیٹا سرور سے عوامی کلید بازیافت کریں۔
curl -f 169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
اگر [$؟ -eq 0]؛ پھر
echo "EC2: HTTP کا استعمال کرتے ہوئے میٹا ڈیٹا سرور سے عوامی کلید بازیافت کریں۔"
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

روکیں () {
"یہاں کرنے کو کچھ نہیں" کی بازگشت
}

دوبارہ شروع کریں() {
روک
شروع کریں
}

#دیکھیں ہمیں کیسا بلایا گیا۔
کیس "$1" میں
شروع)
شروع کریں
;;
رک جاؤ)
روک
;;
دوبارہ شروع کریں)
دوبارہ شروع کریں
;;
*)
echo $"استعمال: $0 {start|stop|restart}"
باہر نکلیں 1
کہ سی

باہر نکلیں $؟
آئیے اسے قابل عمل بنائیں اور اسے اسٹارٹ اپ میں شامل کریں:

chmod +x /mnt/centos-image/etc/init.d/ec2-get-ssh
/usr/sbin/chroot /mnt/centos-image/ /sbin/chkconfig --level 34 ec2-get-ssh on

یہ بھی مشورہ دیا جاتا ہے کہ Selinux کو غیر فعال کریں، یا اسے صحیح طریقے سے ترتیب دیں۔ بصورت دیگر، مثال کے طور پر، کلید کو مثال کے طور پر محفوظ نہیں کیا جا سکتا ہے۔
اس وقت آپ سسٹم کو ترتیب دینا بند کر سکتے ہیں۔ ہمارے پاس پہلے سے ہی خالص CentOS کلاؤڈ میں چلانے کے لیے تیار ہے۔ بس ہمارے سسٹم کے ساتھ ای بی ایس ڈسک کو ان ماؤنٹ کرنا اور امی کو رجسٹر کرنا باقی ہے۔

umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/

AMI رجسٹریشن

ای بی ایس ڈسک سے امی حاصل کرنے کے لیے، آپ کو پہلے ڈسک کا سنیپ شاٹ لینا ہوگا:

aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap

ami رجسٹر کرنے کا سب سے آسان طریقہ AWS مینجمنٹ کنسول کے ذریعے ہے۔ ایسا کرنے کے لیے، آپ کو صرف EC2 سروس میں "اسنیپ شاٹس" سیکشن میں جانے کی ضرورت ہے، جس کی آپ کو ضرورت ہے اسے منتخب کریں (ہمارے معاملے میں یہ سینٹوس اسنیپ ہے)، اس پر دائیں کلک کریں اور "اسنیپ شاٹ سے تصویر بنائیں" کو منتخب کریں۔
پھر، کھلنے والی ونڈو میں، آپ کو تقریباً درج ذیل پیرامیٹرز کو منتخب کرنے کی ضرورت ہے:

ایمیزون کلاؤڈ میں خالص CentOS 5.9 کے ساتھ اپنی تصویر بنانا

آپ یہ جان سکتے ہیں کہ کس کرنل آئی ڈی کا انتخاب کرنا ہے:

aws ec2 describe-images --owner amazon --region us-east-1 --output text | grep "/pv-grub-hd0.*-x86_64" | awk '{print $7}' | grep aki
aki-88aa75e1
aki-b4aa75dd

بس۔ اب آپ مثالیں شروع کر سکتے ہیں۔
اس طرح، آپ کسی بھی لینکس ڈسٹری بیوشن کے ساتھ ایک تصویر بنا سکتے ہیں۔ کم از کم، یقینی طور پر ڈیبین (صاف سسٹم انسٹال کرنے کے لیے ڈیبوٹسٹریپ کا استعمال کرتے ہوئے) اور ریل فیملی۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں