ืืื ืืืจ ืืืืกื, ืืื ืืขืจ ืึทืืึทืืึธื ืืืึธืืงื ืืืืจืืืึทื ืื ืกืืึทื ืกืื ืืขื ืขื ืืึธื ืืฉื ืืืืืจื ืืืืฃ ืืืืืขืจ (ืื ืึทืืื ืืขืจืืคืขื ืข
ืืขืจ ืืึทืึทืืืขืจ ืืึทืงืืืืขื ืืืืฉืึทื ืืืฉืจืืืื
ืืื ืฆื ืฉืึทืคึฟื ืืืื ืืืืืขื ืข EBS-ืืึทืงื ืึทืื ืืื ืืขืจ ืึทืืึทืืึธื ืืืึธืืงื ืึธื ืื ืืขืจืืืืืื ืกืืขืคึผืก ืืืขื ืืืื ืืืกืงืึทืกื ืืื ืืขื ืึทืจืืืงื.
Action Plan:
- ืฆืืืจืืืื ืื ืกืืืืืืข
- ืื ืกืืึทืืืจื ืึท ืจืืื ืกืืกืืขื ืืื ืืึทืื ืื ื ืืืืืง ืกืขืืืื ืืก
- ื ืขืืขื ืึท ืืึธืืขื ืืืืื ืคืื ืื ืืืกืง
- ืจืขืืืกืืจืืจื 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-volum, ืืื ืืืจ ืืืขืื ืื ืกืืึทืืืจื ืืื ืืืขืจ ืกืืกืืขื ืฉืคึผืขืืขืจ:
aws ec2 create-volume --availability-zone us-east-1a --size 10
ืืขืจ ืืึทืคึฟืขื ืืืขื ืืึทืื ืึท 10 ืืืืืืืื ืืืกืง ืคึฟืึทืจ ืืื ืื. ืืืืืืืง: ืืขืจ ืืืกืง ืืืื ืืืื ืืื ืืขืจ ืืขืืืืงืขืจ ืืึธื ืข ืืื ืืขืจ ืืืึทืฉืคึผืื (ืืื ืืื ืืืขืจ ืคืึทื ืขืก ืืื us-east-1a).
ืืืืึทืืขืจ, ืืืจ ืืึทืจืคึฟื ืฆื ืฆืืืฉืขืคึผืขื ืื ืืืกืง ืฆื ืืขื ืืืึทืฉืคึผืื:
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
ืืืฆื ืืึธืื ืืื ืื ืงืืึธืฅ ืืื ืฆื ืืขื ืืืึทืฉืคึผืื ืืืจื ssh, ืคึฟืึธืจืืึทื ืื ืืืกืง ืืื ืึธื ืงืืึทืคึผื ืขืก ืืื ืื ืืืขืืืืืึทืืขืจ:
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
ืื ืกืืึธืืื ื ืจืืื Centos 5.9
ืืืืืขืจ ืืืจ ืื ืกืืึทืืืจื ืื ืกืืกืืขื, ืืืจ ืืึทืจืคึฟื ืฆื ืฉืึทืคึฟื ืึท ืืืขืืืืืึทืืขืจ ืืืื, ืึธื ืงืืึทืคึผื ืคึผืจืึธืง ืืื 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 ืืืจ ื ืึธื ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืึท ืงืขืจื ืืื ืงืกืขื ืฉืืืฆื:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
ืื ืกืืึทืืืจื ืืจืื:
chroot /mnt/centos-image/ grub-install /dev/xvdf
ืืื ืืืฉืขื ืขืจืืื ืึท ื ืืึทืข ืื ืืืจื:
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
ืขืก ืืื ืืืืขืจ ืืืืืืืง ืฆื ืกืคึผืขืฆืืคืืฆืืจื ืึทืืข ืื ืคึผืึทืจืึทืืขืืขืจืก ืืื ืึท ื ืืึท ืคืกืืึทื, ืึทื ืืขืจืฉ ืื ืกืืกืืขื ืืืขื ื ืืฉื ืฉืืืืื.
ืืืืึทืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืฉืึทืคึฟื ืึท menu.lst ืืขืงืข ืคึฟืึทืจ ืืจืื:
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
ืืืื, ืืืจ ืืืขืื ืืึทืงืืืขื ืึท ืืจืืขืื ื ืขืฅ ืืื ืื ืคืืืืงืืื ืฆื ืงืืึธืฅ ืืื ืืขื ืืืึทืฉืคึผืื ืืื ืื ืฉืืืกืืขื. ืืืขืจ ืืขืจ ืฉืืืกื ืืื ืืึทืจืฃ ืืืื ืืจืึทื ืกืคืขืจื ืฆื ืืขื ืืืึทืฉืคึผืื ืขืคืขืก. ืืึธืก ืงืขื ืืืื ืืขืืื ืืื ืึท ืฉืจืืคื ืืืึธืก ืืืขื ื ืขืืขื ืืขื ืฉืืืกื ืืื ืจืึทืืขืืืขื ืขืก ืืื ืืขื ืืืึทืฉืคึผืื:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-get-ssh#! / ืืื / ืืึทืฉ
# ืืฉืงืงืึธื ืคืื: 2345 95 20
# ืคึผืจืึทืกืขืกื ืึทืืข: ec2-get-ssh
# ืืึทืฉืจืืึทืืื ื: ืืึทืคึผื AWS ืขืคื ืืืขื ืฉืืืกื ืงืจืึทืืขื ืืฉืึทืื ืคึฟืึทืจ EC2 ืืึทื ืืฆืขืจ
# ืืงืืจ ืคืื ืงืฆืืข ืืืืืืึธืืขืง
. /etc/rc.d/init.d/functions
# ืืงืืจ ื ืขืืืืึธืจืงืื ื ืงืึทื ืคืืืืขืจืืืฉืึทื
[-r /etc/sysconfig/ื ืขืืืืึธืจืง] &&. /etc/sysconfig/ื ืขืืืืึธืจืง
# ืคืึทืจืืืึทืื ืื ืคืืืืขื ืืข ืกืืืืืืข ืืืขืจืืึทืืึทืื ืคึฟืึทืจ ืืืื ืกืืกืืขื
ืึทืจืืืกืคืืจื PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# ืงืืง ืึทื ื ืขืืืืึธืจืงืื ื ืืื ืงืึทื ืคืืืืขืจื
ืืืื ["${NETWORKING}" = "ื ืืื"]; ืืขืืึธืื
echo "ื ืขืืืืึธืจืงืื ื ืืื ื ืืฉื ืงืึทื ืคืืืืขืจื."
ืืจืืืกืืื ื 1
fi
ืึธื ืืืื () {
ืืืื [! -ื /root/.ssh]; ืืขืืึธืื
mkdir -p /root/.ssh
ืืฉืืึธื 700 /root/.ssh
fi
# ืฆืืจืืงืงืจืืื ืขืคื ืืืขื ืฉืืืกื ืคึฟืื ืืขืืึทืืึทืืึท ืกืขืจืืืขืจ ื ืืฆื ืืืืคึผ
ืงืขืจื -ืค
ืืืื [$? -ืขืง 0]; ืืขืืึธืื
echo "EC2: ืฆืืจืืงืงืจืืื ืฆืืืืจ ืฉืืืกื ืคืื ืืขืืึทืืึทืืึท ืกืขืจืืืขืจ ื ืืฆื ืืืืคึผ."
ืงืึทืฅ /ืืืคึผ/ืืืื-ืฆืืืืจ-ืฉืืืกื >> /root/.ssh/authorized_keys
ืืฉืืึธื 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}
ืึธืคึผืฉืืขื() {
ืขืงืึธื "ืืึธืจื ืืฉื ืฆื ืืึธื ืืึธ"
}
ืืืื ืื ื ืืืืืื() {
ืืึทืืื
ืึธื ืืืื
}
# ืืขื ืืื ืืขื ืืื ืืื ื ืืขืจืืคื .
ืคืึทื "$1" ืืื
ืึธื ืืืื)
ืึธื ืืืื
;;
ืึธืคึผืฉืืขื)
ืืึทืืื
;;
ืืืื ืื ื ืืืืืื)
ืจืืกืืึทืจื
;;
*)
echo $"ืืึทื ืืฅ: $0 {ืึธื ืืืื|ืืึทืืื|ืจืืกืืึทืจื}"
ืืจืืืกืืื ื 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 ืืืกืง ืืื ืืื ืืืขืจ ืกืืกืืขื ืืื ืจืขืืืกืืจืืจื ืึทืื.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
AMI ืจืขืืืกืืจืึทืฆืืข
ืฆื ืืึทืงืืืขื ืึทืื ืคึฟืื ืึทื EBS ืืืกืง, ืืืจ ืขืจืฉืืขืจ ืืึทืจืคึฟื ืฆื ื ืขืืขื ืึท ืืึธืืขื ืืืืื ืคืื ืื ืืืกืง:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
ืื ืืืืึทืกื ืืืขื ืฆื ืคืึทืจืฉืจืืึทืื ืึทืื ืืื ืืืจื ืื AWS ืืึทื ืึทืืขืืขื ื ืงืึทื ืกืึธืื. ืฆื ืืึธื ืืึธืก, ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืืืื ืฆื ืื ืึธืคึผืืืืืื ื "Snapshots" ืืื ืื EC2 ืกืขืจืืืืก, ืกืขืืขืงืืืจื ืืขื ืืืจ ืืึทืจืคึฟื (ืืื ืืื ืืืขืจ ืคืึทื, ืขืก ืืื centos-snap), ืจืขืื ืืื ืืืืฃ ืขืก ืืื ืกืขืืขืงืืืจื "ืฉืึทืคึฟื ืืืื ืคึฟืื ืกื ืึทืคึผืฉืึธื".
ืืขืจื ืึธื, ืืื ืื ืคึฟืขื ืฆืืขืจ ืืืึธืก ืขืคืขื ืขื, ืืืจ ืืึทืจืคึฟื ืฆื ืกืขืืขืงืืืจื ืืขืขืจืขื ืื ืคืืืืขื ืืข ืคึผืึทืจืึทืืขืืขืจืก:
ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืืืืก ืืืึธืก Kernel ID ืฆื ืงืืืึทืื ืืื ืืืื:
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
ืึทื ืก ืึทืืข. ืืืฆื ืืืจ ืงืขื ืขื ืึธื ืืืืื ืื ืกืืึทื ืกืื.
ืืื ืืขื ืืืขื, ืืืจ ืงืขื ืขื ืืึทืื ืึท ืืืื, ืจืืึฟ ืืกืชึผืื, ืืื ืงืืื ืืื ืืงืก ืคืึทืจืฉืคึผืจืืืืื ื. ืืื ืืื ืืกืืขืจ, ืืืฉืืืื ืืขืืืึทื (ื ืืฆื ืืขืืึธืึธืืกืืจืึทืคึผ ืฆื ืื ืกืืึทืืืจื ืึท ืจืืื ืกืืกืืขื) ืืื Rhel-ืืฉืคึผืื.
ืืงืืจ: www.habr.com