Nyiptakeun gambar anjeun nyalira nganggo CentOS 5.9 murni dina awan Amazon

Sakumaha anjeun terang, dina instansi maya awan Amazon diluncurkeun dumasar kana gambar (anu disebut AMI). Amazon nyayogikeun sajumlah ageung; anjeun ogé tiasa nganggo gambar umum anu disiapkeun ku pihak katilu, anu panyadia awan, tangtosna, henteu nanggung tanggung jawab. Tapi kadang anjeun peryogi gambar sistem anu bersih sareng parameter anu diperyogikeun, anu henteu aya dina daptar gambar. Teras hiji-hijina jalan kaluar nyaéta ngadamel AMI anjeun nyalira.

Dokuméntasi resmi ngajelaskeun cara nyieun hiji "conto toko-dijieun AMI". Karugian tina pendekatan ieu nyaéta gambar anu réngsé ogé kedah dirobih janten "AMI anu didukung EBS"

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 169.254.169.254/panganyarna/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
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:

Nyiptakeun gambar anjeun nyalira nganggo CentOS 5.9 murni dina awan Amazon

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

Tambahkeun komentar