ΠΠ°Π½Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ «ΡΠΎΡΠΊΠΎΠΌ» ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΎ CentOS 5.9, ΠΈ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π½ΠΎΠ²ΠΎΠΉ OS. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² AWS Marketplace Π½Π΅Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Centos8 ΠΎΡ centos.org.
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Amazon Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ² (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ AMI). Amazon ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌΠΈ, Π·Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΡΠΉ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π½Π΅ Π½Π΅ΡΡΡ. ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ΅Π½ ΠΎΠ±ΡΠ°Π· ΡΠΈΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ².
Π’ΠΎΠ³Π΄Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΡ ΠΎΠ΄ β ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ AMI.
Π ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Β«instance store-backed AMIΒ».
ΠΠΈΠ½ΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΡΡ ΠΈ ΡΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² Β«EBS-backed AMIΒ». Π’Π°ΠΊ ΠΆΠ΅, ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Cockpit Image Builder. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ, Π² CLI ΠΈΠ»ΠΈ WEB GUI ΡΠ΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Centos 8.
Π ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ EBS-backed AMI Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Amazon Π±Π΅Π· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ², ΠΏΠΎΠΉΠ΄ΡΡ ΡΠ΅ΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΠ»Π°Π½ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΈΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
- Π‘Π΄Π΅Π»Π°ΡΡ snapshot (ΡΠ»Π΅ΠΏΠΎΠΊ) Π΄ΠΈΡΠΊΠ°
- ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ 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, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ subnet-id. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½Π°Ρ, ΠΈ 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 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ½Π°Π»ΡΠ½ΡΠ΅ 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
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· ebs-Π΄ΠΈΡΠΊΠ° ami, Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ½Π°ΠΏΡΠΎΡ Π΄ΠΈΡΠΊΠ°:
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-ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π°.
UPDATE ΠΠΎ Π·Π°ΡΠ²ΠΊΠ°ΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Packer, ΡΠΎΠ»ΡΠΊΠΎ ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. Π’ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΌΠΏΠ»Π΅ΠΉΡΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com