Wekî ku hûn dizanin, di cloudê Amazonê de mînakên virtual li ser bingeha wêneyan têne destpêkirin (navê
Belgeya fermî diyar dike
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
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:
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