Búðu til þína eigin mynd með hreinu CentOS 5.9 í Amazon skýinu

Eins og þú veist, í Amazon skýinu eru sýndartilvik hleypt af stokkunum byggð á myndum (svokallaða AMI). Amazon útvegar mikinn fjölda þeirra; þú getur líka notað opinberar myndir sem unnar eru af þriðja aðila, sem skýjaveitan ber að sjálfsögðu enga ábyrgð á. En stundum þarftu hreina kerfismynd með nauðsynlegum breytum, sem er ekki á listanum yfir myndir. Þá er eina leiðin út að búa til eigin AMI.

Opinbera skjölin lýsa leið búa til „tilviksstýrt AMI“. Ókosturinn við þessa nálgun er að fullunna myndinni þarf einnig að breyta í „EBS-studd AMI“

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 169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
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:

Búðu til þína eigin mynd með hreinu CentOS 5.9 í Amazon skýinu

Þú 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

Bæta við athugasemd