Амазоны үүлэн дээр цэвэр CentOS 5.9 ашиглан өөрийн дүр төрхийг бий болгох

Та бүхний мэдэж байгаагаар, Амазоны үүлэнд виртуал инстанцуудыг зураг дээр үндэслэн ажиллуулдаг (гэж нэрлэгддэг БИ ЮУ). Амазон олон тооны үйлчилгээгээр хангадаг бөгөөд та гуравдагч этгээдийн бэлтгэсэн олон нийтийн зургийг ашиглаж болно, үүнд үүл үйлчилгээ үзүүлэгч ямар ч хариуцлага хүлээхгүй. Гэхдээ заримдаа зургийн жагсаалтад ороогүй шаардлагатай параметр бүхий цэвэр системийн дүрс хэрэгтэй болдог. Дараа нь цорын ганц гарц бол өөрийн AMI-г хийх явдал юм.

Албан ёсны баримт бичигт тайлбарлав арга зам "Жишээ дэлгүүрт тулгуурласан AMI" үүсгэх. Энэ аргын сул тал нь дууссан зургийг мөн "EBS-ээр дэмжигдсэн AMI" болгон хувиргах шаардлагатай болно.

Завсрын алхамгүйгээр Amazon үүлэн дээр 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-bolume үүсгэцгээе:

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 !$

Цэвэр Centos 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#! / 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

# Сүлжээ тохируулагдсан эсэхийг шалгана уу
хэрэв [ "${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
}

Зогс() {
echo "Энд хийх зүйл алга"
}

дахин ачааллах() {
Зогс
эхлэх
}

# Биднийг хэрхэн дуудсаныг хараарай.
"$1" тохиолдолд
эхлэх)
эхлэх
;;
Зогс)
Зогс
;;
дахин ачааллах)
дахин ачааллах
;;
*)
echo $"Хэрэглээ: $0 {эхлүүлэх|зогсоох|дахин эхлүүлэх}"
гарах 1
тэр C

$ гарах уу?
Үүнийг гүйцэтгэх боломжтой болгож, эхлүүлэхэд нэмнэ үү:

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 дискээ салгаад амийг бүртгэх л үлдлээ.

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

Ами-г бүртгүүлэх хамгийн хялбар арга бол AWS Management Console юм. Үүнийг хийхийн тулд та EC2 үйлчилгээний "Snapshots" хэсэгт очиж, хэрэгтэй зүйлээ сонгоод (манай тохиолдолд энэ нь centos-snap), хулганы баруун товчийг дараад "Snapshot-аас зураг үүсгэх" гэснийг сонгоно уу.
Дараа нь нээгдэх цонхонд та ойролцоогоор дараах параметрүүдийг сонгох хэрэгтэй.

Амазоны үүлэн дээр цэвэр CentOS 5.9 ашиглан өөрийн дүр төрхийг бий болгох

Та аль цөмийн 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

Тэгээд л болоо. Одоо та жишээнүүдийг эхлүүлж болно.
Ийм байдлаар та ямар ч Линукс түгээлттэй зураг үүсгэж болно. Наад зах нь мэдээж Debian (цэвэр систем суулгахын тулд debootstrap) болон Rhel-гэр бүл.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх