በአማዞን ደመና ውስጥ የራስዎን ምስል በንጹህ CentOS 8.1 መፍጠር

ይህ መመሪያ ተመሳሳይ ስም ያለው "ሹካ" ነው መጣጥፎች ስለ CentOS 5.9, እና የአዲሱን ስርዓተ ክወና ባህሪያት ግምት ውስጥ ያስገባል. በአሁኑ ጊዜ በAWS የገበያ ቦታ ከcentos.org ምንም ይፋዊ Centos8 ምስል የለም።

እንደሚያውቁት ፣ በአማዞን ደመና ውስጥ ምናባዊ ምሳሌዎች በምስሎች ላይ ተመስርተው ተጀምረዋል (የሚባሉት። AMI). አማዞን ብዙ ቁጥር ያላቸውን ያቀርባል ፣ እንዲሁም በሶስተኛ ወገኖች የተዘጋጁ የህዝብ ምስሎችን መጠቀም ይችላሉ ፣ ለዚህም የደመና አቅራቢው ምንም አይነት ሃላፊነት አይወስድም። ነገር ግን አንዳንድ ጊዜ በምስሎች ዝርዝር ውስጥ የሌለ አስፈላጊ መለኪያዎች ያሉት ንጹህ የስርዓት ምስል ያስፈልግዎታል.

ከዚያ መውጫው የእራስዎን AMI መስራት ብቻ ነው።

ኦፊሴላዊው ሰነድ ይገልፃል። መንገድ በ"ለምሳሌ በመደብር የሚደገፍ ኤኤምአይ" መፍጠር።

የዚህ አካሄድ ጉዳቱ የተጠናቀቀው ምስል ወደ “ኢቢኤስ የሚደገፍ ኤኤምአይ” መቀየርም አስፈላጊ መሆኑ ነው። በተጨማሪም ልብ ሊባል የሚገባው ኮክፒት ምስል ገንቢ ነው። ብጁ ምስሎችን እንዲፈጥሩ ይፈቅድልዎታል። CLI ወይም WEB GUI ሁነታ፣ ነገር ግን አስቀድሞ Centos 8 ሲኖርዎት።

ያለ መካከለኛ ደረጃዎች የራስዎን በEBS የሚደገፍ ኤኤምአይ በአማዞን ደመና ውስጥ እንዴት መፍጠር እንደሚችሉ በዚህ ጽሑፍ ውስጥ ይብራራል።

የድርጊት መርሃ ግብር

  • አካባቢውን ያዘጋጁ
  • ንጹህ ስርዓት ይጫኑ እና አስፈላጊዎቹን ቅንብሮች ያድርጉ
  • የዲስክን ቅጽበታዊ ገጽ እይታ ያንሱ
  • ኤኤምአይ ይመዝገቡ

አካባቢን ማዘጋጀት

ለእኛ ዓላማዎች, ማንኛውም ኦፊሴላዊ 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}

ትዕዛዙ የተገለጸው ሳብኔት መታወቂያ የሆነበት በቪፒሲ ውስጥ አንድ ምሳሌ ያነሳል። ሳብኔት ይፋዊ መሆን አለበት፣ እና SG 'default' ሁሉንም ነገር ይፈቅዳል።

አሁን በ 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

ማውጫ ዛፍ መፍጠር

የ 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.

የስርዓተ ክወና ፋይል ማበጀት

ለኔትወርኩ፣ fstab፣ grub2 ውቅሮችን እንፍጠር እና AWS ውስጣዊ 169.254 አድራሻዎችን ለዲኤንኤስ እና ለኤንቲፒ እንጠቀም።

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
HABR

እዚህ ነው፣ በGRUB_CMDLINE_LINUX ውስጥ፣ selinux=0ን እንዲገልጹ የምመክረው፣ አሁንም SELinuxን ለሚፈሩ።

በ 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 $DEVICE

ስርዓተ ክወናውን ከጫኑ በኋላ, ትዕዛዙ 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.mount
dnf --installroot=$ROOTFS clean all
truncate -c -s 0 $ROOTFS/var/log/*.log
rm -rf var/lib/dnf/*
touch $ROOTFS/.autorelabel

autorelabel - በመጀመሪያ ቡት ላይ SELinux አውድ ፋይሎችን በራስ-ሰር ለመጫን ያስፈልጋል።

አሁን ዲስኩን ይንቀሉት፡-

sync
umount $ROOTFS/{proc,sys,dev,run}
umount $ROOTFS

የኤኤምአይ ምዝገባ

አሚን ከ ebs ዲስክ ለማግኘት በመጀመሪያ የዲስክን ፎቶ ማንሳት ያስፈልግዎታል፡-

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'

ለተወሰነ ጊዜ መጠበቅ አለብዎት. የተቀበለውን SnapshotId በመጠቀም ሁኔታውን እንፈትሽ፡-

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}]'

ይኼው ነው. አሁን ምሳሌዎችን ማስጀመር ይችላሉ።

በዚህ መንገድ, ከማንኛውም የሊኑክስ ስርጭት ጋር, ምናልባትም, ምስል መፍጠር ይችላሉ. ቢያንስ በትክክል ዴቢያን (ንፁህ ስርዓትን ለመጫን ዲቦትስትራፕን በመጠቀም) እና የRHEL ቤተሰብ።

አዘምን ከአንባቢዎች በቀረበላቸው ጥያቄ መሰረት። ይህ ሂደት በራስ-ሰር ሊሠራ ይችላል አሻጊ፣ አውቶማቲክ ብቻ። እዚህ አብነት አብነት ቀርቧል።

ምንጭ: hab.com

አስተያየት ያክሉ