Π’ΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΅ βΠ²ΠΈΠ»ΠΈΡΠ°β ΡΡΡ ΡΡΡΠΎΡΠΎ ΠΈΠΌΠ΅ ΡΡΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ CentOS 5.9 ΠΈ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΠΠ‘. ΠΠΎΠ½Π°ΡΡΠΎΡΡΠ΅ΠΌ Π½ΡΠΌΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Centos8 ΠΎΡ centos.org Π² AWS Marketplace.
ΠΠ°ΠΊΡΠΎ Π·Π½Π°Π΅ΡΠ΅, Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Amazon Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Ρ.Π½Π°Ρ AMI). Amazon ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΎΡ ΡΡΡ ; ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·Π³ΠΎΡΠ²Π΅Π½ΠΈ ΠΎΡ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΡΡ Π½Π° ΠΎΠ±Π»Π°ΠΊ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½Π΅ Π½ΠΎΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ. ΠΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΡΠΈΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ Π΅ Π² ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π’ΠΎΠ³Π°Π²Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΈΡΡ ΠΈΠ·Ρ ΠΎΠ΄ Π΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ AMI.
ΠΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠΏΠΈΡΠ²Π° Π½Π°ΡΠΈΠ½ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° βΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅Π½ ΠΎΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ AMIβ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΡΠΊΡΡ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅, ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ΠΎ Π² βΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ΅Π½ ΠΎΡ EBS AMIβ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ Cockpit Image Builder. Π’ΠΎΠ²Π° ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π² CLI ΠΈΠ»ΠΈ WEB GUI ΡΠ΅ΠΆΠΈΠΌ, Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Centos 8.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ AMI, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ ΠΎΡ EBS, Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° Amazon Π±Π΅Π· ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΡΡΠΏΠΊΠΈ.
ΠΠ»Π°Π½ Π·Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅
- ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅ΡΠ΅ ΡΡΠ΅Π΄Π°ΡΠ°
- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΈΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
- ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ½Π° ΡΠ½ΠΈΠΌΠΊΠ° Π½Π° Π΄ΠΈΡΠΊΠ°
- Π Π΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΉΡΠ΅ 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
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄ΡΡΠ²ΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° 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 ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π²ΡΡΡΠ΅ΡΠ½ΠΈ 169.254 Π°Π΄ΡΠ΅ΡΠΈ Π½Π° AWS Π·Π° DNS ΠΈ 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
ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΊ, Π² GRUB_CMDLINE_LINUX, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ selinux=0 Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΡΡΡΠ°Ρ ΡΠ²Π°Ρ ΠΎΡ SELinux.
ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° initramfs Π² chroot
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ 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
Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° AMI
ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ami ΠΎΡ 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}]'
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ.
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ Ρ Π²ΡΡΠΊΠ° Linux Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ. ΠΠΎΠ½Π΅ ΡΠΎΡΠ½ΠΎ Debian (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ debootstrap Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°) ΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎΡΠΎ RHEL.
ΠΠΠ’Π£ΠΠΠΠΠΠ¦ΠΠ― ΠΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ. Π’ΠΎΠ·ΠΈ ΠΏΡΠΎΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ ΠΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ, Π‘Π°ΠΌΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅. Π’ΡΠΊ ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅Π½ ΡΠ°Π±Π»ΠΎΠ½.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com