Creu eich delwedd eich hun gyda CentOS 5.9 pur yng nghwmwl Amazon

Fel y gwyddoch, yn y cwmwl Amazon mae achosion rhithwir yn cael eu lansio yn seiliedig ar ddelweddau (yr hyn a elwir FRIEND). Mae Amazon yn darparu nifer fawr ohonynt; gallwch hefyd ddefnyddio delweddau cyhoeddus a baratowyd gan drydydd partïon, nad yw darparwr y cwmwl, wrth gwrs, yn cymryd unrhyw gyfrifoldeb amdanynt. Ond weithiau mae angen delwedd system lân arnoch gyda'r paramedrau angenrheidiol, nad yw yn y rhestr o ddelweddau. Yna'r unig ffordd allan yw gwneud eich AMI eich hun.

Mae'r ddogfennaeth swyddogol yn disgrifio ffordd creu “AMI a gefnogir gan siop er enghraifft”. Anfantais y dull hwn yw y bydd angen trosi'r ddelwedd orffenedig hefyd yn “AMI gyda chefnogaeth EBS”

Bydd sut i greu eich AMI eich hun gyda chefnogaeth EBS yng nghwmwl Amazon heb gamau canolradd yn cael ei drafod yn yr erthygl hon.

Cynllun Gweithredu:

  • Paratowch yr amgylchedd
  • Gosod system lân a gwneud y gosodiadau angenrheidiol
  • Cymerwch giplun o'r ddisg
  • Cofrestrwch AMI

Paratoi'r Amgylchedd

At ein dibenion ni, mae unrhyw enghraifft o unrhyw siâp yn addas, hyd yn oed t1.micro. Gallwch ei redeg trwy'r CLI:

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

Gadewch i ni greu ebs-volume, lle byddwn yn gosod ein system yn ddiweddarach:

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

Bydd y gorchymyn hwn yn gwneud disg 10 Gb i ni. Pwysig: rhaid i'r ddisg fod yn yr un parth â'r enghraifft (yn ein hachos ni mae'n us-east-1a).
Nesaf, mae angen i chi atodi'r ddisg i'r enghraifft:

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

Nawr, gadewch i ni fewngofnodi i'r enghraifft trwy ssh, fformatio'r ddisg a'i osod yn y cyfeiriadur:

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

Gosod Centos glân 5.9

Cyn gosod y system, mae angen i chi greu coeden cyfeiriadur, mowntio proc a sysfs, a chreu set leiaf o ddyfeisiau:

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

Byddwn yn gosod y system gan ddefnyddio yum a'r ffeil ffurfweddu ganlynol:
iym-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

Ar ôl cwblhau'r broses osod, gallwch osod unrhyw becynnau angenrheidiol yn yr un modd:

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

Gadewch i ni olygu 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

Yn CentOS 5.9 mae angen i chi osod cnewyllyn gyda chefnogaeth xen o hyd:

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

Gosod Grub:

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

a chynhyrchu initrd newydd:

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

Mae'n bwysig iawn nodi'r holl baramedrau hyn a fstab newydd, fel arall ni fydd y system yn cychwyn.
Nesaf mae angen i chi greu ffeil menu.lst ar gyfer 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

Gadewch i ni ffurfweddu'r rhwydwaith a 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

Felly, byddwn yn cael rhwydwaith gweithio a'r gallu i fewngofnodi i'r enghraifft gan ddefnyddio'r allweddi. Ond mae angen trosglwyddo'r allwedd ei hun i'r enghraifft rywsut. Gellir gwneud hyn gan ddefnyddio sgript a fydd yn cymryd yr allwedd a'i gadw ar yr enghraifft:

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

ec2-get-ssh#! / bin / bash
# chkconfig: 2345 95 20
# enw proses: ec2-get-ssh
# disgrifiad: Dal tystlythyrau allwedd cyhoeddus AWS ar gyfer defnyddiwr EC2

#Ffynhonnell llyfrgell swyddogaeth
. /etc/rc.d/init.d/functions

# Ffurfweddiad rhwydweithio ffynhonnell
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network

# Amnewid y newidynnau amgylchedd canlynol ar gyfer eich system
allforio PATH=:/usr/lleol/bin:/usr/lleol/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Gwiriwch fod y rhwydweithio wedi'i ffurfweddu
os [ "${NETWORK}" = "na" ]; yna
adlais "Nid yw rhwydweithio wedi'i ffurfweddu."
allanfa 1
fi

dechrau () {
os [! -d /root/.ssh]; yna
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Adalw allwedd gyhoeddus o'r gweinydd metadata gan ddefnyddio HTTP
cyrl -f 169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
os yw [$? -eq 0]; yna
adlais "EC2: Adalw allwedd gyhoeddus o'r gweinydd metadata gan ddefnyddio HTTP."
cath /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

stopio () {
adlais "Dim byd i'w wneud yma"
}

Ail-ddechrau() {
rhoi'r gorau i
dechrau
}

# Gweld sut y cawsom ein galw.
achos "$1" i mewn
dechrau)
dechrau
;;
stopio)
rhoi'r gorau i
;;
Ail-ddechrau)
ail-gychwyn
;;
*)
adlais $"Defnydd: $0 {cychwyn|stopio|ailgychwyn}"
allanfa 1
bod C.

allanfa $?
Gadewch i ni ei wneud yn weithredadwy a'i ychwanegu at y cychwyn:

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

Mae hefyd yn ddoeth analluogi Selinux, neu ei ffurfweddu'n gywir. Fel arall, er enghraifft, efallai na fydd yr allwedd yn cael ei gadw ar yr enghraifft.
Ar y pwynt hwn gallwch roi'r gorau i sefydlu'r system. Mae gennym eisoes CentOS pur yn barod i redeg yn y cwmwl. Y cyfan sydd ar ôl yw dad-osod disg yr ebs gyda'n system a chofrestru ami.

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

Cofrestriad AMI

I gael ami o ddisg ebs, yn gyntaf mae angen i chi gymryd ciplun o'r ddisg:

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

Y ffordd hawsaf i gofrestru ami yw trwy Consol Rheoli AWS. I wneud hyn, does ond angen i chi fynd i'r adran “Snapshots” yn y gwasanaeth EC2, dewiswch yr un sydd ei angen arnoch chi (centos-snap yn ein hachos ni), de-gliciwch arno a dewis “Creu Image from Snapshot”
Yna, yn y ffenestr sy'n agor, mae angen i chi ddewis tua'r paramedrau canlynol:

Creu eich delwedd eich hun gyda CentOS 5.9 pur yng nghwmwl Amazon

Gallwch ddarganfod pa ID Kernel i'w ddewis fel a ganlyn:

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

Dyna i gyd. Nawr gallwch chi lansio achosion.
Yn y modd hwn, gallwch chi greu delwedd, yn fwyaf tebygol, gydag unrhyw ddosbarthiad Linux. O leiaf, yn bendant Debian (gan ddefnyddio debootstrap i osod system lân) a Rhel-teulu.

Ffynhonnell: hab.com

Ychwanegu sylw