Ho iketsetsa setšoantšo sa hau ka CentOS 8.1 e hloekileng ka leru la Amazon

Tataiso ena ke "fereko" ea lebitso le tšoanang Lingoloa ka CentOS 5.9, 'me e nahanela likarolo tsa OS e ncha. Hajoale ha ho na setšoantšo sa semmuso sa Centos8 se tsoang ho centos.org 'Maraka oa AWS.

Joalo ka ha u tseba, ho leru la Amazon ho hlahisoa maemo a hlakileng a ipapisitseng le litšoantšo (tse bitsoang MOTSOALLE). Amazon e fana ka palo e kholo ea tsona; u ka sebelisa litšoantšo tsa sechaba tse lokiselitsoeng ke batho ba boraro, tseo mofani oa maru, ehlileng, a sa jarang boikarabello. Empa ka linako tse ling u hloka setšoantšo se hloekileng sa tsamaiso se nang le li-parameter tse hlokahalang, tse seng lethathamong la litšoantšo.

Joale tsela feela ea ho tsoa ke ho iketsetsa AMI ea hau.

Litokomane tsa molao lia hlalosa tsela ho theha "AMI e tšehelitsoeng ka lebenkele la mohlala".

Bothata ba mokhoa ona ke hore setšoantšo se phethiloeng se tla boela se hloke ho fetoloa "EBS-backed AMI". Hape ho bohlokoa ho elelloa ke Cockpit Image Builder. E tla u lumella ho etsa litšoantšo tse tloaelehileng, ho CLI kapa WEB GUI mode, empa ha o se o na le Centos 8.

Mokhoa oa ho iketsetsa AMI e tšehelitsoeng ke EBS ka leru la Amazon ntle le mehato e mahareng e tla tšohloa sehloohong sena.

Morero oa tšebetso

  • Lokisetsa tikoloho
  • Kenya sistimi e hloekileng 'me u etse litlhophiso tse hlokahalang
  • Nka setšoantšo sa disk
  • Ngolisa AMI

Ho Lokisetsa Tikoloho

Bakeng sa merero ea rona, leha e le efe mohlala oa Centos 7 sebopeho sefe kapa sefe, esita le t2.micro. U ka e tsamaisa ka 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}

Taelo e tla hlahisa mohlala ho VPC eo subnet-id e boletsoeng e leng ea eona. Subnet e lokela ho ba ea sechaba, 'me SG 'default' e lumella ntho e 'ngoe le e' ngoe.

Joale ha re keneng ho mohlala ka ssh, ntlafatsa sistimi, kenya dnf ebe o qala hape:

sudo yum update -y && sudo yum install -y dnf && sudo reboot

Lits'ebetso tsohle tse ling li tla etsoa ho tloha ho root.

Ho kenya Centos 8.1 e hloekileng

Sebopeho sa sistimi ea faele le ho kenya karohano

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

Ho theha sefate sa directory

Sistimi ea RPM e u lumella ho itokisetsa habonolo le kapele sefate sa directory bakeng sa OS e tlang:

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 

Ke nka ho le molemo ho phethahatsa taelo ea ho qetela ka tsela ena, ka ho kenya liphutheloana tse itseng, 'me u be le bonnete ba hore u hlokomoloha liphutheloana tse khothalletsoang.

Haeba u lakatsa, u ka sebelisa ntho e kang ena:

dnf --installroot=$ROOTFS groupinstall base core 
    --excludepkgs "NetworkManager*" 
     -e "i*-firmware"

В yum ha ho --excludepkgs, 'me pele ke tlameha ho kenya lihlopha ebe ke tlosa liphutheloana.

Lethathamo la liphutheloana le lihlopha tse itšetlehileng ka tsona li ka bonoa ka taelo dnf group info core bakeng sa sehlopha core.

Ho hlophisa lifaele tsa OS

Ha re theheng litlhophiso tsa marang-rang, fstab, grub2 'me re sebelise liaterese tsa AWS tsa kahare tsa 169.254 bakeng sa DNS le NTP.

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

Ke mona, ho GRUB_CMDLINE_LINUX, moo ke khothaletsang ho hlakisa selinux=0, bakeng sa ba ntseng ba tšaba SELinux.

Ho tsosolosa initramfs ka chroot

Kamora ho hlophisa lifaele tsa grub le fstab, o hloka ho aha bocha.
Re etsa ntlafatso:

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

mona update-crypto-policies - boikhethelo, bakeng sa paranoid :)

Bakeng sa "thekiso", o ka etsa sena:

chroot $ROOTFS fips-mode-setup --enable
chroot $ROOTFS grub2-mkconfig -o /boot/grub2/grub.cfg
chroot $ROOTFS grub2-install $DEVICE

Ka mor'a ho kenya OS, taelo update-crypto-policies --show e tla fana ka FIPS.

Autostart le ho hloekisa litšila

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 - e hlokahalang ho kenya lifaele tsa moelelo oa SELinux ka bo eona ho boot ea pele.

Joale a re theoleng disk:

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

Ngoliso ea AMI

Ho fumana ami ho tsoa ho ebs disk, o hloka ho nka setšoantšo sa disk pele:

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'

U tla tlameha ho ema nako e itseng. Ha re hlahlobeng boemo re sebelisa SnapshotId e amohetseng:

aws ec2   describe-snapshots  --region us-east-1 --snapshot-ids snap-0b665542fc59e58ed

Ha re e fumana "State": "completed", o ka ngolisa AMI mme oa e phatlalatsa:

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

Ke phetho. Joale o ka qala liketsahalo.

Ka tsela ena, o ka etsa setšoantšo, mohlomong, ka phepelo efe kapa efe ea Linux. Bonyane hantle Debian (ho sebelisa debootstrap ho kenya tsamaiso e hloekileng) le lelapa la RHEL.

Update E ipapisitse le likopo tsa babali. Tshebetso ena e ka iketsetsa Paka, Iketsetse feela. mona Ho hlahisoa template ea mohlala.

Source: www.habr.com

Eketsa ka tlhaloso