Eins og þú veist, í Amazon skýinu eru sýndartilvik hleypt af stokkunum byggð á myndum (svokallaða
Opinbera skjölin lýsa
Hvernig á að búa til þitt eigið EBS-studd AMI í Amazon skýinu án millistigs verður fjallað um í þessari grein.
Aðgerðaáætlun:
- Undirbúðu umhverfið
- Settu upp hreint kerfi og gerðu nauðsynlegar stillingar
- Taktu mynd af disknum
- Skráðu AMI
Undirbúningur umhverfisins
Í okkar tilgangi henta hvaða tilvik af hvaða lögun sem er, jafnvel t1.micro. Þú getur keyrt það í gegnum CLI:
aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro
Við skulum búa til ebs-volume, þar sem við munum setja upp kerfið okkar síðar:
aws ec2 create-volume --availability-zone us-east-1a --size 10
Þessi skipun mun búa til 10 Gb disk fyrir okkur. Mikilvægt: diskurinn verður að vera á sama svæði og tilvikið (í okkar tilfelli er það us-east-1a).
Næst þarftu að tengja diskinn við dæmið:
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
Nú skulum við skrá okkur inn á tilvikið í gegnum ssh, forsníða diskinn og tengja hann í möppuna:
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
Að setja upp hreint Centos 5.9
Áður en kerfið er sett upp þarftu að búa til möpputré, tengja proc og sysfs og búa til lágmarkssett af tækjum:
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
Við munum setja upp kerfið með því að nota yum og eftirfarandi stillingarskrá:
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
Eftir að uppsetningarferlinu er lokið geturðu sett upp nauðsynlega pakka á sama hátt:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name
Við skulum breyta 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 þarftu samt að setja upp kjarna með xen stuðningi:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
Settu upp Grub:
chroot /mnt/centos-image/ grub-install /dev/xvdf
og búðu til nýjan 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
Það er mjög mikilvægt að tilgreina allar þessar breytur og nýjan fstab, annars ræsist kerfið ekki.
Næst þarftu að búa til menu.lst skrá fyrir 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
Við skulum stilla netið og 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
Þannig munum við fá virkt net og getu til að skrá þig inn í tilvikið með því að nota lyklana. En lykilinn sjálfur þarf að flytja yfir í dæmið einhvern veginn. Þetta er hægt að gera með því að nota skriftu sem tekur lykilinn og vistar hann á tilvikinu:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-get-ssh#! / bin / bash
# chkconfig: 2345 95 20
# vinnsluheiti: ec2-get-ssh
# lýsing: Handtaka AWS opinbera lykilskilríki fyrir EC2 notanda
#Source aðgerðasafn
. /etc/rc.d/init.d/functions
# Uppruni netkerfis
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network
# Skiptu um eftirfarandi umhverfisbreytur fyrir kerfið þitt
export PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# Athugaðu að netkerfi sé stillt
if [ "${NETWORKING}" = "nei" ]; Þá
echo "Netkerfi er ekki stillt."
útgönguleið 1
fi
byrja () {
ef [! -d /rót/.ssh ]; Þá
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Sæktu opinberan lykil af lýsigagnaþjóni með HTTP
krulla -f
ef [$? -jafngildi 0]; Þá
echo "EC2: Sæktu opinberan lykil af lýsigagnaþjóni með HTTP."
köttur /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}
stöðva() {
echo "Ekkert að gera hér"
}
endurræsa() {
hætta
Byrja
}
# Sjáðu hvernig við vorum kölluð.
tilfelli "$1" í
byrja)
Byrja
;;
hætta)
hætta
;;
endurræsa)
endurræsa
;;
*)
echo $"Notkun: $0 {byrja|stöðva|endurræsa}"
útgönguleið 1
að C
hætta $?
Við skulum gera það keyranlegt og bæta því við ræsingu:
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
Það er líka ráðlegt að slökkva á Selinux eða stilla það rétt. Annars gæti til dæmis lykillinn ekki verið vistaður á tilvikinu.
Á þessum tímapunkti geturðu hætt að setja upp kerfið. Við höfum nú þegar hreint CentOS tilbúið til að keyra í skýinu. Allt sem er eftir er að aftengja ebs diskinn með kerfinu okkar og skrá ami.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
AMI skráning
Til að fá ami af ebs diski þarftu fyrst að taka skyndimynd af disknum:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
Auðveldasta leiðin til að skrá ami er í gegnum AWS Management Console. Til að gera þetta þarftu bara að fara í hlutann „Snapshots“ í EC2 þjónustunni, velja þann sem þú þarft (í okkar tilfelli er það centos-snap), hægrismelltu á það og veldu „Create Image from Snapshot“
Síðan, í glugganum sem opnast, þarftu að velja um það bil eftirfarandi færibreytur:
Þú getur fundið út hvaða kjarnaauðkenni á að velja á eftirfarandi hátt:
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
Það er allt og sumt. Nú geturðu ræst tilvik.
Á þennan hátt geturðu búið til mynd, líklegast, með hvaða Linux dreifingu sem er. Að minnsta kosti, örugglega Debian (notar debootstrap til að setja upp hreint kerfi) og Rhel-family.
Heimild: www.habr.com