แแแแแ แฏแแแ, แแ แแแ แแแแแกแ แแ แฉแแแ แกแแฅแแแแแแแแก แแ แ-แแ แแ แกแคแแ แแ X5-แแ แแแคแ แแกแขแ แฃแฅแขแฃแ แฃแแ แแแแแฌแงแแแขแแแแแแแแก แจแแแฃแจแแแแแ. แแฆแแก แแแแแ แแแแแแแแ แแ, แแฃ แ แแแแ แจแแแแซแแแแ แแแแแแแแกแแ แกแแ แแแ แแก แแแขแแแแขแฃแ แ แแแแแแแแแแก แกแแกแขแแแ แกแแฏแแ แแ แฎแแแแแกแแฌแแแแ แแแกแขแ แฃแแแแขแแแแ แแแงแ แแแแแแ. แฉแแแ แแแ แแ, แแก แแ แแก แกแแแแขแแ แแกแ, แแแ แขแแแ แแ แแแฅแแแแ แแแแแฌแงแแแขแ.
แแแแแแแแแแจแ แแแฃแแแกแฎแแแแ: แแแแแแฅแชแแแ แแฎแแแ แกแแ แแแ แ แแแแ แแชแแฃแแ แกแแกแขแแแแก แกแ แฃแแแ แแแแคแแแฃแ แแ แแแฃแ แกแแ แแแ แแ. Linux แแ ESXi แฐแแแแ แแแแแ แแ (Windows แกแแ แแแ แแแแก แแแแแแแแแ แแ แกแขแแขแแแจแ แแ แแ แแก แแแแฎแแแฃแแ).
แแแแแแ:
- แกแแ แแแ แแแ - แกแแ แแแ แแแ, แ แแแแแแแช แกแแญแแ แแแแแ แแแแคแแแฃแ แแชแแแก.
- แแแกแขแแแแชแแแก แกแแ แแแ แ แแ แแก แแแแแแ แ แกแแ แแแ แ, แ แแแแแแช แฃแแ แฃแแแแแงแแคแก แแแแแ แแแแแแแแแแก แแ แแชแแกแก แฅแกแแแจแ.
แ แแขแแ แแ แแก แกแแญแแ แ แแแขแแแแขแแแแชแแ?
แแแฅแแแ, แแ แแก แแแแแแแแ: แกแแ แแแ แแแแก แแแกแแฃแ แแ แแแแแแแแแ แแฃแแแแแ, แแแแแ โ 30 แแฆแแจแ. แแแแแ แจแแแซแแแแ แแแแแแขแแแแแก แกแฎแแแแแกแฎแแ แแฌแแ แแแแแแแกแ แแ แแแแแแแก แกแแ แแแ แแแ, แกแฎแแแแแกแฎแแ แแแแ แแชแแฃแแ แกแแกแขแแแแแ แแ แจแแแซแแแแ แฐแฅแแแแแ แแ แแ แฐแฅแแแแแ แฐแแแแ แแแแแ แ.
แ แ แแแแ แแชแแแแ แจแแแแก แแแงแแแแแแก แแ แแชแแกแจแ (แแแขแแแแขแแแแชแแแก แแแ แแจแ):
- แแแแแแแจแแ แแ แแแแแแแขแฃแ แ, แแแฃแกแ, แแแแแขแแ แ แกแแ แแแ แแแ;
- แแแแคแแแฃแ แแชแแ BIOS, RAID, IPMI;
- แแแแแแแแแขแแก firmware แแแแแฎแแแแ;
- แแแแแแแแกแแ แคแแแแฃแ แ แกแแกแขแแแแก แกแฃแ แแแ (แแ แแแแแแกแขแแแแ แแ แฐแแแแ แแแแแ แ แแ แแแแแแแแ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแ);
แฒจแแแแจแแแ. แแแขแแ แแแขแแฃแแแ, OS-แแก แแแแแแแแแ แจแแกแแซแแแแแแแ แแแกแขแแแแชแแแก แแแแ แแแขแแแแขแฃแ แ แแแกแฃแฎแแก แคแแแแแ. แแแแ แแ แแก แแ แแฅแแแแ แแแแฎแแแฃแแ แกแขแแขแแแจแ. แแฃแแชแ แฅแแแแแ แแแฎแแแ, แ แแ แแ แคแฃแแฅแชแแแก แแแแแขแแแ แแ แแ แแก แ แแฃแแ.
- OS แแแ แแแแขแ แแแแก แแแแคแแแฃแ แแชแแ (แฐแแกแขแแก แกแแฎแแแ, IP แแ แ.แจ.).
แแ แแแแแแแแ, แแแแแ แแแ แแแแขแ แแแ แจแแกแ แฃแแแแฃแแแ แแแแแแแแแแ แฃแแแ แแแแแแฃแ แกแแ แแแ แแ. แแกแแแ แกแแแฃแจแแแก แแคแแฅแขแฃแ แแแ แซแแแแแ แแแแแแแ.
แแแขแแแแขแแแแชแแแก แแ แกแ แแ แแก แแแแแแแแแก แแแแแฌแแแแแแแก แแฆแแแคแฎแแ แ แกแแ แแแ แแก แแแแแแแแแแก แแ แแชแแกแจแ. แฒ แแช แจแแแซแแแแ แแแขแ.
แแแขแแแแขแแแแชแแ แแแชแแ แแแก แแแแ แแชแแแแก แจแแ แแก แจแแคแแ แฎแแแแก แแ แแก แแ แจแแกแแซแแแแแแก แฎแแแก แ แแแแแแแแ แกแแ แแแ แแก แแ แแแ แแฃแแแ แฃแแ แฃแแแแแงแแคแแก. แแแแแแแแฃแ แ แคแแฅแขแแ แแแแ แแแแแฌแแแฃแแ แจแแชแแแแแแแก แแแแแแแแ แแกแแแ แแแแจแแแแแแแแแ แจแแแชแแ แแแฃแแแ.
แ แแแแ แฎแแแแ แกแแ แแแ แแแแก แแแขแแแแขแฃแ แแ แแแแคแแแฃแ แแชแแ?
แแแขแแแฃแ แแ แแแแแแแแแแแแ แงแแแแ แแขแแแ.
แแฅแแแ แแแฅแแ Linux แกแแ แแแ แ, แ แแแแแกแแช แแงแแแแแ PXE แแแกแขแแแแชแแแก แกแแ แแแ แแ. แแแกแแ แแแแแกแขแแแแ แแแฃแแ แแ แแแแคแแแฃแ แแ แแแฃแแแ แกแแ แแแกแแแ: DHCP, TFTP.
แแกแ แ แแ, แฉแแแ แแขแแแ แแแแ แกแแ แแแ แก (แ แแแแแแช แแแแคแแแฃแ แแชแแแก แกแแญแแ แแแแก) PXE-แแก แกแแจแฃแแแแแแ. แแแแแฎแกแแแแ แ แแแแ แแฃแจแแแแก:
- แฅแกแแแแก แฉแแขแแแ แแแ แแ แฉแแฃแแแ แกแแ แแแ แแ.
- แกแแ แแแ แ แแขแแแ แแแแ แฅแกแแแแก แแแ แแแแก PXE-ROM-แก แแ แแแฃแแแแจแแ แแแแ แแแกแขแแแแชแแแก แกแแ แแแ แก DHCP-แแก แกแแจแฃแแแแแแ, แ แแแ แแแแฆแแก แฅแกแแแแก แแแกแแแแ แแ.
- DHCP แแแกแขแแแแชแแแก แกแแ แแแ แ แแแกแชแแแก แแแกแแแแ แแก, แแกแแแ แแแกแขแ แฃแฅแชแแแแก PXE-แแ แจแแแแแแแ แฉแแแแขแแแ แแแแกแแแแก.
- แกแแ แแแ แ แแขแแแ แแแแ แฅแกแแแแก แฉแแแขแแแ แแแแแก แแแกแขแแแแชแแแก แกแแ แแแ แแแแ PXE-แแก แกแแจแฃแแแแแแ, แจแแแแแแแ แฉแแขแแแ แแแ แฎแแแแ PXE แแแแคแแแฃแ แแชแแแก แคแแแแแก แแแฎแแแแแ.
- แฉแแขแแแ แแแ แฎแแแแ แแแฆแแแฃแแ แแแ แแแแขแ แแแแก แกแแคแฃแซแแแแแ (แแแ แแแแ, initramfs, แแแแแแขแแแแแแก แฌแแ แขแแแแแ, squashfs แแแแแกแแฎแฃแแแแ แแ แ.แจ.).
แฒจแแแแจแแแ. แกแขแแขแแแจแ แแฆแฌแแ แแแแ PXE-แแ แฉแแขแแแ แแแ BIOS แ แแแแแจแ. แแแแแแแ แแฌแแ แแแแแแแแ แแฅแขแแฃแ แแ แแฎแแ แชแแแแแแแ UEFI bootmode-แก. PXE-แกแแแแก แแแแกแฎแแแแแแ แแฅแแแแ DHCP แกแแ แแแ แแก แแแแคแแแฃแ แแชแแแจแ แแ แแแแแขแแแแแ แฉแแแขแแแ แแแแแแก แแ แกแแแแแแจแ.
แแแแแ แจแแแฎแแแแ PXE แกแแ แแแ แแก แแแแคแแแฃแ แแชแแแก แแแแแแแแก (pxelinux แแแแแฃ).
แคแแแแ pxelinux.cfg/default:
default menu.c32
prompt 0
timeout 100
menu title X5 PXE Boot Menu
LABEL InstallServer Menu
MENU LABEL InstallServer
KERNEL menu.c32
APPEND pxelinux.cfg/installserver
LABEL VMware Menu
MENU LABEL VMware ESXi Install
KERNEL menu.c32
APPEND pxelinux.cfg/vmware
LABEL toolkit // ะผะตะฝั ะฟะพ ัะผะพะปัะฐะฝะธั
MENU LABEL Linux Scripting Toolkits
MENU default
KERNEL menu.c32
APPEND pxelinux.cfg/toolkit // ะฟะตัะตั
ะพะด ะฝะฐ ัะปะตะดัััะตะต ะผะตะฝั
แคแแแแ pxelinux.cfg/toolkit:
prompt 0
timeout 100
menu title X5 PXE Boot Menu
label mainmenu
menu label ^Return to Main Menu
kernel menu.c32
append pxelinux.cfg/default
label x5toolkit-auto // ะฟะพ ัะผะพะปัะฐะฝะธั โ ะฐะฒัะพะผะฐัะธัะตัะบะธะน ัะตะถะธะผ
menu label x5 toolkit autoinstall
menu default
kernel toolkit/tkcustom-kernel
append initrd=toolkit/tk-initramfs.gz quiet net.ifnames=0 biosdevname=0 nfs_toolkit_ip=192.168.200.1 nfs_toolkit_path=tftpboot/toolkit nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh CMDIS2=โโฆโ
label x5toolkit-shell // ะดะปั ะพัะปะฐะดะบะธ - ะบะพะฝัะพะปั
menu label x5 toolkit shell
kernel toolkit/tkcustom-kernel
append initrd=toolkit/tkcustom-initramfs.gz quiet net.ifnames=0 biosdevname=0 nfs_toolkit_ip=192.168.200.1 nfs_toolkit_path=tftpboot/toolkit nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash CMDIS2=โโฆโ
แแแ แแแ แแ initramfs แแ แแขแแแแ แแ แแก แจแฃแแแแแฃแ แ Linux แแแแแกแแฎแฃแแแแ, แ แแแแแก แแแฎแแแ แแแแแแช แแแฎแแแแ แกแแ แแแ แแก แซแแ แแแแแ แแแแแแแแแ แแ แแแแคแแแฃแ แแชแแ.
แ แแแแ แช แฎแแแแแ, แฉแแแขแแแ แแแแแ แแแแแกแชแแแก แแแแ แแแ แแแแขแ แก แแแ แแแจแ. แแแแแแ แแ แแแ แแแแขแ แ แแแแแแงแแแแแ แแแแแ แแแ แแแแก แแแแ . แแ แฉแแแ แจแแแแแซแแแ แแแแแแแงแแแแ แแแแแแ แแ แฉแแแแ แแแแแแแแกแแแแก. แแก แแแแแแแแแแแ แแฅแแแแ แแแแฎแแแฃแแ, แแแแ แแ แแฎแแ แแฅแแแ แฃแแ แแแแ แจแแแแซแแแแ แแแฎแกแแแแแ, แ แแ แงแแแแ แแแแแแแ แแแ แแแแขแ แ แฎแแแแแกแแฌแแแแแ แแฅแแแแ แจแฃแแแแแฃแ Linux แกแฃแ แแแแ /proc/cmdline-แแก แกแแจแฃแแแแแแ.
แกแแ แจแแแแซแแแ แแแแ แแแฆแแแ, แแแ แแแ แแ initramfs?
แ แแแแ แช แกแแคแฃแซแแแแ, แจแแแแซแแแแ แแแ แฉแแแ Linux-แแก แแแแแกแแแแ แ แแแกแขแ แแแฃแชแแ. แ แแก แแแฅแชแแแ แงแฃแ แแแฆแแแแก แแ แฉแแแแกแแก:
- แฉแแขแแแ แแแแก แกแฃแ แแแ แฃแแแ แแงแแก แฃแแแแแ แกแแแฃแ แ (แแ แแแแแ แแแแก แฎแแแแแกแแฌแแแแแแแ, แแแแแขแแแแแ แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแแงแแแแแแก แจแแกแแซแแแแแแแ);
- แกแแแแ แแฃแแแ, แแแแญแแ แแแแแ initramfs-แแก แแแ แแแแ.
แ แแแแ แแแแแแแ แแก แฉแแแแก แแแแแฌแงแแแขแแจแ X5-แแกแแแแก? แกแแคแฃแซแแแแ แแแ แฉแแแก CentOS 7. แแแแแ แแชแแแแ แจแแแแแแ แฎแ แแแ: แแแแแแแแแ แแแแแแแแ แกแฃแ แแแแก แกแขแ แฃแฅแขแฃแ แ, แฉแแแแแแแ แแ แฅแแแจแ แแ แจแแฅแแแแแ initramfs, แ แแแแแก แจแแแแแ แแฅแแแแ แฉแแแแ แคแแแแฃแ แ แกแแกแขแแแแก แแ แฅแแแ. แกแฃแ แแแแก แฉแแขแแแ แแแแกแแก แแ แฅแแแ แแแคแแ แแแแแแแ แจแแฅแแแแ tmpfs แแแแแงแแคแจแ. แแ แแแแ แฉแแแ แแแแแฆแแแ แแแแแแแแฃแ , แแแแ แแ แกแ แฃแแคแแกแแแแ แชแแชแฎแแแ แแแแฃแฅแกแแก แกแฃแ แแแก แงแแแแ แกแแญแแ แ แฃแขแแแแขแแแ, แ แแแแแแช แจแแแแแแ แแฎแแแแ แแ แ แคแแแแแกแแแ: vmkernel แแ initramfs.
#ัะพะทะดะฐะตะผ ะดะธัะตะบัะพัะธะธ:
mkdir -p /tftpboot/toolkit/CustomTK/rootfs /tftpboot/toolkit/CustomTK/initramfs/bin
#ะฟะพะดะณะพัะฐะฒะปะธะฒะฐะตะผ ััััะบัััั:
yum groups -y install "Minimal Install" --installroot=/tftpboot/toolkit/CustomTK/rootfs/
yum -y install nfs-utils mariadb ntpdate mtools syslinux mdadm tbb libgomp efibootmgr dosfstools net-tools pciutils openssl make ipmitool OpenIPMI-modalias rng-tools --installroot=/tftpboot/toolkit/CustomTK/rootfs/
yum -y remove biosdevname --installroot=/tftpboot/toolkit/CustomTK/rootfs/
# ะฟะพะดะณะพัะฐะฒะปะธะฒะฐะตะผ initramfs:
wget https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-x86_64 -O /tftpboot/toolkit/CustomTK/initramfs/bin/busybox
chmod a+x /tftpboot/toolkit/CustomTK/initramfs/bin/busybox
cp /tftpboot/toolkit/CustomTK/rootfs/boot/vmlinuz-3.10.0-957.el7.x86_64 /tftpboot/toolkit/tkcustom-kernel
# ัะพะทะดะฐะตะผ /tftpboot/toolkit/CustomTK/initramfs/init (ะฝะธะถะต ัะพะดะตัะถะฐะฝะธะต ัะบัะธะฟัะฐ):
#!/bin/busybox sh
/bin/busybox --install /bin
mkdir -p /dev /proc /sys /var/run /newroot
mount -t proc proc /proc
mount -o mode=0755 -t devtmpfs devtmpfs /dev
mkdir -p /dev/pts /dev/shm /dev/mapper /dev/vc
mount -t devpts -o gid=5,mode=620 devpts /dev/pts
mount -t sysfs sysfs /sys
mount -t tmpfs -o size=4000m tmpfs /newroot
echo -n "Extracting rootfs... "
xz -d -c -f rootfs.tar.xz | tar -x -f - -C /newroot
echo "done"
mkdir -p /newroot/dev /newroot/proc /newroot/sys
mount --move /sys /newroot/sys
mount --move /proc /newroot/proc
mount --move /dev /newroot/dev
exec switch_root /newroot /sbin/init
# ัะฟะฐะบะพะฒัะฒะฐะตะผ rootfs ะธ initramfs:
cd /tftpboot/toolkit/CustomTK/rootfs
tar cJf /tftpboot/toolkit/CustomTK/initramfs/rootfs.tar.xz --exclude ./proc --exclude ./sys --exclude ./dev .
cd /tftpboot/toolkit/CustomTK/initramfs
find . -print0 | cpio --null -ov --format=newc | gzip -9 > /tftpboot/toolkit/tkcustom-initramfs-new.gz
แแกแ แ แแ, แฉแแแ แแแแแแฃแกแขแแ แแแ แแแ แแ initramfs, แ แแแแแแแช แฃแแแ แแงแแก แฉแแขแแแ แแฃแแ. แจแแแแแแ, แแ แแขแแแแ, แจแฃแแแแแฃแ แ แแแแฃแฅแกแแก แกแฃแ แแแแก PXE-แแก แกแแจแฃแแแแแแ แฉแแขแแแ แแแแ, แแแแแฆแแแ OS แแแแกแแแก.
แแแ แแแ, แแแแ แแ แแฎแแ แฉแแแ แฃแแแ แแแแแแแขแแแแ แแแแขแ แแแ แฉแแแแก "แแแขแแแแขแแแแชแแแแ".
แแก แจแแแซแแแแ แแแแแแแแก แแกแ.
แแแแฃแจแแแ, แ แแ แกแฃแ แแแแก แฉแแขแแแ แแแแก แจแแแแแ แแแแแแแแ แแแแขแ แแแแก แแแแแขแแแแก mount.sh แกแแ แแแขแแ.
แแแแแ แฉแแแ แแแ mount.sh แกแแ แแแขแ autorun-แจแ. แแแแกแแแแแก แแฅแแแ แฃแแแ แจแแชแแแแแ initramfs:
- แแแแแแแแแ initramfs (แแฃ แแแงแแแแแ แแแแแ แแแชแแแฃแ initramfs แแแ แแแแขแก, แแก แแ แแ แแก แกแแญแแ แ)
- แฉแแ แแแ แแแแ แแแจแแแแแกแแก, แ แแแแแแช แแแแแแแแแแแก /proc/cmdline-แจแ แแแแแกแฃแ แแแ แแแแขแ แแแก แแ แจแแแแแแแจแ แแแแแกแชแแแก แแแแขแ แแแก;
- แจแแคแฃแแแ initramfs.
แฒจแแแแจแแแ. X5 แแแกแขแ แฃแแแแขแแ แแฃแแแก แจแแแแฎแแแแแจแ, แฉแแขแแแ แแแแก แแแแขแ แแแ แแแแแแแก แกแแ แแแขแแ /opt/x5/toolkit/bin/hook.sh ั ะฟะพะผะพััั override.conf ะฒ getty tty1 (ExecStart=โฆ)
แแกแ แ แแ, แแขแแแ แแแแ แกแฃแ แแแ, แ แแแแแจแแช mount.sh แกแแ แแแขแ แแฌแงแแแ autorun-แแ. แจแแแแแแ, mount.sh แกแแ แแแขแ แแแแแแแแแแก แแแแแแ แแแ แแแแขแ แแแก (script_cmd=) แจแแกแ แฃแแแแแก แแ แแก แแ แฃแจแแแแก แกแแญแแ แ แแ แแแ แแแแก/แกแแ แแแขแก.
แแขแแแแขแแแแก แฎแแแกแแฌแงแแแแ -แแแขแ
แแแ แแแ...
แแแแแขแแแ... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh
แแขแแแแขแแแแก แฎแแแกแแฌแงแแแแ -shell
แแแ แแแ...
แแแแแขแแแ... nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash
แแฅ แแแ แชแฎแแแ แแ แแก PXE แแแแแฃ, แแแ แฏแแแแ แแ แแก แแแ แแแแก แแแแแชแแแแก แแแแแ แแแ.
แฉแแแ แแแแแ แแแแแ แแแแขแ แแแแก แแแแแชแแแ. PXE แแแแแฃแก แแ แฉแแแแแแ แแแแแแแแแแ แ, แแฎแกแแแแ แแแขแแแแขแฃแ แ แแแแคแแแฃแ แแชแแแก แกแแ แแแขแ แแ แแแแแ แแแแก แแแแกแแแ.
แแแขแแแแขแฃแ แ แแแแคแแแฃแ แแชแแแก แจแแแแฎแแแแแจแ, แแแกแขแแแแชแแแก แกแแ แแแ แแแแ แแแแแแขแแแแแฃแแแ แกแแญแแ แ แแแ แแฅแขแแ แแแแ, แ แแแแแแแช แจแแแชแแแก:
- แกแแ แแแขแแแ;
- แจแแแแฎแฃแแ BIOS/UEFI แจแแแแแแแแ แกแฎแแแแแกแฎแแ แกแแ แแแ แแแแกแแแแก;
- firmware;
- แกแแ แแแ แแก แฃแขแแแแขแแแ;
- แแแ แแแ
แจแแแแแแ, mount.sh แกแแ แแแขแ แแแแแกแชแแแก แแแแขแ แแแก master-install.sh แกแแ แแแขแแ แกแแ แแแขแแก แแแ แแฅแขแแ แแแแแ.
แกแแ แแแขแแก แฎแ (แแแแแแแ แแแ, แ แแแแแแแช แแกแแแ แแแจแแแแฃแแแ) แแกแ แแแแแแงแฃแ แแแ:
- แแแกแขแแ -แแแกแขแแแแชแแ
- แแแแแแ แแแแก แคแฃแแฅแชแแแแ (แแแแแแ แแแฃแแ แคแฃแแฅแชแแแแ)
- แแแคแแ แแแชแแ (แแแคแแ แแแชแแแก แแแแแแแแแแ)
- แแแแแแแแ (แแแกแขแแแแชแแแก แแแ แแแแขแ แแแแก แแแงแแแแแ แกแแ แแแ แแก แแแแแแแ แแแงแ แแแแแแ)
- แแแแแแแแแ_แฃแขแแแกแ (แกแแญแแ แ แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแแงแแแแแ)
- fwupdate (firmware แแแแแฎแแแแ)
- แแแแแแแกแขแแแ (แแแฌแงแแแแแ แแแแแแแกแขแแแ)
- biosconf (BIOS/UEFI แแแ แแแแขแ แแแ)
- แกแแแแแก แแแแแกแฌแแ แแแ (แแ แแแก แแแงแแแแแ แแแแแแแแขแแ)
- srmconf (แแแกแขแแแชแแฃแ แ แแแขแแ แคแแแกแแก แแแแคแแแฃแ แแชแแ)
- raidconf (แแแแแแฃแ แ แขแแแแแแก แแแแคแแแฃแ แแชแแ)
แแ แ - แแ แแ:
- แฌแแแแกแฌแแ แแแกแขแแแแชแแ (แแแแขแ แแแแก แแแแแชแแแ OS แแ แฐแแแแ แแแแแ แแก แแแกแขแแแแ แแ, แ แแแแ แแชแแ ESXi)
- แแแแ แแแแแแแ-แแแกแขแแแแชแแ (แกแฃแ แแแแก แแแแฎแกแแแก แแแฃแงแแแแแแแแ แแแฌแงแแแ)
แแฎแแ แฉแแแ แแแชแแ:
- แ แแแแ แฉแแขแแแ แแแ แกแแ แแแ แ PXE-แแก แกแแจแฃแแแแแแ;
- แ แแแแ แแแแแแแขแแแแ แแแแขแ แแแ แกแแแฃแแแ แกแแ แแแขแแ.
แฒแแแแแ แซแแแแ. แแฅแขแฃแแแฃแ แ แแแฎแแ แจแแแแแแ แแแแฎแแแแ:
- แ แแแแ แแแแแแชแแแ แกแแ แแแ แ, แ แแแแแกแแช แแแแแแแแแ?
- แ แ แฃแขแแแแขแแแ แแ แ แแแแ แแแแแแแแคแแแฃแ แแ แแ แกแแ แแแ แ?
- แ แแแแ แแแแแฆแแ แแแ แแแแขแ แแแ แแแแแ แแขแฃแแ แกแแ แแแ แแกแแแแก?
แ แแแแ แแแแแแชแแแ แกแแ แแแ แ, แ แแแแแกแแช แแแแแแแแแ?
แแก แแแ แขแแแแ - DMI:
dmidecode โs system-product-name
dmidecode โs system-manufacturer
dmidecode โs system-serial-number
แงแแแแแคแแ แ แ แแช แแฅแแแ แแญแแ แแแแแ แแฅ แแ แแก: แแแแงแแแแแแ, แแแแแแ, แกแแ แแฃแแ แแแแแ แ. แแฃ แแ แฎแแ แ แแแ แฌแแฃแแแแฃแแ, แ แแ แแก แแแคแแ แแแชแแ แงแแแแ แกแแ แแแ แแแ, แจแแแแซแแแแ แแแแ แแแแแขแแคแแชแแ แแแ แแแแ MAC แแแกแแแแ แแแ. แแ แแ แแแ แแแแ แแ แแแ แแฃแแแ, แแฃ แกแแ แแแ แแก แแแแงแแแแแแแแ แแแแกแฎแแแแแแฃแแแ แแ แแแแแแ แ แแแแแแแ แฃแแ แแแแ แแ แแ แแก แแแคแแ แแแชแแ แกแแ แแฃแแ แแแแ แแก แจแแกแแฎแแ.
แแแฆแแแฃแแ แแแคแแ แแแชแแแก แกแแคแฃแซแแแแแ, แฅแกแแแแก แกแแฅแแฆแแแแแแแ แแแแแแขแแแแแฃแแแ แแแกแขแแแแชแแแก แกแแ แแแ แแแแ แแ แแขแแแ แแแแ แงแแแแแคแแ แ, แ แแช แกแแญแแ แแ (แแแแฃแแแแฃแ แ, firmware แแ แ.แจ.).
แ แ แฃแขแแแแขแแแ แแ แ แแแแ แแแแแแแแคแแแฃแ แแ แแ แกแแ แแแ แ?
แแ แแแแแฌแแแ แฃแขแแ แแ แแแ แแแแแก Linux-แแกแแแแก แแแแแแ แแ แแฌแแ แแแแแแแกแแแแก. แงแแแแ แแแแฃแแแแฃแ แ แแแแกแแฎแฃแ แแแ แฎแแแแแกแแฌแแแแแแ แแแแงแแแแแแแแแก แแคแแชแแแแฃแ แแแแกแแแขแแแแ.
แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแ, แแคแแฅแ แแ, แงแแแแแคแแ แ แแแแแแแ. แแกแแแ แฉแแแฃแแแแ แแ แแแแแแแแ แจแแคแฃแแฃแแ แจแแกแ แฃแแแแแแ แคแแแแแแแก แกแแฎแแ. แจแแกแ แฃแแแแแแ แคแแแแ แแแแแขแ แแแแแก firmware แแแแแฎแแแแแก แแ แแชแแกแก แแ แแชแแแแแแก แแแแ แฃแแแแแก แแแแก.
BIOS แแ IPMI แฉแแแฃแแแแ แแ แแแแคแแแฃแ แแ แแแฃแแแ แจแแแแแแแแแก แกแแจแฃแแแแแแ. แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ, แจแแแแแแแก แ แแแแฅแขแแ แแแ แจแแกแแซแแแแแแแ แฉแแแแขแแแ แแแแแแ.
แแแแแแ แแ แแแแงแแแแแแแก RAID แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแแแคแแแฃแ แแชแแ แแกแแแ แจแแกแแซแแแแแแแ แจแแแแแแแก แแแแแงแแแแแแ. แแฃ แแก แแกแ แแ แแ แแก, แแแจแแ แแแแแฌแแแ แแแแคแแแฃแ แแชแแแก แกแแ แแแขแแก แแแฌแแ แ.
RAID-แแก แแแงแแแแแแก แแ แแชแแแฃแ แ แงแแแแแแ แฎแจแแ แแ แจแแแแแแแ:
- แฉแแแ แแแแฎแแแ แแแแแแแแ แ แแแแคแแแฃแ แแชแแแก.
- แแฃ แฃแแแ แแ แกแแแแแก แแแแแแฃแ แ แแแกแแแแแ, แฉแแแ แแแ แแจแแแ.
- แแแแฎแแ, แ แ แคแแแแแฃแ แ แแแกแแแแ แแ แกแแแแแก แแ แ แแแแแแแ.
- แจแแฅแแแแแ แแฎแแแ แแแแแแฃแ แ แแแกแแแ. แจแแชแแแแแก แจแแแแฎแแแแแจแ แแ แแชแแกแก แแฌแงแแแขแ.
แ แแแแ แแแแแฆแแ แแแ แแแแขแ แแแ แแแแแ แแขแฃแแ แกแแ แแแ แแกแแแแก?
แแแแฃแจแแแ, แ แแ แงแแแแ แกแแ แแแ แแก แแแ แแแแขแ แแแ แจแแแแแฎแแแ แกแแแแกแขแแแแชแแ แกแแ แแแ แแ. แแ แจแแแแฎแแแแแจแ, แฉแแแแก แแแแฎแแแแ แแแกแฃแฎแแก แแแกแแชแแแแ, แฏแแ แฃแแแ แแแแแแฌแงแแแขแแ, แ แแแแ แแแแแแแขแแแแ แแแ แแแแขแ แแแ แแแกแขแแแแชแแแก แกแแ แแแ แแ.
แแแแแแแแ แแแแแ, แแฅแแแ แจแแแแซแแแแ แแแฃแแแแแแแแ แขแแฅแกแขแฃแ แคแแแแแแก. (แแแแแแแแจแ แจแแแซแแแแ แแแแญแแ แแแ แขแแฅแกแขแฃแ แ แคแแแแแก แแแแแงแแแแแ, แ แแแแ แช แแแ แแแแขแ แแแแก แแแแแชแแแแก แกแแ แแแแ แแ แแแแแแ.)
แแฅแแแ แจแแแแซแแแแ "แแแแแแแ แแ" แขแแฅแกแขแฃแ แ แคแแแแ แแแกแขแแแแชแแแก แกแแ แแแ แแ. แแ แแแแแแขแแ แแแกแ แกแแแแแ แ mount.sh แกแแ แแแขแก.
แฎแแแแแ, แแแแแแแแแ, แแกแ แแแแแแงแฃแ แแแ:
<แกแแ แแฃแแ แแแแแ แ> <แฐแแกแขแแก แกแแฎแแแ> <แฅแแแฅแกแแแ>
แแ แฎแแแแแก แแแแแแแ แ แแแแแแขแแแก แคแแแแจแ แแแแแกแ แกแแแฃแจแแ แแแแฅแแแแแแ. แจแแแแแ แแ, แกแแ แแแ แแก แแแงแแแแแแกแแก, แแแแแ แแขแฃแแ แกแแ แแแ แแก แแแ แแแแขแ แแแ แฌแแแแแแฎแแแ แคแแแแแแแ.
แแแแ แแ, แแ แซแแแแแแแแ แแแ แกแแแฅแขแแแแจแ, แฃแแฏแแแแกแแ แแแแแแงแแแแ แแแแแชแแแแ แแแแ แกแแ แแแ แแก แแแกแขแแแแชแแแก แแแ แแแแขแ แแแแก, แแแแแแแ แแแแแกแ แแ แแฃแ แแแแแแแก แจแแกแแแแฎแแ.
แ แ แแฅแแ แฃแแแ, แแฎแแแแ แแแแแชแแแแ แแแแ แแ แแ แแก แกแแแแแ แแกแ แแ แแฅแแแ แแแแญแแ แแแแแ แแแแแแขแแก แแแฌแแแแก แจแแฅแแแ, แ แแแแแก แแแฎแแแ แแแแแแช แแแ แแแแขแ แแแ แแแแแแ แแแแแชแแแแ แแแแแจแ. แแแแก แแแแฎแแ แชแแแแแแ แฃแคแ แ แ แแฃแแแ แขแแฅแกแขแฃแ แคแแแแแแ แจแแแแ แแแแ, แแแแ แแ แกแแแแแแแแแแจแ แงแแแแแคแแ แ แแ แช แแกแ แ แแฃแแแ, แ แแแแ แช แฉแแแก. แกแแแกแแแแ แจแแกแแซแแแแแแแ แแแฌแแ แแ แแแแแแขแแก แแแแแแแแฃแ แ แแแ แกแแ, แ แแแแแแช แฃแแ แแแแ แแแแแ แแแแแกแชแแแก แแแแแชแแแแแก แแแแแชแแแแ แแแแแจแ. แกแแแแแแแแแ แแ แจแแกแแซแแแแแแ แแฅแแแแ แแแแแแขแแก แแ แแแ แแแแก แแแฃแแฏแแแแกแแแ แฃแคแแกแ แ แแแแแจแ (แแแแแ แแจแแแ, แแขแแแแขแแแแก แแแญแแแ, แจแแขแงแแแแแแแแแแก แแแแแแแแ แแ แ.แจ. แ แแช แแแฎแกแแแแแแ).
แแแแแชแแแแ แแแแแจแ แแแแแ แแขแฃแแ แแแแฎแแแแแ แแ แกแแ แแแ แแก แกแแ แแฃแแ แแแแ แแก แแแแแแแแแ, แฉแแแ แแแแแฆแแแ แกแแ แแแ แแก แแแแคแแแฃแ แแชแแแกแแแแก แกแแญแแ แ แแแ แแแแขแ แแแก.
แแแ แแ แแแแกแ, แฉแแแ แแ แแแแแญแแ แแแแ แกแแแแขแแแแก แแแแแแฃแจแแแแแ แแ แแแ แแฃแแ แฌแแแแแแกแแแแก, แ แแแแ แช แแก แแ แแก แขแแฅแกแขแฃแ แ แคแแแแแก แจแแแแฎแแแแแจแ.
แฉแแแ แจแแแแแซแแแ แฉแแแฌแแ แแ แแแแคแแแฃแ แแชแแแก แแฃแ แแแแ แแแแแชแแแแ แแแแแจแ แงแแแแ แแขแแแแ แแ แแแแแแขแ แแแแ แแแกแขแแแแชแแแก แแ แแชแแกแ แแแแแแแแแแก แแขแแแแแแก แแแแแแแแแแกแ แแ แแ แแจแแแแก แแแจแแแแแแ.
แแฎแแ แฉแแแ แแแชแแ แ แแแแ :
- แกแแ แแแ แแก แฉแแขแแแ แแแ PXE-แแก แกแแจแฃแแแแแแ;
- แแแแขแ แแแแก แแแแแชแแแ แฉแแแแก แกแแ แแแขแแ;
- แกแแ แแแ แแก แแแแแขแแคแแชแแ แแแ, แ แแแแแแช แฃแแแ แแแแแแแแแก แแแกแ แกแแ แแฃแแ แแแแ แแ;
- แกแแ แแแ แแก แแแแคแแแฃแ แแชแแ แจแแกแแแแแแกแ แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแแแแงแแแแแแ;
- แแแ แแแแขแ แแแแก แแแแแขแแแ แกแแแแกแขแแแแชแแ แกแแ แแแ แแก แแแแแชแแแแ แแแแแจแ แแแแแแขแแก แแแฌแแแแก แแแแแงแแแแแแ.
แฉแแแ แแแแแ แแแแแ แ แแแแ :
- แแแแแกแขแแแแ แแแฃแแ แกแแ แแแ แ แแฆแแแก แกแแญแแ แ แแแ แแแแขแ แแแก แแแแแชแแแแ แแแแแแแ;
- แงแแแแ แแแแแแแแแแก แแ แแแ แแกแ แฉแแฌแแ แแแแ แแแแแชแแแแ แแแแแจแ ( แแฃแ แแแแแแ, แแแแแแแแแ, แกแชแแแแก แแ แแจแแแ).
แ แแช แจแแแฎแแแ แแฅแแแแก แแแแ แแแแแกแขแแแแ แแแฃแแ แกแฎแแแแแกแฎแแ แขแแแแก แแ แแแ แแแฃแ แฃแแ แฃแแแแแงแแคแแก? แ แแแแ แแแแแงแแแแ แฐแแแแ แแแแแ แ, แแแแแแแแ แแ VM แแ แแแแแแแคแแแฃแ แแ แแ แแก แงแแแแแคแแ แ?
แคแแแแฃแ แ แกแแกแขแแแแก แแแแแกแแฎแฃแแแแแก (linux) แแแแ แแขแฃแ แแจแ แแแแแแแแแแก แจแแแแฎแแแแแจแ, แงแแแแแคแแ แ แกแแแแแแ แแแ แขแแแแ:
- แกแแ แแแ แแก แงแแแแ แแแแแแแแแขแแก แแแงแแแแแแก แจแแแแแ, แฉแแแ แแแงแแแแแ แกแฃแ แแแก.
- แแแแแแกแขแแแแ แแ grub bootloader.
- แฉแแแ chroot แแ แแแแคแแแฃแ แแชแแแก แแแแแแแแ แงแแแแแคแแ แก, แ แแช แกแแญแแ แแ.
แ แแแแ แแแแแแแขแแแแ แแแแขแ แแแ OS แแแกแขแแแแ แแ (แแแแแแแแแ ESXi-แแก แแแแแงแแแแแแ).
- แฉแแแ แแแฌแงแแแ แแแแขแ แแแแก แแแแแชแแแแก แฉแแแแ แกแแ แแแขแแแแ แฐแแแแ แแแแแ แแก แแแกแขแแแแ แแ แแแขแแแแขแฃแ แ แแแกแฃแฎแแก แคแแแแแก แแแแแงแแแแแแ (kickstart):
- แฉแแแ แแจแแแ แแแกแแแ แแแแแแแแ แ แแแแแงแแคแแแก.
- แจแแฅแแแแแ แแแแแงแแคแ 500 แแ แแแแแ.
- แฉแแแ แแฆแแแแจแแแแ แแแก แฉแแแขแแแ แแแแแแ.
- แคแแ แแแขแแ แแแ FAT32-แแ.
- แแแแแแแแ แแ ESXi แแแกแขแแแแชแแแก แคแแแแแแ แแแก แซแแ แจแ.
- syslinux-แแก แแแกแขแแแแชแแ.
- แแแแแแแแ แแ syslinux.cfg /syslinux/
default esxi
prompt 1
timeout 50
label esxi
kernel mboot.c32
append -c boot.cfg
- แแแแแแแแ แแ mboot.c32 /syslinux-แแ.
- Boot.cfg-แก แฃแแแ แฐแฅแแแแแก kernelopt=ks=ftp:// /ks_esxi.cfg
- แฉแแแ แแแแแขแแแ แแแ แกแแ แแแ แ.
แกแแ แแแ แแก แแแแแขแแแ แแแแก แจแแแแแ, ESXi แแแกแขแแแแ แ แฉแแแแแขแแแ แแแแ แกแแ แแแ แแก แแงแแ แ แแแกแแแแแ. แแแกแขแแแแ แแก แงแแแแ แกแแญแแ แ แคแแแแ แฉแแแขแแแ แแแแ แแแฎแกแแแ แแแแจแ แแ แจแแแแแ แแแแฌแงแแแ ESXi แแแกแขแแแแชแแ แแแแแแแแฃแแ แแแขแแแแขแฃแ แ แแแกแฃแฎแแก แคแแแแแก แแแฎแแแแแ.
แแฅ แแ แแก แ แแแแแแแแ แกแขแ แแฅแแแ ks_esxi.cfg แแแขแแแแขแฃแ แ แแแกแฃแฎแแก แคแแแแแแแ:
%firstboot --interpreter=busybox
โฆ
# ะฟะพะปััะฐะตะผ ัะตัะธะนะฝัะน ะฝะพะผะตั
SYSSN=$(esxcli hardware platform get | grep Serial | awk -F " " '{print $3}')
# ะฟะพะปััะฐะตะผ IP
IPADDRT=$(esxcli network ip interface ipv4 get | grep vmk0 | awk -F " " '{print $2}')
LAST_OCTET=$(echo $IPADDRT | awk -F'.' '{print $4}')
# ะฟะพะดะบะปััะฐะตะผ NFS ะธะฝััะฐะปะป-ัะตัะฒะตัะฐ
esxcli storage nfs add -H is -s /srv/nfs_share -v nfsshare1
# ะบะพะฟะธััะตะผ ะฒัะตะผะตะฝะฝัะต ะฝะฐัััะพะนะบะธ ssh, ะดะปั ะธัะฟะพะปัะทะพะฒะฐะฝะธั ssh-ะบะปะธะตะฝัะฐ
mv /etc/ssh /etc/ssh.tmp
cp -R /vmfs/volumes/nfsshare1/ssh /etc/
chmod go-r /etc/ssh/ssh_host_rsa_key
# ะบะพะฟะธััะตะผ ovftool, ะดะปั ัะฐะทะฒะตัััะฒะฐะฝะธั ะะ ัะตะนัะฐั, ะฟะปัั ะฒะพะทะผะพะถะฝะพ ะฟัะธะณะพะดะธััั ะฟะพะทะถะต
cp -R /vmfs/volumes/nfsshare1/ovftool /vmfs/volumes/datastore1/
# ัะฐะทะฒะตัััะฒะฐะตะผ ะะ
/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM1 /vmfs/volumes/nfsshare1/VM_T/VM1.ova vi://root:[email protected]
/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM2 /vmfs/volumes/nfsshare1/VM_T/VM2.ova vi://root:[email protected]
# ะฟะพะปััะฐะตะผ ัััะพะบั ั ะฝะฐัััะพะนะบะฐะผะธ ะฝะฐัะตะณะพ ัะตัะฒะตัะฐ
ssh root@is "mysql -h'192.168.0.1' -D'servers' -u'user' -p'secretpassword' -e "SELECT ... WHERE servers.serial='$SYSSN'"" | grep -v ^$ | sed 's/NULL//g' > /tmp/servers
...
# ะณะตะฝะตัะธััะตะผ ัะบัะธะฟั ะฝะฐัััะพะนะบะธ ัะตัะธ
echo '#!/bin/sh' > /vmfs/volumes/datastore1/netconf.sh
echo "esxcli network ip interface ipv4 set -i=vmk0 -t=static --ipv4=$IPADDR --netmask=$S_SUB || exit 1" >> /vmfs/volumes/datastore1/netconf.sh
echo "esxcli network ip route ipv4 add -g=$S_GW -n=default || exit 1" >> /vmfs/volumes/datastore1/netconf.sh
chmod a+x /vmfs/volumes/datastore1/netconf.sh
# ะทะฐะดะฐะตะผ ะฟะฐัะฐะผะตัั guestinfo.esxihost.id, ัะบะฐะทัะฒะฐะตะผ ะฒ ะฝะตะผ ัะตัะธะนะฝัะน ะฝะพะผะตั
echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM1/VM1.vmx
echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM2/VM2.vmx
...
# ะพะฑะฝะพะฒะปัะตะผ ะธะฝัะพัะผะฐัะธั ะฒ ะฑะฐะทะต
SYSNAME=$(esxcli hardware platform get | grep Product | sed 's/Product Name://' | sed 's/^ *//')
UUID=$(vim-cmd hostsvc/hostsummary | grep uuid | sed 's/ //g;s/,$//' | sed 's/^uuid="//;s/"$//')
ssh root@is "mysql -D'servers' -u'user' -p'secretpassword' -e "UPDATE servers ... SET ... WHERE servers.serial='$SYSSN'""
ssh root@is "mysql -D'servers' -u'user' -p'secretpassword' -e "INSERT INTO events ...""
# ะฒะพะทะฒัะฐัะฐะตะผ ะฝะฐัััะพะนะบะธ SSH
rm -rf /etc/ssh
mv /etc/ssh.tmp /etc/ssh
# ะฝะฐัััะฐะธะฒะฐะตะผ ัะตัั ะธ ะฟะตัะตะทะฐะณััะถะฐะตะผัั
esxcli system hostname set --fqdn=esx-${G_NICK}.x5.ru
/vmfs/volumes/datastore1/netconf.sh
reboot
แแ แแขแแแแ แฎแแแแ แฐแแแแ แแแแแ แแก แแแกแขแแแแชแแ แแ แแแแคแแแฃแ แแชแแ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแแก แแแแแ แแแ.
แ แแแแ แแแแแแแแคแแแฃแ แแ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแ แแฎแแ?
แชแแขแ แแแแแขแงแฃแแ: แแแกแขแแแแชแแแก แแ แแก VM1.vmx แคแแแแจแ แแแแแงแแแแ แแแ แแแแขแ แ guestinfo.esxihost.id = "$SYSSN" แแ แแแกแจแ แแแแฃแแแแแ แคแแแแแฃแ แ แกแแ แแแ แแก แกแแ แแฃแแ แแแแแ แ.
แแฎแแ, แแแฌแงแแแแก แจแแแแแ, แแแ แขแฃแแแฃแ แแแแฅแแแแก (แแแแแกแขแแแแ แแแฃแแ vmware-tools แแแแแขแแ) แจแแฃแซแแแ แแ แแแ แแแแขแ แแ แฌแแแแแ:
ESXI_SN=$(vmtoolsd --cmd "info-get guestinfo.esxihost.id")
แแแฃ, VM แจแแซแแแแก แกแแแฃแแแ แ แแแแแก แแแแแขแแคแแชแแ แแแแก (แแชแแก แคแแแแแฃแ แ แฐแแกแขแแก แกแแ แแฃแแ แแแแแ แ), แแแแแ แแแก แแแกแขแแแแชแแแก แกแแ แแแ แแก แแแแแชแแแแ แแแแแก แแ แแแแฆแแก แแแ แแแแขแ แแแ, แ แแแแแแแช แกแแญแแ แแแแก แแแแคแแแฃแ แแชแแแก. แแก แงแแแแแคแแ แ แจแแแแแแแแแ แกแแ แแแขแจแ, แ แแแแแแช แแแขแแแแขแฃแ แแ แฃแแแ แแแแฅแแแแแแก, แ แแแแกแแช guestos vm แแแแฌแงแแแ (แแแแ แแ แแ แแฎแแ: RunOnce).
แแฎแแ แฉแแแ แแแชแแ แ แแแแ :
- แกแแ แแแ แแก แฉแแขแแแ แแแ PXE-แแก แกแแจแฃแแแแแแ;
- แแแแขแ แแแแก แแแแแชแแแ แฉแแแแก แกแแ แแแขแแ;
- แกแแ แแแ แแก แแแแแขแแคแแชแแ แแแ, แ แแแแแแช แฃแแแ แแแแแแแแแก แแแกแ แกแแ แแฃแแ แแแแ แแ;
- แกแแ แแแ แแก แแแแคแแแฃแ แแชแแ แจแแกแแแแแแกแ แแแแฃแแแแฃแ แ แกแแจแฃแแแแแแแแก แแแแแงแแแแแแ;
- แแแ แแแแขแ แแแแก แแแแแขแแแ แกแแแแกแขแแแแชแแ แกแแ แแแ แแก แแแแแชแแแแ แแแแแจแ แแแแแแขแแก แแแฌแแแแก แแแแแงแแแแแแ;
- แกแฎแแแแแกแฎแแ แขแแแแก แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแคแแแฃแ แแชแแ, แแแ แจแแ แแก esxi แฐแแแแ แแแแแ แแก แแแงแแแแแ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแแก แแแแคแแแฃแ แแชแแ (แงแแแแ แแแขแแแแขแฃแ แแ).
แฉแแแ แแแแแ แแแแแ แ แแแแ :
- แแแแแกแขแแแแ แแแฃแแ แกแแ แแแ แ แแฆแแแก แกแแญแแ แ แแแ แแแแขแ แแแก แแแแแชแแแแ แแแแแแแ;
- แงแแแแ แแแแแแแแแแก แแ แแแ แแกแ แฉแแฌแแ แแแแ แแแแแชแแแแ แแแแแจแ ( แแฃแ แแแแแแ, แแแแแแแแแ, แกแชแแแแก แแ แแจแแแ).
แแแแแแแ แ:
แแ แแฏแแ แ, แ แแ แแ แแแแแฌแงแแแขแแก แฃแแแแแแฃแ แแแ แแแแแแแ แแแแก แแแก แแแฅแแแแแแแจแ, แกแแแแ แขแแแแจแ, แจแแกแแซแแแแแแแแแกแ แแ แแ แแแแแคแแ แแแแแแแจแ.
แแแฎแแแ แแแฌแแ แแ แแแแแแขแแ แแแจแ แ แแก แคแแฅแ แแแ.
แฌแงแแ แ: www.habr.com