A ’cruthachadh an ìomhaigh agad fhèin le CentOS 5.9 fìor-ghlan ann an sgòth Amazon

Mar a tha fios agad, ann an sgòth Amazon thèid suidheachaidhean brìgheil a chuir air bhog stèidhichte air ìomhaighean (ris an canar Ami). Tha Amazon a’ toirt seachad àireamh mhòr dhiubh; faodaidh tu cuideachd ìomhaighean poblach ullachadh le treas phàrtaidhean a chleachdadh, air nach eil uallach sam bith air an t-solaraiche sgòthan, gu dearbh. Ach uaireannan feumaidh tu ìomhaigh siostam glan leis na paramadairean riatanach, nach eil air an liosta de dhealbhan. An uairsin is e an aon dòigh a-mach an AMI agad fhèin a dhèanamh.

Tha na sgrìobhainnean oifigeil a’ mìneachadh slighe cruthachadh “AMI le taic stòrais”. Is e ana-cothrom an dòigh-obrach seo gum feumar an ìomhaigh chrìochnaichte a thionndadh gu bhith na “AMI le taic EBS”

Bruidhnidh an artaigil seo mar a chruthaicheas tu an AMI agad fhèin le taic EBS ann an sgòth Amazon gun cheumannan eadar-mheadhanach.

Plana gnìomh:

  • Ullaich an àrainneachd
  • Stàlaich siostam glan agus dèan na roghainnean riatanach
  • Gabh dealbh den diosga
  • Clàraich AMI

Ag ullachadh na h-àrainneachd

Airson ar n-adhbharan, tha eisimpleir sam bith de chumadh sam bith freagarrach, eadhon t1.micro. Faodaidh tu a ruith tron ​​CLI:

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

Cruthaichidh sinn ebs-volume, far an stàlaich sinn an siostam againn nas fhaide air adhart:

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

Nì an àithne seo diosc 10 Gb dhuinn. Cudromach: feumaidh an diosc a bhith san aon raon ris an eisimpleir (anns a ’chùis againn is e us-ear-1a a th’ ann).
An ath rud, feumaidh tu an diosc a cheangal ris an eisimpleir:

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

A-nis leig leinn logadh a-steach don eisimpleir tro ssh, cruth an diosc agus cuir a-steach e san eòlaire:

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

A’ stàladh glan Centos 5.9

Mus stàlaich thu an siostam, feumaidh tu craobh eòlaire a chruthachadh, mount proc agus sysfs, agus seata innealan as ìsle a chruthachadh:

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

Stàlaichidh sinn an siostam a’ cleachdadh yum agus am faidhle rèiteachaidh a leanas:
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

Às deidh dhut an stàladh a chrìochnachadh, faodaidh tu pacaidean riatanach sam bith a stàladh san aon dòigh:

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

Deasaich sinn 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

Ann an CentOS 5.9 feumaidh tu fhathast kernel a chuir a-steach le taic xen:

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

Stàlaich Grub:

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

agus cruthaich initrd nuadh :

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

Tha e glè chudromach na paramadairean sin uile a shònrachadh agus fstab ùr, air dhòigh eile cha tòisich an siostam.
An uairsin feumaidh tu faidhle menu.lst a chruthachadh airson 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

Dèanamaid rèiteachadh air an lìonra agus 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

Mar sin, gheibh sinn lìonra obrach agus an comas logadh a-steach don eisimpleir a’ cleachdadh na h-iuchraichean. Ach feumaidh an iuchair fhèin a bhith air a ghluasad chun eisimpleir dòigh air choireigin. Faodar seo a dhèanamh le bhith a’ cleachdadh sgriobt a bheir an iuchair agus a shàbhaileas e san eisimpleir:

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

ec2-faigh-ssh#! / bin / bash
# chkconfig: 2345 95 20
# ainm pròiseas: ec2-get-ssh
# tuairisgeul: Glac prìomh theisteanasan AWS airson neach-cleachdaidh EC2

# Source function library
. /etc/rc.d/init.d/functions

# Rèiteachadh lìonra stòr
[ -r /etc/sysconfig/network] &&. /etc/sysconfig/network

# Cuir an àite na caochladairean àrainneachd a leanas airson an t-siostam agad
às-mhalairt PATH =:/usr/ionadail/bin:/usr/ionadail/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Dèan cinnteach gu bheil lìonrachadh air a rèiteachadh
if [ "${NETWORK}" = "chan eil" ]; an uair sin
mac-talla "Chan eil lìonrachadh air a rèiteachadh."
fàgail 1
fi

tòiseachadh () {
ma tha [! -d /root/.ssh ]; an uair sin
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Faigh iuchair phoblach air ais bhon t-seirbheisiche meata-dàta a’ cleachdadh HTTP
curl -f 169.254.169.254/as ùire/meta-dàta/public-keys/0/openssh-key > /tmp/my-public-key
ma tha [$? -eq 0]; an uair sin
mac-talla "EC2: Thoir air ais iuchair phoblach o fhrithealaiche meata-dàta a’ cleachdadh HTTP."
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

stad () {
mac-talla "Chan eil dad ri dhèanamh an seo"
}

ath-thòisich() {
stad
toiseach
}

# Faic mar a chaidh ar gairm.
cùis "$1" a-steach
tòiseachadh)
toiseach
;;
stad)
stad
;;
ath-thòisich)
ath-thòisich
;;
*)
mac-talla $" Cleachdadh: $0 {tòisich | stad | ath-thòisich}"
fàgail 1
gu bheil C.

fàgail $?
Feuch an dèan sinn e so-ghnìomhaichte agus cuir ris aig toiseach tòiseachaidh:

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

Tha e ciallach cuideachd Selinux a chuir dheth, no a rèiteachadh gu ceart. Rud eile, mar eisimpleir, is dòcha nach tèid an iuchair a shàbhaladh air an eisimpleir.
Aig an ìre seo faodaidh tu stad a chur air stèidheachadh an t-siostam. Tha CentOS fìor-ghlan againn mu thràth deiseil airson ruith san sgòth. Chan eil air fhàgail ach an diosc ebs a thoirt a-mach leis an t-siostam againn agus clàradh ami.

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

Clàradh AMI

Gus ami fhaighinn bho dhiosg ebs, feumaidh tu an toiseach dealbh den diosc a ghabhail:

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

Is e an dòigh as fhasa ami a chlàradh tro AWS Management Console. Gus seo a dhèanamh, cha leig thu leas ach a dhol chun roinn “Snapshots” anns an t-seirbheis EC2, tagh am fear a tha a dhìth ort (is e centos-snap a th’ ann sa chùis againn), cliog deas air agus tagh “Cruthaich Ìomhaigh bho Snapshot”
An uairsin, anns an uinneag a tha a ’fosgladh, feumaidh tu timcheall air na paramadairean a leanas a thaghadh:

A ’cruthachadh an ìomhaigh agad fhèin le CentOS 5.9 fìor-ghlan ann an sgòth Amazon

Gheibh thu a-mach dè an ID Kernel a thaghas tu mar a leanas:

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

Sin e. A-nis faodaidh tu eisimpleirean a chuir air bhog.
San dòigh seo, faodaidh tu ìomhaigh a chruthachadh, as coltaiche, le cuairteachadh Linux sam bith. Co-dhiù, gu cinnteach Debian (a 'cleachdadh debootstrap gus siostam glan a stàladh) agus Rhel-teaghlach.

Source: www.habr.com

Cuir beachd ann