ααΌα
αααα’αααααΆαααΉαα αΎαααΆαα
αααα»α Amazon cloud virtual instances ααααΌαααΆαααΆααα±ααααααΎαααΆααααααα’ααααΎααΌαααΆα (α’αααΈαααααα α
ααΆ
α―αααΆαααααΌαααΆααα·αααααΆ
αααααααααΎα 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
ααΎ [$? -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) α
α»α
ααΆαααααΆαααΎααΆα αΎαααααΎαααΎα "αααααΎαααΌαααΆαααΈααΌααα" α
αααααΆαααα αα
αααα»ααααα’α½α
αααααΎα α’αααααααΌαααααΎαααΎααααΆαααΆααααααααΌα
ααΆααααααα
α’αααα’αΆα
ααααααααααΆααΎααααααααΆααααΊααααα½αααΆαααααααΌαααααΎαααΎαααΌα
ααΆααααααα
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