αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„ CentOS 5.9 αžŸαž»αž‘αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„ Amazon cloud

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžŠαžΉαž„αž αžΎαž™αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Amazon cloud virtual instances αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαžΌαž”αž—αžΆαž– (αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αŸαž αŸ…αžαžΆ αž”αž‰αŸ’αž αžΆ AMI) Amazon αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž…αŸ†αž“αž½αž“αžŠαŸαž…αŸ’αžšαžΎαž“αž“αŸƒαž–αž½αž€αž‚αŸ αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αŸ’αžšαžΎαžšαžΌαž”αž—αžΆαž–αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαŸ‚αž›αžšαŸ€αž”αž…αŸ†αžŠαŸ„αž™αž—αžΆαž‚αžΈαž‘αžΈαž”αžΈ αžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αž’αŸ’αž“αž€αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž–αž–αž€αž˜αž·αž“αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαžŽαžΆαž˜αž½αž™αž‘αžΎαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αŸαž›αžαŸ’αž›αŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžšαžΌαž”αž—αžΆαž–αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž’αžΆαž αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž…αžΆαŸ†αž”αžΆαž…αŸ‹ αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžšαžΌαž”αž—αžΆαž–αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžœαž·αž’αžΈαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž‚αžΊαž”αž„αŸ’αž€αžΎαž AMI αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž―αž€αžŸαžΆαžšαž•αŸ’αž›αžΌαžœαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆ αžœαž·αž’αžΈ αž”αž„αŸ’αž€αžΎαž "AMI αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™αž αžΆαž„αžœαžαŸ’αžαž»" αŸ” αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž‚αžΊαžαžΆαžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž€αŸαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αŸ…αž‡αžΆ "EBS-backed AMI" αž•αž„αžŠαŸ‚αžšαŸ”

αžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαž AMI αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™ EBS αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž€αŸ’αž“αž»αž„ Amazon cloud αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž‡αŸ†αž αžΆαž“αž˜αž’αŸ’αž™αž˜αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αŸ”

αž•αŸ‚αž“αž€αžΆαžšαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αŸ–

  • αžšαŸ€αž”αž…αŸ†αž”αžšαž·αžŸαŸ’αžαžΆαž“
  • αžŠαŸ†αž‘αžΎαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž’αžΆαž αž“αž·αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž…αžΆαŸ†αž”αžΆαž…αŸ‹
  • αžαžβ€‹αžšαžΌαž”β€‹αžαžΆαžŸ
  • αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ AMI

αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž”αžšαž·αžŸαŸ’αžαžΆαž“

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αžšαž”αžŸαŸ‹αž™αžΎαž„ αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαžšαžΌαž”αžšαžΆαž„αžŽαžΆαž˜αž½αž™αž‚αžΊαžŸαž˜αžšαž˜αŸ’αž™αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚ t1.micro αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαžαžΆαž˜αžšαž™αŸˆ CLI:

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

αžαŸ„αŸ‡αž”αž„αŸ’αž€αžΎαž ebs-volume αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αžŠαŸ†αž‘αžΎαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αŸ–

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

αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž“αŸαŸ‡αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαžαžΆαžŸ 10 Gb αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αž™αžΎαž„αŸ” αžŸαŸ†αžαžΆαž“αŸ‹αŸ– αžαžΆαžŸαžαŸ’αžšαžΌαžœαžαŸ‚αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž§αž‘αžΆαž αžšαžŽαŸ (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αžœαžΆαž‡αžΆ us-east-1a) αŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαžŸαž‘αŸ…αž“αžΉαž„αž§αž‘αžΆαž αžšαžŽαŸαŸ–

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

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαžΌαž˜αž…αžΌαž›αž‘αŸ… instance αžαžΆαž˜αžšαž™αŸˆ ssh αž’αŸ’αžœαžΎαž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αžαžΆαžŸ αž αžΎαž™αž˜αŸ‰αŸ„αž“αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžαžαŸ–

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

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŸαŸ’αž’αžΆαž Centos 5.9

αž˜αž»αž“αž–αŸαž›αžŠαŸ†αž‘αžΎαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž˜αŸ‚αž€αž’αžΆαž„αžαž αž˜αŸ‰αŸ„αž“ proc αž“αž·αž„ sysfs αž αžΎαž™αž”αž„αŸ’αž€αžΎαžαžŸαŸ†αžŽαž»αŸ†αž§αž”αž€αžšαžŽαŸαž’αž”αŸ’αž”αž”αžšαž˜αžΆαŸ–

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

αž™αžΎαž„αž“αžΉαž„αžŠαŸ†αž‘αžΎαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ„αž™αž”αŸ’αžšαžΎ yum αž“αž·αž„αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–
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

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αž‘αžΎαž„αž€αž‰αŸ’αž…αž”αŸ‹αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŽαžΆαž˜αž½αž™αžαžΆαž˜αžšαž”αŸ€αž”αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ–

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

αžαŸ„αŸ‡αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› 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

αž“αŸ…αž€αŸ’αž“αž»αž„ CentOS 5.9 αž’αŸ’αž“αž€αž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„αžαžΊαžŽαŸ‚αž›αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš xenαŸ–

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

αžŠαŸ†αž‘αžΎαž„ GrubαŸ–

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

αž“αž·αž„αž”αž„αŸ’αž€αžΎαž initrd αžαŸ’αž˜αžΈαŸ–

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

αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡ αž“αž·αž„ fstab αžαŸ’αž˜αžΈ αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αžΉαž„αž˜αž·αž“αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž‘αŸαŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžš menu.lst αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 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

αžαŸ„αŸ‡αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰ αž“αž·αž„ 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

