அமேசான் கிளவுட்டில் தூய CentOS 5.9 மூலம் உங்கள் சொந்த படத்தை உருவாக்குதல்

உங்களுக்குத் தெரியும், அமேசான் கிளவுட்டில் மெய்நிகர் நிகழ்வுகள் படங்களின் அடிப்படையில் தொடங்கப்படுகின்றன (என்று அழைக்கப்படும் AMI) அமேசான் அவற்றில் அதிக எண்ணிக்கையை வழங்குகிறது; மூன்றாம் தரப்பினரால் தயாரிக்கப்பட்ட பொதுப் படங்களையும் நீங்கள் பயன்படுத்தலாம், இதற்காக கிளவுட் வழங்குநர் எந்தப் பொறுப்பையும் ஏற்கவில்லை. ஆனால் சில நேரங்களில் உங்களுக்கு தேவையான அளவுருக்கள் கொண்ட சுத்தமான கணினி படம் தேவை, இது படங்களின் பட்டியலில் இல்லை. உங்கள் சொந்த AMI ஐ உருவாக்குவதே ஒரே வழி.

அதிகாரப்பூர்வ ஆவணம் விவரிக்கிறது வழியில் "உதாரண ஸ்டோர்-ஆதரவு AMI" ஐ உருவாக்குகிறது. இந்த அணுகுமுறையின் குறைபாடு என்னவென்றால், முடிக்கப்பட்ட படத்தையும் "EBS-ஆதரவு AMI" ஆக மாற்ற வேண்டும்.

இடைநிலை படிகள் இல்லாமல் அமேசான் கிளவுட்டில் உங்கள் சொந்த EBS ஆதரவு 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

ebs-volume ஐ உருவாக்குவோம், அங்கு எங்கள் கணினியை பின்னர் நிறுவுவோம்:

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

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 ஐ குறிப்பிடுவது மிகவும் முக்கியம், இல்லையெனில் கணினி துவக்காது.
அடுத்து நீங்கள் 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}" = "இல்லை" ]; பிறகு
எதிரொலி "நெட்வொர்க்கிங் கட்டமைக்கப்படவில்லை."
வெளியேறு 1
fi

தொடக்கம் () {
என்றால் [! -d /root/.ssh ]; பிறகு
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# HTTP ஐப் பயன்படுத்தி மெட்டாடேட்டா சேவையகத்திலிருந்து பொது விசையை மீட்டெடுக்கவும்
சுருட்டை -f 169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
என்றால் [ $? -eq 0 ]; பிறகு
எதிரொலி "EC2: HTTP ஐப் பயன்படுத்தி மெட்டாடேட்டா சேவையகத்திலிருந்து பொது விசையை மீட்டெடுக்கவும்."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

நிறுத்து() {
எதிரொலி "இங்கே செய்ய ஒன்றுமில்லை"
}

மறுதொடக்கம்() {
நிறுத்த
தொடக்கத்தில்
}

# நாங்கள் எப்படி அழைக்கப்பட்டோம் என்று பாருங்கள்.
வழக்கு "$1" இல்
ஆரம்பம்)
தொடக்கத்தில்
;;
நிறுத்து)
நிறுத்த
;;
மறுதொடக்கம்)
மறுதொடக்கம்
;;
*)
எதிரொலி $"பயன்பாடு: $0 {தொடக்கம்|நிறுத்து|மறுதொடக்கம்}"
வெளியேறு 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 தயாராக உள்ளது. எங்கள் கணினியில் ebs வட்டை அவிழ்த்துவிட்டு AMஐ பதிவு செய்வது மட்டுமே எஞ்சியுள்ளது.

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

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

அவ்வளவுதான். இப்போது நீங்கள் நிகழ்வுகளைத் தொடங்கலாம்.
இந்த வழியில், நீங்கள் எந்த லினக்ஸ் விநியோகத்திலும் ஒரு படத்தை உருவாக்கலாம். குறைந்தபட்சம், கண்டிப்பாக Debian (சுத்தமான அமைப்பை நிறுவ debootstrap ஐப் பயன்படுத்துதல்) மற்றும் Rhel-family.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்