Kuunda picha yako mwenyewe na CentOS 5.9 safi kwenye wingu la Amazon

Kama unavyojua, katika wingu la Amazon matukio ya kawaida yanazinduliwa kulingana na picha (kinachojulikana AMI) Amazon hutoa idadi kubwa yao; unaweza pia kutumia picha za umma zilizoandaliwa na watu wengine, ambayo mtoaji wa wingu, bila shaka, hana jukumu lolote. Lakini wakati mwingine unahitaji picha ya mfumo safi na vigezo muhimu, ambayo haipo kwenye orodha ya picha. Kisha njia pekee ya nje ni kutengeneza AMI yako mwenyewe.

Nyaraka rasmi zinaelezea njia kuunda "AMI inayoungwa mkono na duka ya mfano". Ubaya wa mbinu hii ni kwamba picha iliyokamilishwa pia itahitaji kubadilishwa kuwa "AMI inayoungwa mkono na EBS"

Jinsi ya kuunda AMI yako mwenyewe inayoungwa mkono na EBS kwenye wingu la Amazon bila hatua za kati itajadiliwa katika nakala hii.

Mpango wa utekelezaji:

  • Tayarisha mazingira
  • Sakinisha mfumo safi na ufanye mipangilio muhimu
  • Chukua picha ya diski
  • Sajili AMI

Kuandaa Mazingira

Kwa madhumuni yetu, mfano wowote wa sura yoyote inafaa, hata t1.micro. Unaweza kuiendesha kupitia CLI:

aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro

Wacha tuunde ebs-volume, ambapo tutasakinisha mfumo wetu baadaye:

aws ec2 create-volume --availability-zone us-east-1a --size 10

Amri hii itatutengenezea diski ya Gb 10. Muhimu: diski lazima iwe katika ukanda sawa na mfano (kwa upande wetu ni us-mashariki-1a).
Ifuatayo, unahitaji kushikamana na diski kwa mfano:

aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf

Sasa wacha tuingie kwenye mfano kupitia ssh, fomati diski na kuiweka kwenye saraka:

mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$

Kufunga Centos safi 5.9

Kabla ya kusanidi mfumo, unahitaji kuunda mti wa saraka, weka proc na sysfs, na uunda seti ya chini ya vifaa:

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

Tutasanikisha mfumo kwa kutumia yum na faili ifuatayo ya usanidi:
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

Baada ya kukamilisha mchakato wa ufungaji, unaweza kufunga vifurushi vyovyote muhimu kwa njia ile ile:

yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name

Wacha tuhariri 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

Katika CentOS 5.9 bado unahitaji kusanikisha kernel na usaidizi wa xen:

yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen

Sakinisha Grub:

chroot /mnt/centos-image/ grub-install /dev/xvdf

na toa initrd mpya:

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

Ni muhimu sana kutaja vigezo hivi vyote na fstab mpya, vinginevyo mfumo hauwezi boot.
Ifuatayo unahitaji kuunda faili ya menu.lst kwa 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

Wacha tusanidi mtandao na 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

Kwa hivyo, tutapata mtandao wa kufanya kazi na uwezo wa kuingia kwenye mfano kwa kutumia funguo. Lakini ufunguo yenyewe unahitaji kuhamishiwa kwa mfano kwa namna fulani. Hii inaweza kufanywa kwa kutumia hati ambayo itachukua ufunguo na kuihifadhi kwa mfano:

vi /mnt/centos5img/etc/init.d/ec2-get-ssh

ec2-pata-ssh#! / bin / bash
# chkconfig: 2345 95 20
# jina la mchakato: ec2-get-ssh
# maelezo: Nasa vitambulisho vya ufunguo wa umma wa AWS kwa mtumiaji wa EC2

#Maktaba ya kazi ya Chanzo
. /etc/rc.d/init.d/functions

# Usanidi wa mtandao wa chanzo
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network

# Badilisha nafasi zifuatazo za mazingira kwa mfumo wako
export PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Angalia kuwa mtandao umesanidiwa
ikiwa [ "${NETWORKING}" = "no" ]; basi
echo "Mtandao haujasanidiwa."
toka 1
fi

anza () {
kama [! -d /mzizi/.ssh ]; basi
mkdir -p /mzizi/.ssh
chmod 700 /root/.ssh
fi
# Pata ufunguo wa umma kutoka kwa seva ya metadata kwa kutumia HTTP
pinda -f 169.254.169.254/ya hivi punde/meta-data/funguo-umma/0/funguo-fungua > /tmp/my-public-key
ikiwa [$? -eq 0 ]; basi
echo "EC2: Rejesha ufunguo wa umma kutoka kwa seva ya metadata kwa kutumia HTTP."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

stop() {
echo "Hakuna cha kufanya hapa"
}

Anzisha tena() {
kuacha
Kuanza
}

# Tazama jinsi tulivyoitwa.
kesi "$1" ndani
anza)
Kuanza
;;
simama)
kuacha
;;
Anzisha tena)
fungua tena
;;
*)
echo $"Matumizi: $0 {start|stop|anzisha upya}"
toka 1
kwamba C

toka $?
Wacha tuifanye itekelezwe na tuiongeze kwa kuanza:

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

Inashauriwa pia kuzima Selinux, au kusanidi kwa usahihi. Vinginevyo, kwa mfano, ufunguo hauwezi kuhifadhiwa kwenye mfano.
Kwa wakati huu unaweza kuacha kuanzisha mfumo. Tayari tunayo CentOS safi tayari kufanya kazi kwenye wingu. Kilichobaki ni kuteremsha diski ya ebs na mfumo wetu na kusajili ami.

umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/

Usajili wa AMI

Ili kupata ami kutoka kwa diski ya ebs, kwanza unahitaji kuchukua picha ya diski:

aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap

Njia rahisi zaidi ya kusajili ami ni kupitia Dashibodi ya Usimamizi ya AWS. Ili kufanya hivyo, unahitaji tu kwenda kwenye sehemu ya "Snapshots" katika huduma ya EC2, chagua unayohitaji (kwa upande wetu ni centos-snap), bonyeza-click juu yake na uchague "Unda Picha kutoka kwa Snapshot"
Kisha, katika dirisha linalofungua, unahitaji kuchagua takriban vigezo vifuatavyo:

Kuunda picha yako mwenyewe na CentOS 5.9 safi kwenye wingu la Amazon

Unaweza kujua ni kitambulisho gani cha Kernel cha kuchagua kama ifuatavyo:

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

Ni hayo tu. Sasa unaweza kuzindua matukio.
Kwa njia hii, unaweza kuunda picha, uwezekano mkubwa, na usambazaji wowote wa Linux. Angalau, kwa hakika Debian (kwa kutumia debootstrap kusakinisha mfumo safi) na Rhel-family.

Chanzo: mapenzi.com

Kuongeza maoni