Kupanga chithunzi chanu ndi CentOS 5.9 yoyera mumtambo wa Amazon

Monga mukudziwira, mumtambo wa Amazon zochitika zenizeni zimayambitsidwa kutengera zithunzi (zotchedwa AMI). Amazon imapereka ambiri aiwo; mutha kugwiritsanso ntchito zithunzi zapagulu zokonzedwa ndi anthu ena, zomwe wopereka mtambo, ndithudi, alibe udindo uliwonse. Koma nthawi zina mumafunika chithunzi choyera chadongosolo ndi magawo ofunikira, omwe sali pamndandanda wazithunzi. Ndiye njira yokhayo yotulukira ndikupanga AMI yanu.

Zolemba zovomerezeka zimalongosola njira kupanga "AMI yothandizidwa ndi sitolo". Choyipa cha njirayi ndikuti chithunzi chomalizidwa chidzafunikanso kusinthidwa kukhala "EBS-backed AMI"

Momwe mungapangire EBS-backed AMI yanu mumtambo wa Amazon popanda masitepe apakatikati tikambirana m'nkhaniyi.

Pulani:

  • Konzani chilengedwe
  • Ikani dongosolo loyera ndikupanga zoikamo zofunika
  • Pezani chithunzi cha disk
  • Lembani AMI

Kukonzekera Chilengedwe

Pazolinga zathu, chitsanzo chilichonse cha mawonekedwe aliwonse ndi abwino, ngakhale t1.micro. Mutha kuyendetsa kudzera pa CLI:

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

Tiyeni tipange ebs-volume, komwe tidzakhazikitsa dongosolo lathu pambuyo pake:

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

Lamuloli litipangira disk 10 Gb kwa ife. Chofunika: disk iyenera kukhala m'dera lomwelo monga chitsanzo (kwa ife ndi ife-kummawa-1a).
Pambuyo pake, muyenera kulumikiza disk ku chitsanzo:

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

Tsopano tiyeni tilowe ku chitsanzo kudzera ssh, pangani disk ndikuyiyika mu bukhuli:

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

Kuyika zoyera za Centos 5.9

Musanayike dongosololi, muyenera kupanga chikwatu, mount proc ndi sysfs, ndikupanga zida zochepa:

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

Tidzakhazikitsa dongosolo pogwiritsa ntchito yum ndi fayilo yotsatirayi:
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

Mukamaliza kukhazikitsa, mutha kukhazikitsa phukusi lililonse lofunikira mwanjira yomweyo:

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

Tiyeni tisinthe 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

Mu CentOS 5.9 mukufunikabe kukhazikitsa kernel ndi chithandizo cha xen:

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

Ikani Grub:

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

ndi kupanga initrd yatsopano:

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

Ndikofunikira kwambiri kufotokozera magawo onsewa ndi fstab yatsopano, apo ayi dongosolo silingayambe.
Kenako muyenera kupanga fayilo ya menyu.lst ya grub:

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

Tiyeni tikonze maukonde ndi 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

Chifukwa chake, tidzakhala ndi netiweki yogwira ntchito ndikutha kulowa mu chitsanzocho pogwiritsa ntchito makiyi. Koma fungulo lokha liyenera kusamutsidwa ku chitsanzo mwanjira ina. Izi zitha kuchitika pogwiritsa ntchito script yomwe ingatenge fungulo ndikulisunga mwachitsanzo:

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

ec2-peza-ssh#! / bin / bash
# chkconfig: 2345 95 20
# processname: ec2-get-ssh
# Kufotokozera: Jambulani zidziwitso zachinsinsi za AWS za wogwiritsa ntchito EC2

#Source ntchito library
. /etc/rc.d/init.d/functions

# Kusintha kwa ma network a Source
[ -r /etc/sysconfig/network] &&. /etc/sysconfig/network

# Sinthani zosintha zotsatirazi pamakina anu
kutumiza PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Onani kuti ma network akukonzedwa
ngati [ "${NETWORKING}" = "ayi"]; ndiye
echo "Networking sinakonzedwe."
tulukani 1
fi

kuyamba () {
ngati [! -d /root/.ssh]; ndiye
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Bweretsani kiyi yapagulu kuchokera pa seva ya metadata pogwiritsa ntchito HTTP
pinda -f 169.254.169.254/posachedwa/meta-data/public-keys/0/opensh-kiyi > /tmp/my-public-key
ngati [$? -eq 0]; ndiye
echo "EC2: Pezani kiyi yapagulu kuchokera pa seva ya metadata pogwiritsa ntchito HTTP."
mphaka /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

Imani() {
echo "Palibe chochita apa"
}

yambitsaninso() {
Imani
chiyambi
}

# Tawonani momwe tinayitanidwa.
mtengo "$1" mkati
kuyamba)
chiyambi
;;
Imani)
Imani
;;
yambitsaninso)
yambitsaninso
;;
*)
echo $"Kagwiritsidwe: $0 {start|imani|yambitsanso}"
tulukani 1
kuti C

kutuluka $?
Tiyeni tipange kuti zitheke ndikuwonjezera poyambira:

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

Ndikoyeneranso kuletsa Selinux, kapena kuyikonza moyenera. Apo ayi, mwachitsanzo, fungulo silingasungidwe panthawiyi.
Panthawiyi mukhoza kusiya kukhazikitsa dongosolo. Tili ndi kale CentOS yokonzeka kuthamanga mumtambo. Chotsalira ndikutsitsa disk ebs ndi dongosolo lathu ndikulembetsa ami.

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

Kulembetsa kwa AMI

Kuti mupeze ami kuchokera ku ebs disk, choyamba muyenera kujambula chithunzithunzi cha disk:

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

Njira yosavuta yolembera ami ndi kudzera pa AWS Management Console. Kuti muchite izi, muyenera kupita ku gawo la "Snapshots" muutumiki wa EC2, sankhani yomwe mukufuna (kwathu ndi centos-snap), dinani pomwepa ndikusankha "Pangani Chithunzi kuchokera ku Chithunzithunzi"
Kenako, pawindo lomwe limatsegulidwa, muyenera kusankha pafupifupi magawo awa:

Kupanga chithunzi chanu ndi CentOS 5.9 yoyera mumtambo wa Amazon

Mutha kudziwa ID ya Kernel yomwe mungasankhe motere:

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

Ndizomwezo. Tsopano mutha kuyambitsa zochitika.
Mwanjira iyi, mutha kupanga chithunzi, mwina, ndi kugawa kulikonse kwa Linux. Osachepera, ndithudi Debian (pogwiritsa ntchito debootstrap kukhazikitsa dongosolo loyera) ndi Rhel-family.

Source: www.habr.com

Kuwonjezera ndemanga