ನಿಮಗೆ ತಿಳಿದಿರುವಂತೆ, ಅಮೆಜಾನ್ ಕ್ಲೌಡ್ನಲ್ಲಿ ವರ್ಚುವಲ್ ನಿದರ್ಶನಗಳನ್ನು ಚಿತ್ರಗಳ ಆಧಾರದ ಮೇಲೆ ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ (ಕರೆಯಲಾಗುತ್ತದೆ
ಅಧಿಕೃತ ದಸ್ತಾವೇಜನ್ನು ವಿವರಿಸುತ್ತದೆ
ಮಧ್ಯಂತರ ಹಂತಗಳಿಲ್ಲದೆ ಅಮೆಜಾನ್ ಕ್ಲೌಡ್ನಲ್ಲಿ ನಿಮ್ಮ ಸ್ವಂತ EBS-ಬೆಂಬಲಿತ AMI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದನ್ನು ಈ ಲೇಖನದಲ್ಲಿ ಚರ್ಚಿಸಲಾಗುವುದು.
ಕ್ರಿಯಾ ಯೋಜನೆ:
- ಪರಿಸರವನ್ನು ಸಿದ್ಧಪಡಿಸಿ
- ಕ್ಲೀನ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಅಗತ್ಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮಾಡಿ
- ಡಿಸ್ಕ್ನ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಿ
- 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-ವಾಲ್ಯೂಮ್ ಅನ್ನು ರಚಿಸೋಣ, ಅಲ್ಲಿ ನಾವು ನಮ್ಮ ಸಿಸ್ಟಮ್ ಅನ್ನು ನಂತರ ಸ್ಥಾಪಿಸುತ್ತೇವೆ:
aws ec2 create-volume --availability-zone us-east-1a --size 10
ಈ ಆಜ್ಞೆಯು ನಮಗೆ 10 Gb ಡಿಸ್ಕ್ ಅನ್ನು ಮಾಡುತ್ತದೆ. ಪ್ರಮುಖ: ಡಿಸ್ಕ್ ನಿದರ್ಶನದಂತೆಯೇ ಅದೇ ವಲಯದಲ್ಲಿರಬೇಕು (ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ ಇದು 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 !$
ಕ್ಲೀನ್ ಸೆಂಟೋಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ 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
ಗ್ರಬ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ:
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 ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದು ಬಹಳ ಮುಖ್ಯ, ಇಲ್ಲದಿದ್ದರೆ ಸಿಸ್ಟಮ್ ಬೂಟ್ ಆಗುವುದಿಲ್ಲ.
ಮುಂದೆ ನೀವು grub ಗಾಗಿ menu.lst ಫೈಲ್ ಅನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ:
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#! / ಬಿನ್ / ಬ್ಯಾಷ್
# chkconfig: 2345 95 20
# ಪ್ರಕ್ರಿಯೆಯ ಹೆಸರು: ec2-get-ssh
# ವಿವರಣೆ: EC2 ಬಳಕೆದಾರರಿಗಾಗಿ AWS ಸಾರ್ವಜನಿಕ ಕೀ ರುಜುವಾತುಗಳನ್ನು ಸೆರೆಹಿಡಿಯಿರಿ
#ಮೂಲ ಕಾರ್ಯ ಗ್ರಂಥಾಲಯ
. /etc/rc.d/init.d/functions
# ಮೂಲ ನೆಟ್ವರ್ಕಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್
[ -r /etc/sysconfig/network ] &&. /etc/sysconfig/network
# ನಿಮ್ಮ ಸಿಸ್ಟಮ್ಗಾಗಿ ಕೆಳಗಿನ ಪರಿಸರ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಬದಲಾಯಿಸಿ
ರಫ್ತು PATH=:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
# ನೆಟ್ವರ್ಕಿಂಗ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ
ಒಂದು ವೇಳೆ [ "${NETWORKING}" = "ಇಲ್ಲ" ]; ನಂತರ
ಪ್ರತಿಧ್ವನಿ "ನೆಟ್ವರ್ಕಿಂಗ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿಲ್ಲ."
ನಿರ್ಗಮನ 1
fi
ಪ್ರಾರಂಭ () {
ಒಂದು ವೇಳೆ [! -d /root/.ssh ]; ನಂತರ
mkdir -p /root/.ssh
chmod 700 /root/.ssh
fi
# HTTP ಬಳಸಿಕೊಂಡು ಮೆಟಾಡೇಟಾ ಸರ್ವರ್ನಿಂದ ಸಾರ್ವಜನಿಕ ಕೀಲಿಯನ್ನು ಹಿಂಪಡೆಯಿರಿ
ಕರ್ಲ್ -ಎಫ್
ಒಂದು ವೇಳೆ [$? -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
}
ನಿಲ್ಲಿಸು() {
ಪ್ರತಿಧ್ವನಿ "ಇಲ್ಲಿ ಮಾಡಲು ಏನೂ ಇಲ್ಲ"
}
ಪುನರಾರಂಭದ() {
ನಿಲ್ಲಿಸಿ
ಆರಂಭ
}
# ನಮ್ಮನ್ನು ಹೇಗೆ ಕರೆಯಲಾಗಿದೆ ಎಂದು ನೋಡಿ.
ಪ್ರಕರಣ "$1" ರಲ್ಲಿ
ಆರಂಭ)
ಆರಂಭ
;;
ನಿಲ್ಲಿಸು)
ನಿಲ್ಲಿಸಿ
;;
ಪುನರಾರಂಭದ)
ಪುನರಾರಂಭದ
;;
*)
ಪ್ರತಿಧ್ವನಿ $"ಬಳಕೆ: $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 ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ. ನಮ್ಮ ಸಿಸ್ಟಮ್ನೊಂದಿಗೆ ಇಬಿಎಸ್ ಡಿಸ್ಕ್ ಅನ್ನು ಅನ್ಮೌಂಟ್ ಮಾಡುವುದು ಮತ್ತು ಆಮಿ ಅನ್ನು ನೋಂದಾಯಿಸುವುದು ಮಾತ್ರ ಉಳಿದಿದೆ.
umount /mnt/centos-image/proc/
umount /mnt/centos-image/sys/
umount /mnt/centos-image/
AMI ನೋಂದಣಿ
ಇಬಿಎಸ್ ಡಿಸ್ಕ್ನಿಂದ ಅಮಿ ಪಡೆಯಲು, ನೀವು ಮೊದಲು ಡಿಸ್ಕ್ನ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಬೇಕು:
aws ec2 create-snapshot --volume-id vol-0b4bd07a --description centos-snap
AWS ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಕನ್ಸೋಲ್ ಮೂಲಕ ಅಮಿಯನ್ನು ನೋಂದಾಯಿಸಲು ಸುಲಭವಾದ ಮಾರ್ಗವಾಗಿದೆ. ಇದನ್ನು ಮಾಡಲು, ನೀವು EC2 ಸೇವೆಯಲ್ಲಿನ "ಸ್ನ್ಯಾಪ್ಶಾಟ್ಗಳು" ವಿಭಾಗಕ್ಕೆ ಹೋಗಬೇಕು, ನಿಮಗೆ ಬೇಕಾದುದನ್ನು ಆಯ್ಕೆಮಾಡಿ (ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ ಇದು ಸೆಂಟೋಸ್-ಸ್ನ್ಯಾಪ್), ಅದರ ಮೇಲೆ ಬಲ ಕ್ಲಿಕ್ ಮಾಡಿ ಮತ್ತು "ಸ್ನ್ಯಾಪ್ಶಾಟ್ನಿಂದ ಚಿತ್ರವನ್ನು ರಚಿಸಿ" ಆಯ್ಕೆಮಾಡಿ.
ನಂತರ, ತೆರೆಯುವ ವಿಂಡೋದಲ್ಲಿ, ನೀವು ಸರಿಸುಮಾರು ಈ ಕೆಳಗಿನ ನಿಯತಾಂಕಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕಾಗುತ್ತದೆ:
ಯಾವ ಕರ್ನಲ್ ಐಡಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕೆಂದು ನೀವು ಈ ಕೆಳಗಿನಂತೆ ಕಂಡುಹಿಡಿಯಬಹುದು:
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
ಅಷ್ಟೇ. ಈಗ ನೀವು ನಿದರ್ಶನಗಳನ್ನು ಪ್ರಾರಂಭಿಸಬಹುದು.
ಈ ರೀತಿಯಾಗಿ, ನೀವು ಯಾವುದೇ ಲಿನಕ್ಸ್ ವಿತರಣೆಯೊಂದಿಗೆ ಚಿತ್ರವನ್ನು ರಚಿಸಬಹುದು. ಕನಿಷ್ಠ, ಖಂಡಿತವಾಗಿಯೂ ಡೆಬಿಯನ್ (ಶುದ್ಧ ವ್ಯವಸ್ಥೆಯನ್ನು ಸ್ಥಾಪಿಸಲು ಡೀಬೂಟ್ಸ್ಟ್ರಾಪ್ ಅನ್ನು ಬಳಸುವುದು) ಮತ್ತು Rhel-ಕುಟುಂಬ.
ಮೂಲ: www.habr.com