Ստեղծեք ձեր սեփական պատկերը մաքուր CentOS 5.9-ով Amazon ամպի մեջ

Ինչպես գիտեք, Ամազոնի ամպում վիրտուալ ատյանները գործարկվում են պատկերների հիման վրա (այսպես կոչված AMI) Amazon-ը տրամադրում է դրանց մեծ քանակություն, դուք կարող եք նաև օգտագործել երրորդ անձանց կողմից պատրաստված հանրային պատկերներ, որոնց համար ամպային մատակարարը, իհարկե, որևէ պատասխանատվություն չի կրում։ Բայց երբեմն անհրաժեշտ է մաքուր համակարգի պատկեր՝ անհրաժեշտ պարամետրերով, որը պատկերների ցանկում չկա։ Այդ դեպքում միակ ելքը ձեր սեփական AMI-ն ստեղծելն է:

Պաշտոնական փաստաթուղթը նկարագրում է ճանապարհին ստեղծելով «խանութով ապահովված AMI»: Այս մոտեցման թերությունն այն է, որ պատրաստի պատկերը նույնպես պետք է փոխարկվի «EBS-ով ապահովված AMI»-ի:

Ինչպես ստեղծել ձեր սեփական EBS-ով ապահովված AMI-ն Amazon ամպում առանց միջանկյալ քայլերի, կքննարկվի այս հոդվածում:

Գործողությունների ծրագիր.

  • Պատրաստել միջավայրը
  • Տեղադրեք մաքուր համակարգ և կատարեք անհրաժեշտ կարգավորումները
  • Վերցրեք սկավառակի լուսանկարը
  • Գրանցվել AMI

Շրջակա միջավայրի նախապատրաստում

Մեր նպատակների համար ցանկացած ձևի ցանկացած օրինակ հարմար է, նույնիսկ t1.micro: Դուք կարող եք այն գործարկել CLI-ի միջոցով.

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

Եկեք ստեղծենք ebs-volume, որտեղ ավելի ուշ կտեղադրենք մեր համակարգը.

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

Այս հրամանը մեզ համար կստեղծի 10 Գբ սկավառակ: Կարևոր է. սկավառակը պետք է լինի նույն գոտում, ինչ օրինակը (մեր դեպքում դա us-east-1a է):
Հաջորդը, դուք պետք է կցեք սկավառակը օրինակին.

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

Այժմ եկեք մուտք գործենք օրինակ ssh-ի միջոցով, ձևաչափեք սկավառակը և տեղադրեք այն գրացուցակում.

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

Մաքուր Centos 5.9-ի տեղադրում

Նախքան համակարգը տեղադրելը, դուք պետք է ստեղծեք գրացուցակի ծառ, տեղադրեք proc և sysfs և ստեղծեք սարքերի նվազագույն հավաքածու.

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

Մենք կտեղադրենք համակարգը՝ օգտագործելով yum-ը և հետևյալ կազմաձևման ֆայլը.
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

Տեղադրման գործընթացն ավարտելուց հետո դուք կարող եք տեղադրել ցանկացած անհրաժեշտ փաթեթ նույն ձևով.

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

Եկեք խմբագրենք 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

CentOS 5.9-ում դեռ պետք է միջուկ տեղադրել xen-ի աջակցությամբ.

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

Տեղադրեք Grub:

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

և ստեղծեք նոր initrd:

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

Շատ կարևոր է նշել այս բոլոր պարամետրերը և նոր fstab, հակառակ դեպքում համակարգը չի բեռնվի:
Հաջորդը, դուք պետք է ստեղծեք menu.lst ֆայլ 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

Եկեք կարգավորենք ցանցը և 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

Այսպիսով, մենք կստանանք աշխատանքային ցանց և ստեղների միջոցով ատյան մուտք գործելու հնարավորություն: Բայց բանալին ինքնին ինչ-որ կերպ պետք է փոխանցվի ատյան։ Դա կարելի է անել՝ օգտագործելով սկրիպտ, որը կվերցնի բանալին և կպահի այն օրինակում.

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

