Njengoba wazi, kumafu we-Amazon izehlakalo ezibonakalayo zethulwa ngokusekelwe ezithombeni (okuthiwa
Imibhalo esemthethweni iyachaza
Ungayakha kanjani eyakho i-EBS-backed AMI efwini lase-Amazon ngaphandle kwezinyathelo eziphakathi kuzoxoxwa ngakho kulesi sihloko.
Uhlelo lokusebenza:
- Lungisa imvelo
- Faka isistimu ehlanzekile futhi wenze izilungiselelo ezidingekayo
- Thatha isifinyezo sediski
- Bhalisa i-AMI
Ukulungisa Imvelo
Ngezinjongo zethu, noma yisiphi isibonelo sanoma yimuphi umumo sifanelekile, ngisho ne-t1.micro. Ungayisebenzisa nge-CLI:
aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro
Masidale i-ebs-volume, lapho sizofaka khona isistimu yethu kamuva:
aws ec2 create-volume --availability-zone us-east-1a --size 10
Lo myalo uzosenzela idiski engu-10 Gb. Okubalulekile: idiski kufanele ibe endaweni efanayo nesibonelo (kithi ithi-empumalanga-1a).
Okulandelayo, udinga ukunamathisela idiski kusibonelo:
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
Manje ake singene esibonelweni nge-ssh, fometha idiski futhi uyibeke kumkhombandlela:
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
Ukufaka ama-Centos ahlanzekile 5.9
Ngaphambi kokufaka uhlelo, udinga ukudala isihlahla somkhombandlela, faka i-proc nama-sysfs, futhi udale isethi encane yamadivayisi:
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
Sizofaka isistimu sisebenzisa i-yum kanye nefayela lokumisa elilandelayo:
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
Ngemva kokuqeda inqubo yokufaka, ungafaka noma yimaphi amaphakheji adingekayo ngendlela efanayo:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name
Masihlele i-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
Ku-CentOS 5.9 usadinga ukufaka i-kernel ngokusekelwa kwe-xen:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
Faka i-Grub:
chroot /mnt/centos-image/ grub-install /dev/xvdf
bese udala i-initrd entsha:
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
Kubaluleke kakhulu ukucacisa yonke le mingcele kanye ne-fstab entsha, ngaphandle kwalokho uhlelo ngeke luqale.
Okulandelayo udinga ukudala ifayela le-menu.lst le-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
Ake silungiselele inethiwekhi kanye ne-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
Ngakho, sizothola inethiwekhi esebenzayo kanye nekhono lokungena esibonelweni sisebenzisa okhiye. Kodwa ukhiye ngokwawo udinga ukudluliselwa esibonelweni ngandlela thile. Lokhu kungenziwa kusetshenziswa iskripthi esizothatha ukhiye futhi siwugcine kusibonelo:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-thola-ssh#! / bin / bash
# chkconfig: 2345 95 20
# igama lenqubo: ec2-get-ssh
# incazelo: Shutha imininingwane yokhiye wasesidlangalaleni we-AWS yomsebenzisi we-EC2
#Umthombo womsebenzi wezincwadi
. /etc/rc.d/init.d/functions
# Ukucushwa komthombo wenethiwekhi
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network
# Faka esikhundleni sokuguquguquka kwemvelo okulandelayo ohlelweni lwakho
thekelisa INDLELA=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# Hlola ukuthi inethiwekhi imisiwe
uma [ "${NETWORKING}" = "cha" ]; bese
echo "Inethiwekhi ayilungiselelwe."
phuma 1
fi
qala () {
uma [! -d /impande/.ssh ]; bese
mkdir -p /root/.ssh
I-chmod 700 /root/.ssh
fi
# Buyisa ukhiye womphakathi kuseva yemethadatha usebenzisa i-HTTP
curl -f
uma [$? -eq 0 ]; bese
echo "EC2: Buyisa ukhiye womphakathi kuseva yemethadatha usebenzisa i-HTTP."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}
Ima() {
echo "Akukho ongakwenza lapha"
}
qala kabusha() {
Ima
isiqalo
}
# Bheka ukuthi sibizwe kanjani.
icala "$1" phakathi
qala)
isiqalo
;;
Ima)
Ima
;;
qala kabusha)
Qala kabusha
;;
*)
echo $"Ukusetshenziswa: $0 {start|stop|qala kabusha}"
phuma 1
ukuthi uC
phuma $?
Masiyenze isebenziseke futhi siyingeze ekuqaleni:
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
Kuyatuseka futhi ukukhubaza i-Selinux, noma ukuyimisa ngendlela efanele. Uma kungenjalo, ngokwesibonelo, ukhiye ungase ungalondolozwa lapho.
Kuleli qophelo ungayeka ukusetha isistimu. Sesivele sine-CentOS ehlanzekile elungele ukusebenza efwini. Okusele nje ukwehlisa idiski ye-ebs ngesistimu yethu bese ubhalisa i-ami.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
Ukubhaliswa kwe-AMI
Ukuze uthole i-ami kusuka kudiski ye-ebs, udinga kuqala ukuthatha isifinyezo sediski:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
Indlela elula yokubhalisa i-ami ukusebenzisa Ikhonsoli Yokuphatha ye-AWS. Ukuze wenze lokhu, udinga nje ukuya engxenyeni ethi "Izifinyezo" kusevisi ye-EC2, khetha oyidingayo (kithi i-centos-snap), chofoza kwesokudla kuyo bese ukhetha "Dala isithombe kusuka ku-Snapshot"
Bese, ewindini elivulayo, udinga ukukhetha cishe amapharamitha alandelayo:
Ungathola ukuthi iyiphi i-Kernel ID ongakhetha ngayo ngale ndlela elandelayo:
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
Yilokho kuphela. Manje ungakwazi ukuqalisa izimo.
Ngale ndlela, ungakha isithombe, cishe, nganoma yikuphi ukusatshalaliswa kweLinux. Okungenani, nakanjani i-Debian (usebenzisa i-debootstrap ukufaka isistimu ehlanzekile) kanye ne-Rhel-family.
Source: www.habr.com