Nagu teate, käivitatakse Amazoni pilves virtuaalsed eksemplarid piltide põhjal (nn
Ametlik dokumentatsioon kirjeldab
Selles artiklis käsitletakse seda, kuidas luua oma EBS-i toetatud AMI Amazoni pilves ilma vahepealsete sammudeta.
Tegevuskava:
- Valmistage keskkond ette
- Installige puhas süsteem ja tehke vajalikud seadistused
- Tehke kettalt hetktõmmis
- Registreerige AMI
Keskkonna ettevalmistamine
Meie jaoks sobib iga kujuga eksemplar, isegi t1.micro. Saate seda käivitada CLI kaudu:
aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro
Loome ebs-volume, kuhu hiljem oma süsteemi paigaldame:
aws ec2 create-volume --availability-zone us-east-1a --size 10
See käsk teeb meile 10 Gb ketta. Tähtis: ketas peab asuma eksemplariga samas tsoonis (meie puhul on see us-ida-1a).
Järgmisena peate ketta eksemplari külge ühendama:
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
Logime nüüd ssh-i kaudu eksemplari sisse, vormindame ketta ja ühendame selle kataloogi:
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
Puhta Centos 5.9 installimine
Enne süsteemi installimist peate looma kataloogipuu, ühendama proc ja sysf-id ning looma minimaalse seadmete komplekti:
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
Installime süsteemi yumi ja järgmise konfiguratsioonifaili abil:
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
Pärast installiprotsessi lõpetamist saate kõik vajalikud paketid installida samal viisil:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name
Redigeerime fstab-i:
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-s peate ikkagi installima xeni toega kerneli:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
Installige Grub:
chroot /mnt/centos-image/ grub-install /dev/xvdf
ja genereerige uus 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
On väga oluline määrata kõik need parameetrid ja uus fstab, muidu süsteem ei käivitu.
Järgmiseks peate looma grubi jaoks faili 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
Seadistame võrgu ja 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
Nii saame toimiva võrgu ja võimaluse klahvide abil eksemplari sisse logida. Aga võti ise tuleb kuidagi eksemplari üle kanda. Seda saab teha skripti abil, mis võtab võtme ja salvestab selle eksemplari:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-get-ssh#! / bin / bash
# chkconfig: 2345 95 20
# protsessinimi: ec2-get-ssh
# kirjeldus: jäädvustage AWS-i avaliku võtme mandaadid EC2 kasutaja jaoks
#Allikate funktsioonide teek
. /etc/rc.d/init.d/functions
# Lähtevõrgu konfiguratsioon
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network
# Asendage oma süsteemi jaoks järgmised keskkonnamuutujad
eksport PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# Kontrollige, kas võrguühendus on konfigureeritud
if [ "${NETWORKING}" = "ei" ]; siis
echo "Võrk ei ole konfigureeritud."
väljumine 1
fi
algus () {
kui [! -d /root/.ssh ]; siis
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Hangi avalik võti metaandmete serverist HTTP abil
curl -f
kui [$? -ekv 0]; siis
echo "EC2: tooge avalik võti metaandmete serverist HTTP abil."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/minu-avalik-võti
fi
}
stop() {
kaja "Siin pole midagi teha"
}
Taaskäivita() {
peatus
algus
}
# Vaata, kuidas meid kutsuti.
ümbris "$1" in
algus)
algus
;;
peatus)
peatus
;;
restart)
restart
;;
*)
echo $"Kasutus: $0 {start|stop|restart}"
väljumine 1
et C
väljuda $?
Teeme selle käivitatavaks ja lisame käivitamisse:
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
Samuti on soovitatav Selinux keelata või õigesti konfigureerida. Vastasel juhul ei pruugita võtit näiteks eksemplarile salvestada.
Sel hetkel saate süsteemi seadistamise lõpetada. Meil on juba puhas CentOS pilves töötamiseks valmis. Jääb vaid ebsi ketas meie süsteemiga lahti ühendada ja ami registreerida.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
AMI registreerimine
Ami ebsi kettalt hankimiseks peate esmalt tegema kettalt hetktõmmise:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
Lihtsaim viis ami registreerimiseks on AWS-i halduskonsooli kaudu. Selleks peate lihtsalt minema teenuses EC2 jaotisse "Snapshots", valima vajaliku (meie puhul on see centos-snap), paremklõpsake sellel ja valige "Loo pilt hetktõmmisest".
Seejärel peate avanevas aknas valima ligikaudu järgmised parameetrid:
Saate teada, millist kerneli ID-d valida, toimides järgmiselt.
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
See on kõik. Nüüd saate eksemplare käivitada.
Sel viisil saate luua pildi suure tõenäosusega mis tahes Linuxi distributsiooniga. Vähemalt kindlasti Debian (kasutades debootstrapi puhta süsteemi installimiseks) ja Rhel-perekond.
Allikas: www.habr.com