ec2-get-ssh#! / bin / bash
# chkconfig՝ 2345 95 20
# գործընթացի անունը՝ ec2-get-ssh
# նկարագրություն. AWS հանրային բանալու հավատարմագրերը EC2 օգտագործողի համար

#Աղբյուր ֆունկցիայի գրադարան
. /etc/rc.d/init.d/functions

# Աղբյուրի ցանցային կազմաձևում
[ -r /etc/sysconfig/network] &&. /etc/sysconfig/ցանց

# Փոխարինեք հետևյալ միջավայրի փոփոխականները ձեր համակարգի համար
արտահանել PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

# Ստուգեք, որ ցանցը կազմաձևված է
if [ "${NETWORKING}" = "ոչ" ]; ապա
echo «Ցանցը կազմաձևված չէ»:
ելք 1-ից
fi

սկսել () {
եթե [! -d /root/.ssh]; ապա
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# Առբերեք հանրային բանալին մետատվյալների սերվերից՝ օգտագործելով HTTP
գանգուր -f 169.254.169.254/last/meta-data/public-keys/0/openssh-key > /tmp/my-public-key
եթե [$? -eq 0]; ապա
echo «EC2. Առբերեք հանրային բանալին մետատվյալների սերվերից՝ օգտագործելով HTTP»:
cat /tmp/my-public-key >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
rm /tmp/my-public-key
fi
}

կանգառ () {
echo «Այստեղ անելիք չկա»
}

վերսկսել() {
կասեցնել
Սկիզբ
}

# Տեսեք, թե ինչպես են մեզ կանչել.
գործ «$1» դյույմ
սկիզբ)
Սկիզբ
;;
կանգառ)
կասեցնել
;;
վերսկսել)
մեքենայական ծրագրի կրկնական գործարկումը
;;
*)
echo $"Օգտագործում. $0 {սկիզբ|դադար|վերագործարկում}"
ելք 1-ից
որ Գ

դուրս գալ $?
Եկեք այն գործարկելի դարձնենք և ավելացնենք գործարկման մեջ.

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

Ցանկալի է նաև անջատել Selinux-ը կամ ճիշտ կարգավորել այն: Հակառակ դեպքում, օրինակ, բանալին կարող է չպահվել օրինակի վրա:
Այս պահին դուք կարող եք դադարեցնել համակարգի կարգավորումը: Մենք արդեն ունենք մաքուր CentOS, որը պատրաստ է աշխատելու ամպի մեջ: Մնում է միայն ապամոնտաժել ebs սկավառակը մեր համակարգով և գրանցել ami:

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

AMI գրանցում

Ebs սկավառակից ami ստանալու համար նախ անհրաժեշտ է սկավառակի լուսանկարը.

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

Ամին գրանցելու ամենադյուրին ճանապարհը AWS Management Console-ի միջոցով է: Դա անելու համար պարզապես անհրաժեշտ է EC2 ծառայության «Snapshots» բաժինը, ընտրել ձեզ անհրաժեշտը (մեր դեպքում դա centos-snap-ն է), աջ սեղմել դրա վրա և ընտրել «Ստեղծել պատկեր Snapshot-ից»:
Այնուհետև բացվող պատուհանում անհրաժեշտ է ընտրել մոտավորապես հետևյալ պարամետրերը.

Ստեղծեք ձեր սեփական պատկերը մաքուր CentOS 5.9-ով Amazon ամպի մեջ

Դուք կարող եք պարզել, թե որ միջուկի ID-ն ընտրել հետևյալ կերպ.

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

Այսքանը: Այժմ դուք կարող եք գործարկել օրինակները:
Այսպիսով, դուք կարող եք ստեղծել պատկեր, ամենայն հավանականությամբ, ցանկացած Linux բաշխմամբ: Համենայն դեպս, անպայման Debian (օգտագործելով debootstrap մաքուր համակարգ տեղադրելու համար) և Rhel-family:

Source: www.habr.com

Добавить комментарий