Sakumaha anjeun terang, dina instansi maya awan Amazon diluncurkeun dumasar kana gambar (anu disebut
Dokuméntasi resmi ngajelaskeun
Kumaha cara nyiptakeun AMI anu didukung EBS anjeun dina méga Amazon tanpa léngkah-léngkah panengah bakal dibahas dina tulisan ieu.
Rancangan Aksi:
- Nyiapkeun lingkungan
- Pasang sistem anu bersih sareng ngadamel setélan anu diperyogikeun
- Candak snapshot tina disk
- Ngadaptarkeun AMI
Nyiapkeun Lingkungan
Pikeun kaperluan urang, sagala conto bentuk naon wae cocog, sanajan t1.micro. Anjeun tiasa ngajalankeun éta via CLI:
aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro
Hayu urang nyieun ebs-volume, dimana urang bakal install sistem urang engké:
aws ec2 create-volume --availability-zone us-east-1a --size 10
Paréntah ieu bakal ngadamel disk 10 Gb pikeun urang. Penting: piringan kedah aya dina zona anu sami sareng conto (dina hal urang nyaéta kami-wétan-1a).
Salajengna, anjeun kedah ngagantelkeun disk kana conto:
aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf
Ayeuna hayu urang lebet kana conto via ssh, pormat disk sareng pasang dina diréktori:
mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$
Masang bersih Centos 5.9
Sateuacan masang sistem, anjeun kedah nyiptakeun tangkal diréktori, pasang proc sareng sysfs, sareng ngadamel set minimum alat:
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
Kami bakal masang sistem nganggo yum sareng file konfigurasi ieu:
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
Saatos réngsé prosés pamasangan, anjeun tiasa masang pakét anu diperyogikeun ku cara anu sami:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name
Hayu urang édit 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
Dina CentOS 5.9 anjeun masih kedah masang kernel kalayan dukungan xen:
yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen
Pasang Grub:
chroot /mnt/centos-image/ grub-install /dev/xvdf
sareng ngahasilkeun initrd énggal:
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
Penting pisan pikeun netepkeun sadaya parameter ieu sareng fstab énggal, upami sistem moal boot.
Salajengna anjeun kedah nyiptakeun file menu.lst pikeun 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
Hayu urang ngonpigurasikeun jaringan sareng 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
Ku kituna, urang bakal meunang jaringan gawé sarta kamampuhan pikeun asup kana conto ngagunakeun kenop. Tapi koncina sorangan kedah ditransferkeun ka conto kumaha waé. Ieu tiasa dilakukeun nganggo skrip anu bakal nyandak konci sareng simpen dina conto:
vi /mnt/centos5img/etc/init.d/ec2-get-ssh
ec2-meunang-ssh#! / bin / bash
# chkconfig: 2345 95 20
# ngaran prosés: ec2-get-ssh
# pedaran: Nangkep Kapercayaan konci publik AWS pikeun pamaké EC2
# Perpustakaan fungsi sumber
. /etc/rc.d/init.d/functions
# Konfigurasi jaringan sumber
[-r /etc/sysconfig/network] &&. /etc/sysconfig/network
# Ganti variabel lingkungan di handap ieu pikeun sistem anjeun
ékspor PATH =:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# Pariksa yén jaringan dikonpigurasi
lamun [ "${NETWORKING}" = "henteu"]; saterusna
gema "Jaringan henteu dikonpigurasi."
kaluar 1
fi
ngamimitian () {
lamun [! -d /root/.ssh ]; saterusna
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Kéngingkeun konci umum tina server metadata nganggo HTTP
ngagulung -f
lamun [$? -sarua 0]; satuluyna
gema "EC2: Meunangkeun konci umum tina server metadata nganggo HTTP."
ucing /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}
Eureun() {
gema "Teu aya anu kedah dilakukeun di dieu"
}
uihan deui() {
Eureun
ngamimitian
}
# Tingali kumaha urang disebut.
bisi "$ 1" dina
ngamimitian)
ngamimitian
;;
Eureun)
Eureun
;;
uihan deui)
uihan deui
;;
*)
echo $"Pamakéan: $0 {mimitian|eureun|balikan deui}"
kaluar 1
yén C
kaluar $?
Hayu urang laksanakeun sareng tambahkeun ka ngamimitian:
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
Éta ogé sasaena pikeun nganonaktipkeun Selinux, atanapi ngonpigurasikeunana leres. Upami teu kitu, contona, konci bisa jadi teu disimpen dina conto.
Dina titik ieu anjeun tiasa ngeureunkeun nyetél sistem. Kami parantos ngagaduhan CentOS murni anu siap dijalankeun dina méga. Sadaya anu tetep nyaéta ngaleupaskeun disk ebs sareng sistem kami sareng ngadaptar ami.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
pendaptaran AMI
Pikeun nyandak ami tina disk ebs, anjeun kedah nyandak snapshot tina disk:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
Cara panggampangna pikeun ngadaptar ami nyaéta ngaliwatan AWS Management Console. Jang ngalampahkeun ieu, anjeun ngan ukur kedah angkat ka bagian "Snapshots" dina jasa EC2, pilih anu anjeun peryogikeun (bisi kami éta centos-snap), klik-katuhu kana éta teras pilih "Jieun Gambar tina Snapshot"
Teras, dina jandela anu muka, anjeun kedah milih kira-kira parameter ieu:
Anjeun tiasa mendakan ID Kernel mana anu kedah dipilih sapertos kieu:
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
Éta hungkul. Ayeuna anjeun tiasa ngaluncurkeun instansi.
Ku cara kieu, anjeun tiasa nyiptakeun gambar, paling dipikaresep, sareng distribusi Linux. Sahenteuna, pasti Debian (ngagunakeun debootstrap pikeun masang sistem bersih) jeung Rhel-kulawarga.
sumber: www.habr.com