Bildiyiniz kimi, Amazon buludunda virtual instansiyalar şəkillər əsasında işə salınır (sözdə
Rəsmi sənədlər təsvir edir
Aralıq addımlar olmadan Amazon buludunda öz EBS dəstəkli AMI-nizi necə yaratmaq bu məqalədə müzakirə olunacaq.
Fəaliyyət Planı:
- Ətraf mühiti hazırlayın
- Təmiz bir sistem quraşdırın və lazımi parametrləri edin
- Diskin şəklini çəkin
- AMI-ni qeydiyyatdan keçirin
Ətraf Mühitin Hazırlanması
Bizim məqsədlərimiz üçün istənilən formanın istənilən nümunəsi, hətta t1.micro da uyğun gəlir. Siz onu CLI vasitəsilə işlədə bilərsiniz:
aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro
Gəlin sistemimizi daha sonra quraşdıracağımız ebs-həcmi yaradaq:
aws ec2 create-volume --availability-zone us-east-1a --size 10
Bu əmr bizim üçün 10 Gb disk edəcək. Vacibdir: disk nümunə ilə eyni zonada olmalıdır (bizim vəziyyətimizdə bu us-şərq-1a).
Sonra, diski nümunəyə əlavə etməlisiniz:
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
İndi ssh vasitəsilə nümunəyə daxil olaq, diski formatlaşdıraq və kataloqa quraşdıraq:
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
Təmiz Centos 5.9 quraşdırılması
Sistemi quraşdırmadan əvvəl qovluq ağacı yaratmalı, proc və sysfs-i quraşdırmalı və minimum cihazlar dəstini yaratmalısınız:
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
Yum və aşağıdakı konfiqurasiya faylından istifadə edərək sistemi quraşdıracağıq:
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
Quraşdırma prosesini tamamladıqdan sonra istənilən lazımi paketləri eyni şəkildə quraşdıra bilərsiniz:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name
fstab-ı redaktə edək:
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-da hələ də xen dəstəyi ilə bir ləpə quraşdırmalısınız:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
Grub quraşdırın:
chroot /mnt/centos-image/ grub-install /dev/xvdf
və yeni bir initrd yaradın:
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
Bütün bu parametrləri və yeni fstab-ı təyin etmək çox vacibdir, əks halda sistem açılmayacaq.
Sonra grub üçün menu.lst faylı yaratmalısınız:
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
Şəbəkəni və sshd-ni konfiqurasiya edək:
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
Beləliklə, işləyən şəbəkə və düymələrdən istifadə edərək instansiyaya daxil olmaq imkanı əldə edəcəyik. Ancaq açarın özü bir şəkildə instansiyaya köçürülməlidir. Bu, açarı götürəcək və onu nümunədə saxlayacaq bir skriptdən istifadə etməklə edilə bilər:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-get-ssh#! / bin / bash
# chkconfig: 2345 95 20
# proses adı: ec2-get-ssh
# təsviri: EC2 istifadəçisi üçün AWS açıq açar etimadnaməsini alın
#Mənbə funksiyası kitabxanası
. /etc/rc.d/init.d/functions
# Mənbə şəbəkə konfiqurasiyası
[ -r /etc/sysconfig/şəbəkə ] &&. /etc/sysconfig/şəbəkə
# Sisteminiz üçün aşağıdakı mühit dəyişənlərini dəyişdirin
ixrac PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# Şəbəkənin konfiqurasiya olunduğunu yoxlayın
əgər [ "${NETWORKING}" = "yox" ]; sonra
echo "Şəbəkə konfiqurasiya edilməyib."
çıxış 1
fi
başlamaq () {
əgər [! -d /root/.ssh ]; sonra
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# HTTP istifadə edərək metadata serverindən ictimai açarı əldə edin
qıvrım -f
əgər [$? -ekv 0 ]; sonra
echo "EC2: HTTP istifadə edərək metadata serverindən ictimai açarı əldə edin."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}
stop() {
echo "Burada heç bir iş yoxdur"
}
yenidən başlamaq() {
dayandırmaq
Başlamaq
}
# Gör bizi necə çağırdılar.
halda "$1" in
başlamaq)
Başlamaq
;;
dayan)
dayandırmaq
;;
yenidən başlamaq)
yenidən başladın
;;
*)
echo $"İstifadə: $0 {start|dayandır|yenidən başladın}"
çıxış 1
bu C
$ çıxış?
Onu icra edilə bilən hala gətirək və başlanğıca əlavə edək:
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-u söndürmək və ya onu düzgün konfiqurasiya etmək də məsləhətdir. Əks halda, məsələn, açar nümunədə yadda saxlanılmaya bilər.
Bu anda sistemin qurulmasını dayandıra bilərsiniz. Artıq buludda işləməyə hazır təmiz CentOS var. Ebs diskini sistemimizlə ayırmaq və ami qeydiyyatdan keçirmək qalır.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
AMI qeydiyyatı
Bir ebs diskindən ami əldə etmək üçün əvvəlcə diskin şəklini çəkməlisiniz:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
Ami-ni qeydiyyatdan keçirməyin ən asan yolu AWS İdarəetmə Konsolundan keçir. Bunu etmək üçün sadəcə EC2 xidmətində "Snapshots" bölməsinə keçməlisiniz, sizə lazım olanı seçin (bizim vəziyyətimizdə bu, centos-snapdır), üzərinə sağ klikləyin və "Snapshot-dan şəkil yaradın" seçin.
Sonra açılan pəncərədə təxminən aşağıdakı parametrləri seçməlisiniz:
Hansı Kernel ID-ni seçəcəyinizi bu şəkildə öyrənə bilərsiniz:
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
Hamısı budur. İndi nümunələri işə sala bilərsiniz.
Bu şəkildə, çox güman ki, hər hansı bir Linux paylanması ilə bir şəkil yarada bilərsiniz. Ən azı, mütləq Debian (təmiz sistem qurmaq üçün debotstrap istifadə edərək) və Rhel ailəsi.
Mənbə: www.habr.com