Afirandina wêneya xwe bi CentOS 5.9-a paqij di ewrê Amazonê de

Wekî ku hûn dizanin, di cloudê Amazonê de mînakên virtual li ser bingeha wêneyan têne destpêkirin (navê AMI). Amazon hejmareke mezin ji wan peyda dike; hûn jî dikarin wêneyên gelemperî yên ku ji hêla aliyên sêyemîn ve hatine amadekirin bikar bînin, ji bo ku pêşkêşkarê ewr, bê guman, berpirsiyariyek nagire. Lê carinan hûn hewce ne ku wêneyek pergala paqij a bi pîvanên pêwîst, ku ne di navnîşa wêneyan de ye. Wê hingê riya yekane ev e ku hûn AMI-ya xwe çêbikin.

Belgeya fermî diyar dike riya afirandina "mînakek AMI-ya-piştgiriya dikanê". Kêmasiya vê nêzîkbûnê ev e ku wêneya qediyayî jî pêdivî ye ku bibe "AMI-ya piştgirî-EBS" were veguheztin.

Meriv çawa AMI-ya xweya bi piştgirîya EBS-ê di ewrê Amazon de bêyî gavên navîn biafirîne dê di vê gotarê de were nîqaş kirin.

Plana Çalakiya

  • Jîngehê amade bikin
  • Pergalek paqij saz bikin û mîhengên pêwîst bikin
  • Wêneyek dîskê bikişînin
  • AMI qeyd bikin

Amadekirina Jîngehê

Ji bo mebestên me, her mînakek her şeklê maqûl e, tewra t1.micro. Hûn dikarin wê bi riya CLI-ê bimeşînin:

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

Ka em ebs-volumê biafirînin, ku em ê paşê pergala xwe saz bikin:

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

Ev ferman dê ji me re dîskek 10 Gb çêbike. Girîng: Divê dîsk li heman deverê wekî mînak be (di doza me de ew em-rojhilat-1a ye).
Piştre, hûn hewce ne ku dîskê bi nimûneyê ve girêbidin:

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

Naha em bi riya ssh têkevin nimûneyê, dîskê format bikin û wê li pelrêçê siwar bikin:

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

Sazkirina Centos 5.9 paqij

Berî ku pergalê saz bikin, hûn hewce ne ku darek pelrêça biafirînin, proc û sysfs siwar bikin, û komek hindiktirîn amûran biafirînin:

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

Em ê pergalê bi karanîna yum û pelê veavakirina jêrîn saz bikin:
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

Piştî qedandina pêvajoya sazkirinê, hûn dikarin bi heman rengî pakêtên pêwîst saz bikin:

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

Ka em fstab biguherînin:

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

Di CentOS 5.9 de hûn hîn jî hewce ne ku kernelek bi piştgiriya xen saz bikin:

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

Grub saz bikin:

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

û initrdek nû çêbike:

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

Pir girîng e ku meriv van hemî parameteran û fstabek nû diyar bike, wekî din dê pergal boot neke.
Piştre hûn hewce ne ku pelek menu.lst ji bo grub biafirînin:

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

Ka em torê û sshd mîheng bikin:

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

Bi vî rengî, em ê torgilokek xebitandinê û kapasîteya ku bi karanîna bişkokan têkevin nav nimûneyê bistînin. Lê pêdivî ye ku mift bixwe bi rengekî veguhezîne nimûneyê. Ev dikare bi karanîna skrîptek ku dê mifteyê bigire û li ser nimûneyê hilîne were kirin:

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

ec2-get-ssh#! / bin / bash
# chkconfig: 2345 95 20
# navê pêvajoyê: ec2-get-ssh
# danasîn: Ji bo bikarhênerê EC2 pêbaweriyên mifteya giştî ya AWS bigirin

Pirtûkxaneya fonksiyona # Çavkanî
. /etc/rc.d/init.d/functions

# Veavakirina torê ya çavkaniyê
[-r /etc/sysconfig/tora] &&. /etc/sysconfig/tora

# Ji bo pergala xwe guhêrbarên jîngehê yên jêrîn biguhezînin
hinardekirina PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Kontrol bikin ku torê hatî mîheng kirin
heke [ "${NETWORKING}" = "na" ]; paşan
echo "Tor nayê mîheng kirin."
derketina 1
fi

start () {
eger [! -d /root/.ssh]; paşan
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Bi karanîna HTTP mifteya giştî ji servera metadata bistînin
curl -f 169.254.169.254/dawîn/meta-data/bişkojkên giştî/0/openssh-key > /tmp/my-public-key
eger [$? -eq 0]; paşan
echo "EC2: Mifteya giştî ji servera metadata bi karanîna HTTP bistînin."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

raweste() {
echo "Li vir tiştek nayê kirin"
}

ji nû ve dest pê bike() {
rawestan
destpêkirin
}

# Binêrin ka em çawa hatine gazî kirin.
rewşa "$ 1" li
destpêkirin)
destpêkirin
;;
rawestan)
rawestan
;;
ji nû ve dest pê bike)
veguhestin
;;
*)
echo $"Bikaranîn: $0 {destpêkirin|rawestandin|ji nû ve destpêkirin}"
derketina 1
ew C

derketina $?
Ka em wê bikin îcrakar û li destpêkê zêde bikin:

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

Di heman demê de tê pêşniyar kirin ku hûn Selinux neçalak bikin, an wê rast mîheng bikin. Wekî din, wek nimûne, dibe ku mift li ser nimûneyê neyê tomar kirin.
Di vê xalê de hûn dikarin sazkirina pergalê rawestînin. Me jixwe CentOS-a paqij amade ye ku di ewr de bixebite. Tiştê ku dimîne ev e ku em dîska ebs bi pergala xwe vekin û ami tomar bikin.

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

qeydkirina AMI

Ji bo ku hûn ami ji dîskek ebs bistînin, hûn pêşî hewce ne ku wêneyek dîskê bigirin:

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

Rêya herî hêsan a qeydkirina ami bi rêya Konsola Rêvebiriya AWS-ê ye. Ji bo vê yekê, hûn tenê hewce ne ku biçin beşa "Snapshots" di karûbarê EC2 de, ya ku hûn hewce ne hilbijêrin (di doza me de ew centos-snap e), li ser rast-klîk bikin û "Wêne ji Snapshot biafirînin" hilbijêrin.
Dûv re, di pencereya ku vedibe de, hûn hewce ne ku bi qasî pîvanên jêrîn hilbijêrin:

Afirandina wêneya xwe bi CentOS 5.9-a paqij di ewrê Amazonê de

Hûn dikarin bi vî rengî fêr bibin ka kîjan ID Kernel hilbijêrin:

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

Navê pêger. Naha hûn dikarin mînakan bidin destpêkirin.
Bi vî rengî, hûn dikarin wêneyek, bi îhtîmalek mezin, bi her belavkirina Linux re biafirînin. Bi kêmanî, bê guman Debian (bikaranîna debootstrap ji bo sazkirina pergalek paqij) û Rhel-malbat.

Source: www.habr.com

Add a comment