Zure irudia sortzea CentOS 5.9 puruarekin Amazon hodeian

Dakizuenez, Amazon hodeian instantzia birtualak abiarazten dira irudietan oinarrituta (deiturikoak AMI). Amazonek horietako kopuru handia eskaintzen du; hirugarrenek prestatutako irudi publikoak ere erabil ditzakezu, eta hodeiko hornitzaileak, noski, ez du inolako erantzukizunik hartzen. Baina batzuetan sistemaren irudi garbi bat behar duzu beharrezko parametroekin, irudien zerrendan ez dagoena. Orduan, aterabide bakarra zure AMI propioa egitea da.

Dokumentazio ofizialak deskribatzen du modu "instantzia-dendan babestutako AMI" bat sortzea. Ikuspegi honen desabantaila da amaitutako irudia "EBS babestutako AMI" batean ere bihurtu beharko dela.

Artikulu honek Amazon hodeian zure EBS-en babestutako AMI nola sortu eztabaidatuko du tarteko urratsik gabe.

Ekintza Plana:

  • Ingurumena prestatu
  • Instalatu sistema garbi bat eta egin beharrezko ezarpenak
  • Hartu diskoaren argazki bat
  • Erregistratu AMI

Ingurumena prestatzea

Gure helburuetarako, edozein formatako edozein instantzia egokia da, baita t1.micro ere. CLI bidez exekutatu dezakezu:

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

Sortu dezagun ebs-volume, non gero gure sistema instalatuko dugun:

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

Komando honek 10 Gb-ko disko bat egingo digu. Garrantzitsua: diskoak instantziaren eremu berean egon behar du (gure kasuan us-east-1a da).
Ondoren, diskoa instantziara erantsi behar duzu:

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

Hasi saioa instantzian ssh bidez, formateatu diskoa eta muntatu direktorioan:

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

Centos garbia instalatzea 5.9

Sistema instalatu aurretik, direktorioen zuhaitza sortu behar duzu, proc eta sysfs muntatu eta gutxieneko gailu multzo bat sortu behar duzu:

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

Sistema yum eta konfigurazio fitxategi hau erabiliz instalatuko dugu:
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

Instalazio-prozesua amaitu ondoren, beharrezko paketeak instala ditzakezu modu berean:

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

Editatu dezagun 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-n oraindik xen euskarria duen nukleo bat instalatu behar duzu:

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

Instalatu Grub:

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

eta sortu initrd berri bat:

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

Oso garrantzitsua da parametro hauek guztiak eta fstab berri bat zehaztea, bestela sistema ez da abiaraziko.
Ondoren menu.lst fitxategi bat sortu behar duzu grub-erako:

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

Konfigura ditzagun sarea eta 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

Horrela, funtzionatzen duen sare bat lortuko dugu eta gakoak erabiliz instantzian saioa hasteko gaitasuna lortuko dugu. Baina gakoa bera instantziara transferitu behar da nolabait. Hau giltza hartu eta instantzian gordeko duen script bat erabiliz egin daiteke:

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

ec2-get-ssh#! / Bin / bash
# chkconfig: 2345 95 20
# prozesu izena: ec2-get-ssh
# deskribapena: Harrapatu AWS gako publikoaren kredentzialak EC2 erabiltzailearentzat

#Source funtzio liburutegia
. /etc/rc.d/init.d/functions

# Iturburu sarearen konfigurazioa
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network

# Ordeztu hurrengo ingurune-aldagaiak zure sistemarako
esportatu PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Egiaztatu sareak konfiguratuta daudela
if [ "${NETWORKING}" = "ez" ]; gero
echo "Sarea ez dago konfiguratuta."
1. irteera
fi

hasi () {
bada [! -d /root/.ssh]; gero
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Berreskuratu gako publikoa metadatuen zerbitzaritik HTTP erabiliz
kizkur -f 169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/nire-gako-publikoa
bada [$? -eq 0]; gero
echo "EC2: Berreskuratu gako publikoa metadatuen zerbitzaritik HTTP erabiliz."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/nire-gako-publikoa
fi
}

gelditu() {
oihartzuna "Hemen ez dago ezer egiterik"
}

berriro hasi() {
gelditu
Hasi
}

# Ikusi nola deitzen gintuzten.
"$1" kasua
hasi)
Hasi
;;
gelditu)
gelditu
;;
berriro hasi)
berrabiarazi
;;
*)
echo $"Erabilera: $0 {hasi|gelditu|berrabiarazi}"
1. irteera
C hori

$ atera?
Egin dezagun exekutagarria eta gehitu abiarazteko:

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 desgaitzea ere komeni da, edo behar bezala konfiguratzea. Bestela, adibidez, baliteke gakoa instantzian ez gordetzea.
Une honetan sistema konfiguratzeari utzi dezakezu. Dagoeneko CentOS hutsa dugu hodeian exekutatzeko prest. Gure sistemarekin ebs diskoa desmuntatu eta ami erregistratzea besterik ez da geratzen.

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

AMI erregistroa

Ebs disko batetik ami lortzeko, lehenik diskoaren argazki bat atera behar duzu:

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

Ami erregistratzeko modurik errazena AWS Kudeaketa Kontsolaren bidez da. Horretarako, EC2 zerbitzuko "Snapshots" atalera joan besterik ez duzu behar, hautatu behar duzuna (gure kasuan centos-snap da), egin klik eskuineko botoiarekin eta hautatu "Sortu Irudia Snapshottik".
Ondoren, irekitzen den leihoan, gutxi gorabehera, parametro hauek hautatu behar dituzu:

Zure irudia sortzea CentOS 5.9 puruarekin Amazon hodeian

Honela jakin dezakezu zer Kernel ID aukeratu:

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

Hori da dena. Orain instantziak abiarazi ditzakezu.
Horrela, irudi bat sor dezakezu, ziurrenik, edozein Linux banaketarekin. Behintzat, behin betiko Debian (sistema garbi bat instalatzeko debootstrap erabiliz) eta Rhel-familia.

Iturria: www.habr.com

Gehitu iruzkin berria