Amazon cloud හි පිරිසිදු CentOS 5.9 සමඟ ඔබේම රූපයක් නිර්මාණය කිරීම

ඔබ දන්නා පරිදි, ඇමේසන් වලාකුළෙහි අතථ්‍ය අවස්ථා රූප මත පදනම්ව දියත් කෙරේ (ඊනියා AMI) Amazon ඒවායින් විශාල සංඛ්‍යාවක් සපයයි; ඔබට තෙවන පාර්ශවයන් විසින් සකස් කරන ලද පොදු රූප ද භාවිතා කළ හැකිය, ඒ සඳහා වලාකුළු සපයන්නා කිසිදු වගකීමක් දරන්නේ නැත. නමුත් සමහර විට ඔබට අවශ්ය පරාමිති සහිත පිරිසිදු පද්ධති රූපයක් අවශ්ය වේ, එය පින්තූර ලැයිස්තුවේ නොමැත. එවිට එකම මාර්ගය වන්නේ ඔබේම 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-පරිමාව නිර්මාණය කරමු, එහිදී අපි අපගේ පද්ධතිය පසුව ස්ථාපනය කරමු:

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

මෙම විධානය අපට 10 Gb තැටියක් සාදනු ඇත. වැදගත්: තැටිය එම කලාපයේම තිබිය යුතුය (අපගේ නඩුවේදී එය 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}" = "no" ] නම්; ඉන්පසු
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
}

නවත්වන්න() {
echo "මෙහි කිරීමට කිසිවක් නැත"
}

යළි අරඹන්න() {
නවත්වන්න
ආරම්භයක්
}

# බලන්න අපිව කැඳෙව්වේ කොහොමද කියලා.
"$1" නඩුව
ආරම්භය)
ආරම්භයක්
;;
නවත්වන්න)
නවත්වන්න
;;
යළි අරඹන්න)
නැවත ආරම්භ
;;
*)
echo $"භාවිතය: $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 තැටිය ඉවත් කර ami ලියාපදිංචි කිරීම පමණි.

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

AMI ලියාපදිංචිය

ebs තැටියකින් ami ලබා ගැනීමට, ඔබ මුලින්ම තැටියේ ඡායාරූපයක් ගත යුතුය:

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

ami ලියාපදිංචි කිරීමට ඇති පහසුම ක්‍රමය වන්නේ AWS කළමනාකරණ කොන්සෝලය හරහාය. මෙය සිදු කිරීම සඳහා, ඔබට අවශ්‍ය වන්නේ EC2 සේවාවේ "Snapshots" කොටස වෙත ගොස්, ඔබට අවශ්‍ය එක තෝරන්න (අපගේ නඩුවේ එය centos-snap), එය මත දකුණු-ක්ලික් කර "Snapshot වෙතින් රූපයක් සාදන්න" තෝරන්න.
ඉන්පසුව, විවෘත වන කවුළුව තුළ, ඔබ ආසන්න වශයෙන් පහත පරාමිතීන් තෝරාගත යුතුය:

Amazon cloud හි පිරිසිදු 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

අදහස් එක් කරන්න