Siç e dini, në cloud Amazon instancat virtuale lëshohen bazuar në imazhe (të ashtuquajturat
Dokumentacioni zyrtar përshkruan
Si të krijoni AMI-në tuaj të mbështetur nga EBS në cloud Amazon pa hapa të ndërmjetëm do të diskutohet në këtë artikull.
Plani i Veprimit:
- Përgatitni mjedisin
- Instaloni një sistem të pastër dhe bëni cilësimet e nevojshme
- Merrni një fotografi të diskut
- Regjistrohu AMI
Përgatitja e Mjedisit
Për qëllimet tona, çdo shembull i çdo forme është i përshtatshëm, edhe t1.micro. Mund ta ekzekutoni përmes CLI:
aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro
Le të krijojmë ebs-volume, ku do të instalojmë sistemin tonë më vonë:
aws ec2 create-volume --availability-zone us-east-1a --size 10
Kjo komandë do të krijojë një disk 10 Gb për ne. E rëndësishme: disku duhet të jetë në të njëjtën zonë me shembullin (në rastin tonë është us-east-1a).
Tjetra, duhet të bashkëngjitni diskun në shembullin:
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
Tani le të hyjmë në shembull përmes ssh, të formatojmë diskun dhe ta montojmë në drejtori:
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
Instalimi i Centos 5.9 i pastër
Para se të instaloni sistemin, duhet të krijoni një pemë direktorie, të montoni proc dhe sysfs dhe të krijoni një grup minimal pajisjesh:
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
Ne do ta instalojmë sistemin duke përdorur yum dhe skedarin e mëposhtëm të konfigurimit:
yum-centos.konf
[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
Pas përfundimit të procesit të instalimit, mund të instaloni çdo paketë të nevojshme në të njëjtën mënyrë:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name
Le të modifikojmë 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
Në CentOS 5.9 ju duhet ende të instaloni një kernel me mbështetje xen:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
Instaloni Grub:
chroot /mnt/centos-image/ grub-install /dev/xvdf
dhe gjeneroni një initrd të ri:
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
Është shumë e rëndësishme të specifikoni të gjithë këta parametra dhe një fstab të ri, përndryshe sistemi nuk do të niset.
Më pas ju duhet të krijoni një skedar menu.lst për 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
Le të konfigurojmë rrjetin dhe 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
Kështu, ne do të marrim një rrjet pune dhe aftësinë për t'u identifikuar në shembull duke përdorur çelësat. Por vetë çelësi duhet të transferohet në instancë disi. Kjo mund të bëhet duke përdorur një skript që do të marrë çelësin dhe do ta ruajë atë në shembull:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-get-ssh#! / bin / bash
# chkconfig: 2345 95 20
# emri i procesit: ec2-get-ssh
# përshkrim: Kapni kredencialet e çelësit publik AWS për përdoruesin EC2
#Biblioteka e funksionit të burimit
. /etc/rc.d/init.d/functions
# Konfigurimi i rrjetit burimor
[ -r /etc/sysconfig/rrjet ] &&. /etc/sysconfig/rrjet
# Zëvendësoni variablat e mëposhtëm të mjedisit për sistemin tuaj
eksportoni PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# Kontrollo që rrjeti është i konfiguruar
nëse [ "${NETWORKING}" = "jo" ]; pastaj
echo "Rrjeti nuk është konfiguruar."
dalja 1
fi
fillo () {
nëse [! -d /root/.ssh ]; pastaj
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Merrni çelësin publik nga serveri i meta të dhënave duke përdorur HTTP
kaçurrela -f
nëse [$? -eq 0]; pastaj
echo "EC2: Merr çelësin publik nga serveri i meta të dhënave duke përdorur HTTP."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}
ndalo() {
jehonë "Asgjë për të bërë këtu"
}
Rifillo, fillo përsëri() {
stop
Fillimi
}
# Shikoni si na thirrën.
rasti "$1" in
fillim)
Fillimi
;;
ndal)
stop
;;
Rifillo, fillo përsëri)
restart
;;
*)
echo $"Përdorimi: $0 {fillimi|ndalimi|rifillimi}"
dalja 1
se C
dilni nga $?
Le ta bëjmë atë të ekzekutueshëm dhe ta shtojmë atë në fillim:
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
Këshillohet gjithashtu të çaktivizoni Selinux-in ose ta konfiguroni saktë. Përndryshe, për shembull, çelësi mund të mos ruhet në shembull.
Në këtë pikë mund të ndaloni konfigurimin e sistemit. Ne tashmë kemi CentOS të pastër gati për të ekzekutuar në re. Gjithçka që mbetet është të çmontojmë diskun ebs me sistemin tonë dhe të regjistrojmë ami.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
Regjistrimi AMI
Për të marrë ami nga një disk ebs, së pari duhet të bëni një fotografi të diskut:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
Mënyra më e lehtë për të regjistruar ami është përmes panelit të menaxhimit AWS. Për ta bërë këtë, thjesht duhet të shkoni te seksioni "Snapshots" në shërbimin EC2, zgjidhni atë që ju nevojitet (në rastin tonë është centos-snap), klikoni me të djathtën mbi të dhe zgjidhni "Krijo imazh nga fotografia".
Pastaj, në dritaren që hapet, duhet të zgjidhni afërsisht parametrat e mëposhtëm:
Ju mund të zbuloni se cilën ID të Kernelit të zgjidhni si më poshtë:
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
Kjo eshte e gjitha. Tani mund të nisni shembuj.
Në këtë mënyrë, ju mund të krijoni një imazh, ka shumë të ngjarë, me çdo shpërndarje Linux. Të paktën, patjetër Debian (duke përdorur debootstrap për të instaluar një sistem të pastër) dhe Rhel-family.
Burimi: www.habr.com