Ukwenza umfanekiso wakho ngeCentOS 5.9 ecocekileyo kwilifu laseAmazon

Njengoko usazi, kwilifu leAmazon iimeko ezibonakalayo ziqaliswa ngokusekwe kwimifanekiso (ebizwa ngokuba Ami). IAmazon ibonelela ngenani elikhulu labo; Ungasebenzisa kwakhona imifanekiso yoluntu elungiselelwe ngabantu besithathu, apho umboneleli welifu, ewe, akanalo naluphi na uxanduva. Kodwa ngamanye amaxesha udinga umfanekiso wenkqubo ecocekileyo kunye neeparitha eziyimfuneko, ezingekho kuluhlu lwemifanekiso. Ke ekuphela kwendlela yokuphuma kukwenza eyakho i-AMI.

Amaxwebhu asemthethweni achaza indlela ukudala "imeko yevenkile exhaswa yi-AMI". Ukungalungi kwale ndlela kukuba umfanekiso ogqityiweyo uya kufuneka kwakhona uguqulwe ube yi "EBS-backed AMI"

Uyenza njani eyakho i-EBS-backed AMI kwilifu laseAmazon ngaphandle kwamanyathelo aphakathi kuya kuxutyushwa kweli nqaku.

Isicwangciso soMsebenzi:

  • Lungisa okusingqongileyo
  • Faka inkqubo ecocekileyo kwaye wenze izicwangciso eziyimfuneko
  • Thatha i-snapshot yediski
  • Bhalisa i-AMI

Ukulungisa iNdawo

Ngeenjongo zethu, nawuphi na umzekelo wayo nayiphi na imilo ifanelekile, nokuba t1.micro. Ungayiqhuba nge-CLI:

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

Masenze i-ebs-volume, apho siya kufaka khona inkqubo yethu kamva:

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

Lo myalelo uya kusenzela idiski ye-10 Gb. Kubalulekile: idiski kufuneka ibe kwindawo efanayo njengomzekelo (kwimeko yethu ithi-empuma-1a).
Okulandelayo, kufuneka uncamathele idiski kumzekelo:

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

Ngoku makhe singene kumzekelo nge-ssh, fomata idiski kwaye uyibeke kulawulo:

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

Ukufakela iiCentos ezicocekileyo 5.9

Phambi kokufaka inkqubo, kufuneka udale umthi wolawulo, unyuse iproc kunye neesysfs, kwaye wenze iseti encinci yezixhobo:

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

Siza kufaka inkqubo usebenzisa i-yum kunye nefayile yoqwalaselo elandelayo:
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

Emva kokugqiba inkqubo yofakelo, ungafaka naziphi na iipakethe eziyimfuneko 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

Kwi-CentOS 5.9 kusafuneka ufake i-kernel ngenkxaso ye-xen:

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

Faka iGrub:

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

kwaye uvelise 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 ukukhankanya zonke ezi parameters kunye ne-fstab entsha, kungenjalo inkqubo ayiyi kuqalisa.
Okulandelayo kufuneka wenze ifayile ye-menu.lst yegrub:

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

Masiqwalasele inethiwekhi kunye 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

Ngaloo ndlela, siya kufumana inethiwekhi esebenzayo kunye nokukwazi ukungena kumzekelo usebenzisa izitshixo. Kodwa isitshixo ngokwaso kufuneka sidluliselwe kumzekelo ngandlela thile. Oku kunokwenziwa kusetyenziswa iskripthi esiya kuthatha isitshixo kwaye sigcine kumzekelo:

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

ec2-fumana-ssh#! / bin / ibash
# chkconfig: 2345 95 20
# igama lenkqubo: ec2-fumana-ssh
# inkcazelo: Thatha i-AWS iziqinisekiso zesitshixo sikawonke-wonke kumsebenzisi we-EC2

#Umthombo wethala leencwadi
. /etc/rc.d/init.d/functions

# Ulungelelwaniso lwenethiwekhi yomthombo
[ -r /etc/sysconfig/network] &&. /etc/sysconfig/network

# Buyisela olu tshintsho lulandelayo lwemeko-bume yenkqubo yakho
thumela ngaphandle UMENDO =:/usr/yengingqi/umgqomo:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Jonga ukuba inethiwekhi iqwalaselwe
ukuba [ "${NETWORKING}" = "hayi"]; ngoko
phinda "Uthungelwano alumiselwanga."
ukuphuma 1
fi

qalisa () {
ukuba [! -d /ingcambu/.ssh ]; ngoko
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Fumana isitshixo sikawonke-wonke kwiseva yemethadatha usebenzisa iHTTP
curl -f 169.254.169.254/yamva nje/meta-data/izitshixo-kawonke-wonke/0/opensh-key > /tmp/my-public-key
ukuba [$? -eq 0 ]; ngoko
echo "EC2: Fumana isitshixo sikawonke-wonke kwiseva yemethadatha usebenzisa i-HTTP."
ikati /tmp/isitshixo-sam-kawonke-wonke >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

Yeka() {
echo "akukho nto yenza apha"
}

phinda Uqalele() {
yeka
ukuqala
}

# Jonga ukuba sibizwe njani.
Ityala "$ 1" kwi
qala)
ukuqala
;;
Yeka)
yeka
;;
phinda Uqalele)
phinda Uqalele
;;
*)
echo $"Usetyenziso: $0 {qalisa|yima|qala kwakhona}"
ukuphuma 1
ukuba uC

phuma $?
Makhe siyenze iphunyezwe kwaye siyongeze kwisiqalo:

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

Kukwacetyiswa ukuba ungasebenzi iSelinux, okanye uyiqwalasele ngokuchanekileyo. Kungenjalo, umzekelo, isitshixo sisenokungagcinwa kumzekelo.
Ngeli xesha unokuyeka ukuseta inkqubo. Sele sine-CentOS ecocekileyo elungele ukusebenza efini. Ekuphela kwento eseleyo kukuthoba idiski ye-ebs ngenkqubo yethu kunye nerejista ye-ami.

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

Ukubhaliswa kwe-AMI

Ukufumana i-ami kwidiski ye-ebs, kufuneka uqale uthathe umfanekiso okhawulezayo wediski:

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

Indlela elula yokubhalisa i-ami ngokusebenzisa i-AWS Management Console. Ukwenza oku, kufuneka uye kwindawo ethi "Snapshots" kwinkonzo ye-EC2, khetha enye oyifunayo (kwimeko yethu yi-centos-snap), nqakraza kuyo kwaye ukhethe "Yenza umfanekiso kwi-Snapshot"
Emva koko, kwifestile evulayo, kufuneka ukhethe malunga nezi parameters zilandelayo:

Ukwenza umfanekiso wakho ngeCentOS 5.9 ecocekileyo kwilifu laseAmazon

Ungafumanisa ukuba yeyiphi i-ID ye-Kernel ongayikhetha ngolu hlobo lulandelayo:

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

Kuko konke. Ngoku unokuqalisa iimeko.
Ngale ndlela, unokwenza umfanekiso, ngakumbi, nangaluphi na usasazo lweLinux. Ubuncinci, ngokuqinisekileyo i-Debian (usebenzisa i-debootstrap ukufaka inkqubo ecocekileyo) kunye ne-Rhel-family.

umthombo: www.habr.com

Yongeza izimvo