Krijimi i imazhit tuaj me CentOS 5.9 të pastër në renë Amazon

Siç e dini, në cloud Amazon instancat virtuale lëshohen bazuar në imazhe (të ashtuquajturat AMI). Amazon ofron një numër të madh të tyre; ju gjithashtu mund të përdorni imazhe publike të përgatitura nga palë të treta, për të cilat ofruesi i cloud, natyrisht, nuk mban asnjë përgjegjësi. Por ndonjëherë ju nevojitet një imazh i pastër i sistemit me parametrat e nevojshëm, i cili nuk është në listën e imazheve. Atëherë e vetmja rrugëdalje është të bëni AMI-në tuaj.

Dokumentacioni zyrtar përshkruan mënyra e duke krijuar një "AMI të mbështetur nga dyqani i shembullit". Disavantazhi i kësaj qasjeje është se imazhi i përfunduar do të duhet gjithashtu të konvertohet në një "AMI të mbështetur nga EBS"

Si të krijoni AMI-në tuaj të mbështetur nga EBS në cloud Amazon pa hapa të ndërmjetëm do të diskutohet në këtë artikull.

Plani i Veprimit:

  • Përgatitni mjedisin
  • Instaloni një sistem të pastër dhe bëni cilësimet e nevojshme
  • Merrni një fotografi të diskut
  • Regjistrohu AMI

Përgatitja e Mjedisit

Për qëllimet tona, çdo shembull i çdo forme është i përshtatshëm, edhe t1.micro. Mund ta ekzekutoni përmes CLI:

aws ec2 run-instances --image-id ami-1624987f --max-count 1 --min-count 1 --key-name mel --instance-type t1.micro

Le të krijojmë ebs-volume, ku do të instalojmë sistemin tonë më vonë:

aws ec2 create-volume --availability-zone us-east-1a --size 10

Kjo komandë do të krijojë një disk 10 Gb për ne. E rëndësishme: disku duhet të jetë në të njëjtën zonë me shembullin (në rastin tonë është us-east-1a).
Tjetra, duhet të bashkëngjitni diskun në shembullin:

aws ec2 attach-volume --instance-id i-2bc0925b --volume-id vol-08ab3079 --device /dev/xvdf

Tani le të hyjmë në shembull përmes ssh, të formatojmë diskun dhe ta montojmë në drejtori:

mkfs.ext3 /dev/xvdf
mkdir /mnt/centos-image
mount /dev/xvdf /mnt/centos-image
cd !$

Instalimi i Centos 5.9 i pastër

Para se të instaloni sistemin, duhet të krijoni një pemë direktorie, të montoni proc dhe sysfs dhe të krijoni një grup minimal pajisjesh:

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

Ne do ta instalojmë sistemin duke përdorur yum dhe skedarin e mëposhtëm të konfigurimit:
yum-centos.konf

[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

Pas përfundimit të procesit të instalimit, mund të instaloni çdo paketë të nevojshme në të njëjtën mënyrë:

yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ install $packet_name

Le të modifikojmë 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

Në CentOS 5.9 ju duhet ende të instaloni një kernel me mbështetje xen:

yum -c ~/yum-centos.conf --installroot=/mnt/centos-image/ -y install kernel-xen

Instaloni Grub:

chroot /mnt/centos-image/ grub-install /dev/xvdf

dhe gjeneroni një initrd të ri:

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

Është shumë e rëndësishme të specifikoni të gjithë këta parametra dhe një fstab të ri, përndryshe sistemi nuk do të niset.
Më pas ju duhet të krijoni një skedar menu.lst për 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

Le të konfigurojmë rrjetin dhe 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

Kështu, ne do të marrim një rrjet pune dhe aftësinë për t'u identifikuar në shembull duke përdorur çelësat. Por vetë çelësi duhet të transferohet në instancë disi. Kjo mund të bëhet duke përdorur një skript që do të marrë çelësin dhe do ta ruajë atë në shembull:

vi /mnt/centos5img/etc/init.d/ec2-get-ssh

ec2-get-ssh#! / bin / bash
# chkconfig: 2345 95 20
# emri i procesit: ec2-get-ssh
# përshkrim: Kapni kredencialet e çelësit publik AWS për përdoruesin EC2

#Biblioteka e funksionit të burimit
. /etc/rc.d/init.d/functions

# Konfigurimi i rrjetit burimor
[ -r /etc/sysconfig/rrjet ] &&. /etc/sysconfig/rrjet

# Zëvendësoni variablat e mëposhtëm të mjedisit për sistemin tuaj
eksportoni PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Kontrollo që rrjeti është i konfiguruar
nëse [ "${NETWORKING}" = "jo" ]; pastaj
echo "Rrjeti nuk është konfiguruar."
dalja 1
fi

fillo () {
nëse [! -d /root/.ssh ]; pastaj
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Merrni çelësin publik nga serveri i meta të dhënave duke përdorur HTTP
kaçurrela -f 169.254.169.254/last/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
nëse [$? -eq 0]; pastaj
echo "EC2: Merr çelësin publik nga serveri i meta të dhënave duke përdorur HTTP."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

ndalo() {
jehonë "Asgjë për të bërë këtu"
}

Rifillo, fillo përsëri() {
stop
Fillimi
}

# Shikoni si na thirrën.
rasti "$1" in
fillim)
Fillimi
;;
ndal)
stop
;;
Rifillo, fillo përsëri)
restart
;;
*)
echo $"Përdorimi: $0 {fillimi|ndalimi|rifillimi}"
dalja 1
se C

dilni nga $?
Le ta bëjmë atë të ekzekutueshëm dhe ta shtojmë atë në fillim:

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

Këshillohet gjithashtu të çaktivizoni Selinux-in ose ta konfiguroni saktë. Përndryshe, për shembull, çelësi mund të mos ruhet në shembull.
Në këtë pikë mund të ndaloni konfigurimin e sistemit. Ne tashmë kemi CentOS të pastër gati për të ekzekutuar në re. Gjithçka që mbetet është të çmontojmë diskun ebs me sistemin tonë dhe të regjistrojmë ami.

umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/

Regjistrimi AMI

Për të marrë ami nga një disk ebs, së pari duhet të bëni një fotografi të diskut:

aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap

Mënyra më e lehtë për të regjistruar ami është përmes panelit të menaxhimit AWS. Për ta bërë këtë, thjesht duhet të shkoni te seksioni "Snapshots" në shërbimin EC2, zgjidhni atë që ju nevojitet (në rastin tonë është centos-snap), klikoni me të djathtën mbi të dhe zgjidhni "Krijo imazh nga fotografia".
Pastaj, në dritaren që hapet, duhet të zgjidhni afërsisht parametrat e mëposhtëm:

Krijimi i imazhit tuaj me CentOS 5.9 të pastër në renë Amazon

Ju mund të zbuloni se cilën ID të Kernelit të zgjidhni si më poshtë:

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

Kjo eshte e gjitha. Tani mund të nisni shembuj.
Në këtë mënyrë, ju mund të krijoni një imazh, ka shumë të ngjarë, me çdo shpërndarje Linux. Të paktën, patjetër Debian (duke përdorur debootstrap për të instaluar një sistem të pastër) dhe Rhel-family.

Burimi: www.habr.com

Shto një koment