ಈ ಮಾರ್ಗದರ್ಶಿ ಅದೇ ಹೆಸರಿನ "ಫೋರ್ಕ್" ಆಗಿದೆ. ಲೇಖನಗಳು ಬಗ್ಗೆ CentOS 5.9, ಮತ್ತು ಹೊಸ OS ನ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. AWS ಮಾರುಕಟ್ಟೆ ಸ್ಥಳದಲ್ಲಿ ಪ್ರಸ್ತುತ ಯಾವುದೇ ಅಧಿಕೃತ ಚಿತ್ರ ಲಭ್ಯವಿಲ್ಲ. Centos8 ರಿಂದ centos.org.
ನಿಮಗೆ ತಿಳಿದಿರುವಂತೆ, ಅಮೆಜಾನ್ ಕ್ಲೌಡ್ನಲ್ಲಿ ವರ್ಚುವಲ್ ನಿದರ್ಶನಗಳನ್ನು ಚಿತ್ರಗಳ ಆಧಾರದ ಮೇಲೆ ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ (ಕರೆಯಲಾಗುತ್ತದೆ ಅಮಿ). ಅಮೆಜಾನ್ ಅವುಗಳಲ್ಲಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ನೀವು ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಸಂಸ್ಥೆಗಳು ಸಿದ್ಧಪಡಿಸಿದ ಸಾರ್ವಜನಿಕ ಚಿತ್ರಗಳನ್ನು ಸಹ ಬಳಸಬಹುದು, ಇದಕ್ಕಾಗಿ ಕ್ಲೌಡ್ ಪೂರೈಕೆದಾರರು ಯಾವುದೇ ಜವಾಬ್ದಾರಿಯನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಆದರೆ ಕೆಲವೊಮ್ಮೆ ನಿಮಗೆ ಅಗತ್ಯ ನಿಯತಾಂಕಗಳೊಂದಿಗೆ ಕ್ಲೀನ್ ಸಿಸ್ಟಮ್ನ ಚಿತ್ರ ಬೇಕಾಗುತ್ತದೆ, ಅದು ಚಿತ್ರಗಳ ಪಟ್ಟಿಯಲ್ಲಿಲ್ಲ.
ಹಾಗಾದರೆ ಒಂದೇ ದಾರಿ ನಿಮ್ಮದೇ ಆದ AMI ಅನ್ನು ಮಾಡಿಕೊಳ್ಳುವುದು.
ಅಧಿಕೃತ ದಸ್ತಾವೇಜನ್ನು ವಿವರಿಸುತ್ತದೆ ದಾರಿ "ಇನ್ಸ್ಟೆನ್ಸ್ ಸ್ಟೋರ್-ಬ್ಯಾಕ್ಡ್ AMI" ಅನ್ನು ರಚಿಸುವುದು.
ಈ ವಿಧಾನದ ಅನಾನುಕೂಲವೆಂದರೆ ಮುಗಿದ ಚಿತ್ರವನ್ನು "EBS-ಬೆಂಬಲಿತ AMI" ಆಗಿ ಪರಿವರ್ತಿಸಬೇಕಾಗುತ್ತದೆ. ಕಾಕ್ಪಿಟ್ ಇಮೇಜ್ ಬಿಲ್ಡರ್ ಕೂಡ ಗಮನಿಸಬೇಕಾದ ಅಂಶವಾಗಿದೆ. ಇದು ನಿಮಗೆ ಕಸ್ಟಮ್ ಚಿತ್ರಗಳನ್ನು ರಚಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಸಿಎಲ್ಐ ಅಥವಾ ವೆಬ್ GUI ಮೋಡ್, ಆದರೆ ನೀವು ಈಗಾಗಲೇ ಹೊಂದಿರುವಾಗ Centos 8.
ಮಧ್ಯಂತರ ಹಂತಗಳಿಲ್ಲದೆ ಅಮೆಜಾನ್ ಕ್ಲೌಡ್ನಲ್ಲಿ ನಿಮ್ಮ ಸ್ವಂತ EBS-ಬೆಂಬಲಿತ AMI ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದನ್ನು ಈ ಲೇಖನದಲ್ಲಿ ಚರ್ಚಿಸಲಾಗುವುದು.
ಕಾರ್ಯ ತಂತ್ರ
- ಪರಿಸರವನ್ನು ಸಿದ್ಧಪಡಿಸಿ
- ಕ್ಲೀನ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಅಗತ್ಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮಾಡಿ
- ಡಿಸ್ಕ್ನ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಿ
- AMI ಅನ್ನು ನೋಂದಾಯಿಸಿ
ಪರಿಸರವನ್ನು ಸಿದ್ಧಪಡಿಸುವುದು
ನಮ್ಮ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಯಾರಾದರೂ ಮಾಡುತ್ತಾರೆ. ಅಧಿಕೃತ ನಿದರ್ಶನ Centos 7 ಯಾವುದೇ ಆಕಾರ, t2.micro ಕೂಡ. ನೀವು ಅದನ್ನು CLI ಮೂಲಕ ಪ್ರಾರಂಭಿಸಬಹುದು:
aws ec2 run-instances
--image-id ami-4bf3d731
--region us-east-1
--key-name alpha
--instance-type t2.micro
--subnet-id subnet-240a8618
--associate-public-ip-address
--block-device-mappings DeviceName=/dev/sda1,Ebs={VolumeSize=8}
--block-device-mappings DeviceName=/dev/sdb,Ebs={VolumeSize=4}ಈ ಆಜ್ಞೆಯು VPC ಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಬ್ನೆಟ್-ಐಡಿ ಸೇರಿರುವ ಒಂದು ನಿದರ್ಶನವನ್ನು ಸ್ಪಿನ್ ಅಪ್ ಮಾಡುತ್ತದೆ. ಸಬ್ನೆಟ್ ಸಾರ್ವಜನಿಕವಾಗಿದೆ ಮತ್ತು SG 'ಡೀಫಾಲ್ಟ್' ಎಲ್ಲವನ್ನೂ ಅನುಮತಿಸುತ್ತದೆ ಎಂದು ಊಹಿಸಲಾಗಿದೆ.
ಈಗ ssh ಮೂಲಕ ನಿದರ್ಶನಕ್ಕೆ ಲಾಗಿನ್ ಆಗೋಣ, ಸಿಸ್ಟಮ್ ಅನ್ನು ನವೀಕರಿಸೋಣ, ಸ್ಥಾಪಿಸೋಣ dnf ಮತ್ತು ರೀಬೂಟ್ ಮಾಡಿ:
sudo yum update -y && sudo yum install -y dnf && sudo rebootಎಲ್ಲಾ ಮುಂದಿನ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಇಲ್ಲಿಂದ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ root.
ಕ್ಲೀನರ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು Centos 8.1
ಕಡತ ವ್ಯವಸ್ಥೆಯನ್ನು ವಿಭಜಿಸುವುದು ಮತ್ತು ವಿಭಾಗಗಳನ್ನು ಆರೋಹಿಸುವುದು
DEVICE=/dev/xvdb
ROOTFS=/rootfs
parted -s ${DEVICE} mktable gpt
parted -s ${DEVICE} mkpart primary ext2 1 2
parted -s ${DEVICE} set 1 bios_grub on
parted -s ${DEVICE} mkpart primary xfs 2 100%
mkfs.xfs -L root ${DEVICE}2
mkdir -p $ROOTFS
mount ${DEVICE}2 $ROOTFS
mkdir $ROOTFS/{proc,sys,dev,run}
mount --bind /proc $ROOTFS/proc
mount --bind /sys $ROOTFS/sys
mount --bind /dev $ROOTFS/dev
mount --bind /run $ROOTFS/runಡೈರೆಕ್ಟರಿ ಮರವನ್ನು ರಚಿಸುವುದು
ನಿಮ್ಮ ಭವಿಷ್ಯದ OS ಗಾಗಿ ಡೈರೆಕ್ಟರಿ ಟ್ರೀ ಅನ್ನು ತ್ವರಿತವಾಗಿ ಮತ್ತು ಸುಲಭವಾಗಿ ಸಿದ್ಧಪಡಿಸಲು RPM ವ್ಯವಸ್ಥೆಯು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:
PKGSURL=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/Packages
rpm --root=$ROOTFS --initdb
rpm --root=$ROOTFS -ivh
$PKGSURL/centos-release-8.1-1.1911.0.8.el8.x86_64.rpm
$PKGSURL/centos-gpg-keys-8.1-1.1911.0.8.el8.noarch.rpm
$PKGSURL/centos-repos-8.1-1.1911.0.8.el8.x86_64.rpm
dnf --installroot=$ROOTFS --nogpgcheck --setopt=install_weak_deps=False
-y install audit authselect basesystem bash biosdevname coreutils
cronie curl dnf dnf-plugins-core dnf-plugin-spacewalk dracut-config-generic
dracut-config-rescue e2fsprogs filesystem firewalld glibc grub2 grubby hostname
initscripts iproute iprutils iputils irqbalance kbd kernel kernel-tools
kexec-tools less linux-firmware lshw lsscsi ncurses network-scripts
openssh-clients openssh-server passwd plymouth policycoreutils prefixdevname
procps-ng rng-tools rootfiles rpm rsyslog selinux-policy-targeted setup
shadow-utils sssd-kcm sudo systemd util-linux vim-minimal xfsprogs
chrony cloud-init ನಿರ್ದಿಷ್ಟ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಸ್ಥಾಪಿಸುವಾಗ ಕೊನೆಯ ಆಜ್ಞೆಯನ್ನು ನಿಖರವಾಗಿ ಈ ರೀತಿ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಉತ್ತಮ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ ಮತ್ತು ಶಿಫಾರಸು ಮಾಡಲಾದ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ನೀವು ಬಯಸಿದರೆ, ನೀವು ಈ ರೀತಿಯದನ್ನು ಬಳಸಬಹುದು:
dnf --installroot=$ROOTFS groupinstall base core
--excludepkgs "NetworkManager*"
-e "i*-firmware"В yum ಯಾವುದೇ --excludepkgs, ಮತ್ತು ಮೊದಲು ಗುಂಪುಗಳನ್ನು ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ನಂತರ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು ಅಗತ್ಯವಾಗಿತ್ತು.
ಪ್ಯಾಕೇಜುಗಳು ಮತ್ತು ಅವಲಂಬಿತ ಗುಂಪುಗಳ ಪಟ್ಟಿಯನ್ನು ಆಜ್ಞೆಯೊಂದಿಗೆ ವೀಕ್ಷಿಸಬಹುದು dnf group info core ಗುಂಪಿಗೆ core.
OS ಫೈಲ್ಗಳ ಗ್ರಾಹಕೀಕರಣ
ನೆಟ್ವರ್ಕ್, fstab, grub2 ಗಾಗಿ ಸಂರಚನೆಗಳನ್ನು ರಚಿಸೋಣ ಮತ್ತು DNS ಮತ್ತು NTP ಗಾಗಿ ಆಂತರಿಕ 169.254 AWS ವಿಳಾಸಗಳನ್ನು ಬಳಸೋಣ.
cat > $ROOTFS/etc/resolv.conf << HABR
nameserver 169.254.169.253
HABR
cat > $ROOTFS/etc/sysconfig/network << HABR
NETWORKING=yes
NOZEROCONF=yes
HABR
cat > $ROOTFS/etc/sysconfig/network-scripts/ifcfg-eth0 << HABR
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
HABR
cat > $ROOTFS/etc/fstab << HABR
LABEL=root / xfs defaults,relatime 1 1
HABR
sed -i "s/cloud-user/centos/" $ROOTFS/etc/cloud/cloud.cfg
echo "server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4" >> $ROOTFS/etc/chrony.conf
sed -i "/^pool /d" $ROOTFS/etc/chrony.conf
sed -i "s/^AcceptEnv/# /" $ROOTFS/etc/ssh/sshd_config
cat > $ROOTFS/etc/default/grub << HABR
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0,115200n8 console=tty0 net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
HABRGRUB_CMDLINE_LINUX ನಲ್ಲಿ, SE ಬಗ್ಗೆ ಇನ್ನೂ ಭಯಪಡುವವರಿಗೆ, selinux=0 ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇನೆ.Linux.
chroot ನಲ್ಲಿ initramfs ಅನ್ನು ಪುನರ್ನಿರ್ಮಿಸಲಾಗುತ್ತಿದೆ
grub ಮತ್ತು fstab ಫೈಲ್ಗಳನ್ನು ಸಂಪಾದಿಸಿದ ನಂತರ, ನೀವು ಮರುನಿರ್ಮಾಣ ಮಾಡಬೇಕಾಗುತ್ತದೆ.
ನಾವು ನವೀಕರಣವನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದ್ದೇವೆ:
KERNEL=$(ls $ROOTFS/lib/modules/)
chroot $ROOTFS dracut -f -v /boot/initramfs-$KERNEL.img $KERNEL
chroot $ROOTFS grub2-mkconfig -o /boot/grub2/grub.cfg
chroot $ROOTFS grub2-install $DEVICE
chroot $ROOTFS update-crypto-policies --set FUTUREಇಲ್ಲಿ update-crypto-policies — ಐಚ್ಛಿಕ, ಸಂಶಯಗ್ರಸ್ತರಿಗೆ :)
"ಮಾರಾಟ" ಕ್ಕಾಗಿ, ನೀವು ಇದನ್ನು ಈ ರೀತಿ ಮಾಡಬಹುದು:
chroot $ROOTFS fips-mode-setup --enable
chroot $ROOTFS grub2-mkconfig -o /boot/grub2/grub.cfg
chroot $ROOTFS grub2-install $DEVICEOS ಅನ್ನು ಲೋಡ್ ಮಾಡಿದ ನಂತರ, ಆಜ್ಞೆಯು update-crypto-policies --show FIPS ಅನ್ನು ನೀಡುತ್ತದೆ.
ಆಟೋಸ್ಟಾರ್ಟ್ ಮತ್ತು ಕಸ ಶುಚಿಗೊಳಿಸುವಿಕೆ
chroot $ROOTFS systemctl enable network.service
chroot $ROOTFS systemctl enable sshd.service
chroot $ROOTFS systemctl enable cloud-init.service
chroot $ROOTFS systemctl mask tmp.mountdnf --installroot=$ROOTFS clean all
truncate -c -s 0 $ROOTFS/var/log/*.log
rm -rf var/lib/dnf/*
touch $ROOTFS/.autorelabelautorelabel — SE ಯ ಸ್ವಯಂಚಾಲಿತ ಸ್ಥಾಪನೆಗೆ ಅಗತ್ಯವಿದೆLinux ಮೊದಲ ಲೋಡ್ನಲ್ಲಿ ಫೈಲ್ ಸಂದರ್ಭ.
ಈಗ ಡಿಸ್ಕ್ ಅನ್ನು ಅನ್ಮೌಂಟ್ ಮಾಡೋಣ:
sync
umount $ROOTFS/{proc,sys,dev,run}
umount $ROOTFSAMI ನೋಂದಣಿ
ಇಬಿಎಸ್ ಡಿಸ್ಕ್ನಿಂದ ಅಮಿ ಪಡೆಯಲು, ನೀವು ಮೊದಲು ಡಿಸ್ಕ್ನ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ತೆಗೆದುಕೊಳ್ಳಬೇಕು:
aws ec2 create-snapshot
--volume-id vol-09f26eba4c50da110 --region us-east-1
--description 'centos-release-8.1-1.1911.0.8 4.18.0-147.5.1 01'ನೀವು ಸ್ವಲ್ಪ ಸಮಯ ಕಾಯಬೇಕಾಗುತ್ತದೆ. ಸ್ವೀಕರಿಸಿದ ಸ್ನ್ಯಾಪ್ಶಾಟ್ ಐಡಿ ಮೂಲಕ ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸೋಣ:
aws ec2 describe-snapshots --region us-east-1 --snapshot-ids snap-0b665542fc59e58edನಾವು ಅದನ್ನು ಯಾವಾಗ ಪಡೆಯುತ್ತೇವೆ? "State": "completed", ನೀವು AMI ಅನ್ನು ನೋಂದಾಯಿಸಬಹುದು ಮತ್ತು ಅದನ್ನು ಸಾರ್ವಜನಿಕಗೊಳಿಸಬಹುದು:
aws ec2 register-image
--region us-east-1
--name 'CentOS-8.1-1.1911.0.8-minimal'
--description 'centos-release-8.1-1.1911.0.8 4.18.0-147.5.1 01'
--virtualization-type hvm --root-device-name /dev/sda1
--block-device-mappings '[{"DeviceName":"/dev/sda1","Ebs": { "SnapshotId": "snap-0b665542fc59e58ed", "VolumeSize":4, "DeleteOnTermination": true, "VolumeType": "gp2"}}]'
--architecture x86_64 --sriov-net-support simple --ena-support
aws ec2 modify-image-attribute
--region us-east-1
--image-id ami-011ed2a37dc89e206
--launch-permission 'Add=[{Group=all}]'
ಅಷ್ಟೇ. ಈಗ ನೀವು ನಿದರ್ಶನಗಳನ್ನು ಪ್ರಾರಂಭಿಸಬಹುದು.
ಈ ರೀತಿಯಾಗಿ ನೀವು ಒಂದು ಚಿತ್ರವನ್ನು ರಚಿಸಬಹುದು, ಹೆಚ್ಚಾಗಿ ಯಾವುದೇ Linux-ವಿತರಣೆ. ಕನಿಷ್ಠ ಪಕ್ಷ, ಖಚಿತವಾಗಿ. Debian (ಕ್ಲೀನ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಡಿಬೂಟ್ಸ್ಟ್ರಾಪ್ ಬಳಸಿ) ಮತ್ತು RHEL ಕುಟುಂಬ.
ಅಪಡೇಟ್ ಓದುಗರ ಕೋರಿಕೆಯ ಮೇರೆಗೆ. ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಬಹುದು. ಪ್ಯಾಕರ್, ಕೇವಲ ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಿ. ಇಲ್ಲಿ ಒಂದು ಮಾದರಿ ಮಾದರಿಯನ್ನು ಇಲ್ಲಿ ನೀಡಲಾಗಿದೆ.
ಮೂಲ: www.habr.com