αžŠαžΌαž…αž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž”αžŽαŸ’αžαžΆαž‰αž’αŸ’αžœαžΎαž€αžΆαžš αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ instance αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΌαž“αžŸαŸ„αžαŸ’αž›αž½αž“αžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ’αž‘αŸαžšαž‘αŸ…αžœαžαŸ’αžαž»αžŠαžΌαž…αž˜αŸ’αžŠαŸαž…αŸ” αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž“αžΉαž„αž™αž€αž‚αž“αŸ’αž›αžΉαŸ‡αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž“αŸ…αž›αžΎαž§αž‘αžΆαž αžšαžŽαŸαŸ–

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

ec2-get-ssh#! / αž”αŸŠαžΈαž“ / αž”αŸŠαžΈαž€
# chkconfig: 2345 95 20
# αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ– ec2-get-ssh
# descriptionαŸ– αž…αžΆαž”αŸ‹αž™αž€αž–αŸαžαŸŒαž˜αžΆαž“αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹ AWS αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ EC2

# αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž˜αž»αžαž„αžΆαžšαž”αŸ’αžšαž—αž–
. /etc/rc.d/init.d/functions

# αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰αž”αŸ’αžšαž—αž–
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network

# αž‡αŸ†αž“αž½αžŸαž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”
αž“αžΆαŸ†αž…αŸαž‰αž•αŸ’αž›αžΌαžœ =:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’
αž”αŸ’αžšαžŸαž·αž“αž”αžΎ [ "${NETWORKING}" = "αž‘αŸ" ]; αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€
αž”αž“αŸ’αž‘αžš "αž”αžŽαŸ’αžαžΆαž‰αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸαŸ”"
αž…αžΆαž€αž…αŸαž‰ 1
fi

αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ () {
αž”αŸ’αžšαžŸαž·αž“αž”αžΎ [! -d /root/.ssh]; αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# αž‘αžΆαž‰αž™αž€αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ HTTP
curl -f 169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
αž”αžΎ [$? -eq 0 ]; αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€
αž”αž“αŸ’αž‘αžš "EC2αŸ– αž‘αžΆαž‰αž™αž€αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ HTTP αŸ”"
αž†αŸ’αž˜αžΆ /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

αž”αž‰αŸ’αžˆαž”αŸ‹ () {
αž”αž“αŸ’αž‘αžš "αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž“αŸ…αž‘αžΈαž“αŸαŸ‡"
}

αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ () {
αž”αž‰αŸ’αžˆαž”αŸ‹
αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜
}

# αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž αŸ…αŸ”
αž€αžšαžŽαžΈ "$ 1" αž“αŸ…αž€αŸ’αž“αž»αž„
αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜)
αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜
;;
αžˆαž”αŸ‹)
αž”αž‰αŸ’αžˆαž”αŸ‹
;;
αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰)
αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž‘αžΎαž„αžœαž·αž‰
;;
*)
αž”αž“αŸ’αž‘αžš $"αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ– $0 {start|stop|restart}"
αž…αžΆαž€αž…αŸαž‰ 1
αž‚

αž…αŸαž‰αž–αžΈ $?
αž…αžΌαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“ αž αžΎαž™αž”αž“αŸ’αžαŸ‚αž˜αžœαžΆαž‘αŸ…αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ–

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

αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αž·αž‘ Selinux αž¬αž€αŸ†αžŽαžαŸ‹αžœαžΆαž±αŸ’αž™αž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž‘αŸ αžŸαŸ„αž’αžΆαž…αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸ…αž›αžΎαž§αž‘αžΆαž αžšαžŽαŸαž‘αŸαŸ”
αž“αŸ…αž…αŸ†αžŽαž»αž…αž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αžˆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αž™αžΎαž„αž˜αžΆαž“ CentOS αžŸαž»αž‘αŸ’αž’αžšαž½αž…αžšαžΆαž›αŸ‹αž αžΎαž™ αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž–αž–αž€αŸ” αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž’αžΆαž“αŸ‹αž˜αŸ‰αŸ„αž“αžαžΆαžŸ ebs αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž™αžΎαž„ αž αžΎαž™αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ ami αŸ”

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

αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ AMI

αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“ ami αž–αžΈαžŒαžΈαžŸ ebs αžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαžαžšαžΌαž”αžαžΆαžŸαŸ–

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

αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž•αž»αžαžŠαžΎαž˜αŸ’αž”αžΈαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ ami αž‚αžΊαžαžΆαž˜αžšαž™αŸˆ AWS Management Console αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž•αŸ’αž“αŸ‚αž€ "αžšαžΌαž”αžαž" αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ EC2 αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž˜αž½αž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžš (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αžœαžΆαž‡αžΆ centos-snap) αž…αž»αž…αžαžΆαž„αžŸαŸ’αžαžΆαŸ†αž›αžΎαžœαžΆαž αžΎαž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ "αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž–αžΈαžšαžΌαž”αžαž" αŸ”
αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž„αŸ’αž’αž½αž…αžŠαŸ‚αž›αž”αžΎαž€ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„ CentOS 5.9 αžŸαž»αž‘αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„ Amazon cloud

αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αžαžΆαžαžΎαž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΊαžŽαŸ‚αž›αž˜αž½αž™αžŽαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

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

αž’αžŸαŸ‹αž αžΎαž™αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžšαžŽαžΈαŸ”
αžαžΆαž˜αžœαž·αž’αžΈαž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž˜αž½αž™ αž‘αŸ†αž“αž„αž‡αžΆαž˜αžΆαž“αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž›αžΈαž“αž»αž…αžŽαžΆαž˜αž½αž™αŸ” αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆ Debian (αžŠαŸ„αž™αž”αŸ’αžšαžΎ debootstrap αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž’αžΆαž) αž“αž·αž„ Rhel-family αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