Dakizuenez, Amazon hodeian instantzia birtualak abiarazten dira irudietan oinarrituta (deiturikoak
Dokumentazio ofizialak deskribatzen du
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
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:
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