แแแแแฎแกแแแแแแ, แแแแแแแแก แฆแ แฃแแแแจแ แแแ แขแฃแแแฃแ แ แแแกแขแแแชแแแแ แแฎแกแแแแ แกแฃแ แแแแแแก แกแแคแฃแซแแแแแ (แ.แฌ
แแคแแชแแแแฃแ แแแแฃแแแแขแแชแแแจแ แแฆแฌแแ แแแแ
แแก แกแขแแขแแ แแแแแฎแแแแแก, แแฃ แ แแแแ แฃแแแ แจแแฅแแแแ แแฅแแแแ แกแแแฃแแแ แ EBS แแฎแแ แแแญแแ แแแ AMI แแแแแแแแก แฆแ แฃแแแแจแ แจแฃแแแแแฃแ แ แแแแแฏแแแแก แแแ แแจแ.
แกแแแแฅแแแแ แแแแแ:
- แแแแแแแแแ แแแ แแแ
- แแแแแแกแขแแแแ แแ แกแฃแคแแ แกแแกแขแแแ แแ แแแแแแแแ แกแแญแแ แ แแแ แแแแขแ แแแ
- แแแแแแฆแแ แแแกแแแก แกแแแแจแแขแ
- แแแ แแแแกแขแ แแ แแแ 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 แแ แแแกแแก. แแแแจแแแแแแแแแแ: แแแกแแ แฃแแแ แแงแแก แแแแแ แแแแแจแ, แ แแแแ แช แแแกแขแแแชแแ (แฉแแแแก แจแแแแฎแแแแแจแ แแก แแ แแก 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-แแก แแแงแแแแแ
แกแแกแขแแแแก แแแกแขแแแแชแแแแแ, แแฅแแแ แฃแแแ แจแแฅแแแแ แแแ แแฅแขแแ แแ แฎแ, แแแแแแกแขแแแแ แแ 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
แแแ แแแแ, แฉแแแ แแแแแฆแแแ แกแแแฃแจแแ แฅแกแแแก แแ แแแแแแจแแแแก แแแแแงแแแแแแ แแแกแขแแแชแแแจแ แจแแกแแแแก แจแแกแแซแแแแแแแแก. แแแแ แแ แแแแแ แแแกแแฆแแแ แ แแแแ แแ แฃแแแ แแแแแแแแแก แแแกแขแแแชแแแจแ. แแก แจแแแซแแแแ แแแแแแแแก แกแแ แแแขแแก แแแแแงแแแแแแ, แ แแแแแแช แแแฆแแแก แแแกแแฆแแแก แแ แจแแแแแฎแแแก แแแก แแแแแแแแแ:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-get-ssh#! / แแแ / แแแจแ
# chkconfig: 2345 95 20
# แแ แแชแแกแแก แกแแฎแแแ: ec2-get-ssh
# แแฆแฌแแ แ: แแฆแแแญแแแ AWS แกแแฏแแ แ แแแกแแฆแแแแก แ แฌแแฃแแแแแแ แกแแแแแแแ EC2 แแแแฎแแแ แแแแแกแแแแก
#Source แคแฃแแฅแชแแแก แแแแแแแแแแ
. /etc/rc.d/init.d/functions
# แฌแงแแ แแก แฅแกแแแแก แแแแคแแแฃแ แแชแแ
[ -r /etc/sysconfig/network] &&. /etc/sysconfig/แฅแกแแแ
# แจแแชแแแแแ แจแแแแแแ แแแ แแแแก แชแแแแแแแ แแฅแแแแ แกแแกแขแแแแกแแแแก
แแฅแกแแแ แขแ PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# แจแแแแแฌแแแ, แ แแ แฅแกแแแแก แแแแคแแแฃแ แแชแแแ
if [ "${NETWORKING}" = "แแ แ" ]; แแแจแแ
echo "แฅแกแแแ แแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ."
แแแกแแกแแแแแ 1
fi
แแแฌแงแแแ () {
แแฃ [! -d /root/.ssh ]; แแแจแแ
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# แแแแฆแแ แกแแฏแแ แ แแแกแแฆแแแ แแแขแแแแแแชแแแแแแก แกแแ แแแ แแแแ HTTP-แแก แแแแแงแแแแแแ
แแแฎแแแแ -แค
แแฃ [$? -แแแ 0]; แแแจแแ
echo "EC2: แแแแฆแแ แกแแฏแแ แ แแแกแแฆแแแ แแแขแแแแแแชแแแแแแก แกแแ แแแ แแแแ HTTP-แแก แแแแแงแแแแแแ."
แแแขแ /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}
แแแฉแแ แแแ() {
echo "แแฅ แแ แแคแแ แแ แแแกแแแแแแแแแ"
}
แ แแกแขแแ แขแ() {
แจแแฉแแ แแแ
แแแฌแงแแแ
}
# แแแฎแแ, แ แแแแ แแแแแแ แแแแก.
แกแแฅแแ "$1" in
แแแฌแงแแแ)
แแแฌแงแแแ
;;
แแแฉแแ แแแ)
แจแแฉแแ แแแ
;;
แ แแกแขแแ แขแ)
แแแแแขแแแ แแแ
;;
*)
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 แแแกแแแก แแแแขแแแ แแแ แฉแแแแ แกแแกแขแแแแ แแ แ แแแแกแขแ แแชแแ 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 แกแแ แแแกแแก "Snapshots" แแแแงแแคแแแแแแจแ, แแแ แฉแแแ แแก, แ แแช แแญแแ แแแแแ (แฉแแแแก แจแแแแฎแแแแแจแ แแก แแ แแก centos-snap), แแแแฌแแแแฃแแแ แแแกแแ แแแ แฏแแแแ แฆแแแแแแ แแ แแแ แฉแแแ "Create Image from Snapshot"
แจแแแแแ, แคแแแฏแแ แแจแ, แ แแแแแแช แแฎแกแแแแ, แฃแแแ แแแ แฉแแแ แแแแฎแแแแแแ แจแแแแแแ แแแ แแแแขแ แแแ:
แจแแแแซแแแแ แแแแแแ, แ แแแแแ แแแ แแแแก 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
แฒกแฃแ แแก แแ แแก. แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแฃแจแแแ แแแแแแแแแ แแแ.
แแ แแแแ, แแฅแแแ แจแแแแซแแแแ แจแแฅแแแแ แกแฃแ แแแ, แกแแแแ แแฃแแแ, แแแแแกแแแแ แ Linux แแแกแขแ แแแฃแชแแแ. แงแแแแ แจแแแแฎแแแแแจแ, แแฃแชแแแแแแแ Debian (แแแแแแงแแแแแ debootstrap แกแฃแคแแ แกแแกแขแแแแก แแแกแแงแแแแแแแ) แแ Rhel-family.
แฌแงแแ แ: www.habr.com