သင်သိသည့်အတိုင်း Amazon cloud တွင် ရုပ်ပုံများကိုအခြေခံ၍ virtual instances များ (ဟုခေါ်သည်။
တရားဝင်စာတမ်းမှာ ဖော်ပြထားတယ်။
အလယ်အလတ်အဆင့်များမပါဘဲ Amazon cloud တွင် သင်၏ကိုယ်ပိုင် EBS-ကျောထောက်နောက်ခံပြု AMI ဖန်တီးနည်းကို ဤဆောင်းပါးတွင် ဆွေးနွေးပါမည်။
Action Plan:
- ပတ်ဝန်းကျင်ကို ပြင်ဆင်ပါ။
- သန့်ရှင်းသောစနစ်ကို ထည့်သွင်းပြီး လိုအပ်သော ဆက်တင်များကို ပြုလုပ်ပါ။
- ဒစ်ခ်ကို လျှပ်တစ်ပြက်ရိုက်ပါ။
- 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
ကျွန်ုပ်တို့၏စနစ်ကို နောက်မှထည့်သွင်းမည့် ebs-volume ကို ဖန်တီးကြပါစို့။
aws ec2 create-volume --availability-zone us-east-1a --size 10
ဤအမိန့်တော်သည် ကျွန်ုပ်တို့အတွက် 10 Gb ဒစ်ခ်တစ်ခု ပြုလုပ်ပေးလိမ့်မည်။ အရေးကြီးသည်- ဒစ်ခ်သည် ဥပမာနှင့် တူညီသောဇုန်တွင် ရှိရမည် (ကျွန်ုပ်တို့၏ အခြေအနေတွင်၊ ၎င်းမှာ us-east-1a) ဖြစ်သည်။
ထို့နောက်၊ သင်သည် instance တွင် disk ကို ပူးတွဲရန် လိုအပ်သည်-
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
ယခု ssh မှတဆင့် instance သို့ဝင်ရောက်ပြီး disk ကို format လုပ်ပြီး directory တွင်ထည့်သွင်းကြပါစို့။
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
သန့်ရှင်းသော Centos 5.9 ကို ထည့်သွင်းခြင်း။
စနစ်ထည့်သွင်းခြင်းမပြုမီ၊ သင်သည် directory tree၊ mount 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 နှင့် အောက်ပါ configuration file ကိုအသုံးပြု၍ system ကို install လုပ်ပါမည်။
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 ပံ့ပိုးမှုဖြင့် kernel ကို ထည့်သွင်းရန် လိုအပ်ပါသေးသည်။
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
Grub ကို ထည့်သွင်းပါ-
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 အသစ်တစ်ခုကို သတ်မှတ်ရန် အလွန်အရေးကြီးသည်၊ သို့မဟုတ်ပါက စနစ်သည် boot မည်မဟုတ်ပါ။
ထို့နောက် 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 ကို configure လုပ်ကြပါစို့။
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
ထို့ကြောင့်၊ ကျွန်ုပ်တို့သည် အလုပ်လုပ်သော ကွန်ရက်တစ်ခုနှင့် သော့များကို အသုံးပြု၍ instance သို့ လော့ဂ်လုပ်နိုင်စွမ်းကို ရရှိမည်ဖြစ်သည်။ ဒါပေမယ့် သော့ကို ကိုယ်တိုင်က သာဓကကို တစ်နည်းနည်းနဲ့ လွှဲပြောင်းဖို့ လိုပါတယ်။ သော့ကိုယူကာ ၎င်းကို ဥပမာတွင်သိမ်းဆည်းမည့် script ကိုအသုံးပြု၍ ၎င်းကိုလုပ်ဆောင်နိုင်သည်-
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-get-ssh#! / bin / bash
# 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
# ကွန်ရက်ချိတ်ဆက်မှုပုံစံကို စစ်ဆေးပါ။
if [ "${NETWORKING}" = "မရှိ" ]; ထို့နောက်
echo "Networking is not configured."
ထွက်ပေါက် ၃၁
fi
start () {
အကယ်၍ [! -d /root/.ssh ]; ထို့နောက်
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# HTTP သုံးပြီး မက်တာဒေတာဆာဗာမှ အများသူငှာသော့ကို ရယူပါ။
curl -f
အကယ်၍ [$? -eq 0 ]; ထို့နောက်
"EC2- HTTP သုံးပြီး မက်တာဒေတာဆာဗာမှ အများသူငှာသော့ကို ထုတ်ယူပါ။"
ကြောင် /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}"
ထွက်ပေါက် ၃၁
C ကို
ထွက်ခွာ $?
၎င်းကို executable ပြုလုပ်ပြီး startup သို့ ထည့်ကြပါစို့။
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 ကို ပိတ်ရန် သို့မဟုတ် ၎င်းကို မှန်ကန်စွာ စီစဉ်သတ်မှတ်ရန်လည်း အကြံပြုလိုပါသည်။ မဟုတ်ပါက၊ ဥပမာ၊ သော့ကို သာဓကတွင် သိမ်းဆည်းမည် မဟုတ်ပါ။
ဤအချိန်တွင် သင်သည် စနစ်ထည့်သွင်းခြင်းကို ရပ်တန့်နိုင်သည်။ ကျွန်ုပ်တို့တွင် Cloud တွင်လည်ပတ်ရန် သန့်စင်သော CentOS အဆင်သင့်ရှိနှင့်ပြီးဖြစ်သည်။ ကျန်သည်မှာ ကျွန်ုပ်တို့၏စနစ်ဖြင့် ebs disk ကိုဖြုတ်ပြီး ami ကို စာရင်းသွင်းရန်ဖြစ်သည်။
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
AMI မှတ်ပုံတင်ခြင်း။
ebs disk တစ်ခုမှ ami ကိုရယူရန်၊ သင်သည် ဦးစွာ disk ၏လျှပ်တစ်ပြက်ရိုက်ယူရန် လိုအပ်သည်-
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
ami ကို စာရင်းသွင်းရန် အလွယ်ကူဆုံးနည်းလမ်းမှာ AWS Management Console မှတဆင့်ဖြစ်သည်။ ၎င်းကိုလုပ်ဆောင်ရန်၊ သင်သည် EC2 ဝန်ဆောင်မှုရှိ "Snapshots" ကဏ္ဍသို့သွားရန်လိုအပ်ပြီး၊ သင်လိုအပ်သောအရာကိုရွေးချယ်ပါ (ကျွန်ုပ်တို့၏ကိစ္စတွင်၎င်းသည် centos-snap ဖြစ်သည်) ၎င်းပေါ်တွင် right-click နှိပ်ပြီး "Snapshot မှပုံဖန်တီးရန်" ကိုရွေးချယ်ပါ။
ထို့နောက်၊ ပွင့်လာသောဝင်းဒိုးတွင်၊ သင်သည် ခန့်မှန်းခြေအားဖြင့် အောက်ပါဘောင်များကို ရွေးချယ်ရန် လိုအပ်သည်-
မည်သည့် Kernel ID ကို ရွေးချယ်ရမည်ကို အောက်ပါအတိုင်း သင်ရှာတွေ့နိုင်ပါသည်။
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
ဒါပါပဲ။ ယခု သင်သည် သာဓကများကို စတင်နိုင်ပါပြီ။
ဤနည်းအားဖြင့် သင်သည် မည်သည့် Linux ဖြန့်ဖြူးမှုဖြင့်မဆို ပုံတစ်ပုံကို ဖန်တီးနိုင်သည်။ အနည်းဆုံး၊ Debian (သန့်ရှင်းသောစနစ်ထည့်သွင်းရန် debootstrap ကိုအသုံးပြု) နှင့် Rhel-family။
source: www.habr.com