์๋ ํ์ธ์, ์ ๋ Denis์ ๋๋ค. ์ ํ๋ ๋ถ์ผ ์ค ํ๋๋ X5์์ ์ธํ๋ผ ์๋ฃจ์ ๊ฐ๋ฐ์ ๋๋ค. ์ค๋ ์ ๋ ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ ์๋ฒ ์ค๋น ์์คํ ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๋ถ๊ณผ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ์ ์๊ฐ์๋ ์ด๊ฒ์ ํฅ๋ฏธ๋กญ๊ณ ๊ฐ๋จํ๋ฉฐ ์ ์ฐํ ์๋ฃจ์ ์ ๋๋ค.
์ค๋น๋ ์ ์๋ฒ๋ฅผ OS๊ฐ ํฌํจ๋ ์์ ํ ๊ตฌ์ฑ๋ ์๋ฒ๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. Linux ๋๋ ESXi ํ์ดํผ๋ฐ์ด์ ์ฌ์ฉ(Windows ์๋ฒ ๋ฐฐํฌ๋ ์ด ๋ฌธ์์์ ๋
ผ์๋์ง ์์)
์ฝ๊ด:
- ์๋ฒ โ ๊ตฌ์ฑํด์ผ ํ๋ ์๋ฒ์ ๋๋ค.
- ์ค์น ์๋ฒ๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ค๋น ๊ณผ์ ์ ์ฒด๋ฅผ ์ ๊ณตํ๋ ๋ฉ์ธ ์๋ฒ์ ๋๋ค.
์๋ํ๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์์ ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ฒ๋ฅผ ์ฒ์๋ถํฐ ์ต๋๋ก ํ๋ฃจ์ 30๊ฐ๊น์ง ๋๊ท๋ชจ๋ก ์ค๋นํ๋ ๊ฒ์ ๋๋ค. ๋ค์ํ ์ ์กฐ์ ์ฒด ๋ฐ ๋ชจ๋ธ์ ์๋ฒ, ๋ค์ํ ์ด์ ์ฒด์ ๊ฐ ์ค์น๋ ์ ์์ผ๋ฉฐ ํ์ดํผ๋ฐ์ด์ ๊ฐ ์์ ์๋ ์๊ณ ์์ ์๋ ์์ต๋๋ค.
์ค์ ํ๋ก์ธ์ค์๋ ์ด๋ค ์์ ์ด ํฌํจ๋ฉ๋๊น(์๋ํ ์์):
- ํค๋ณด๋, ๋ง์ฐ์ค, ๋ชจ๋ํฐ๋ฅผ ์๋ฒ์ ์ฐ๊ฒฐํฉ๋๋ค.
- BIOS, RAID, IPMI ๊ตฌ์ฑ;
- ๊ตฌ์ฑ ์์ ํ์จ์ด ์ ๋ฐ์ดํธ;
- ํ์ผ ์์คํ ์ด๋ฏธ์ง ๋ฐฐํฌ(๋๋ ํ์ดํผ๋ฐ์ด์ ์ค์น ๋ฐ ๊ฐ์ ๋จธ์ ๋ณต์ฌ)
๋ฉ๋ชจ. ๋๋ ์๋ ์๋ต ํ์ผ์ ์ด์ฉํ ์ค์น๋ฅผ ํตํด OS ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ธฐ์ฌ์์๋ ์ด์ ๋ํด ๋ ผ์ํ์ง ์์ ๊ฒ์ ๋๋ค. ์๋์์ ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ด๋ ต์ง ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
- OS ๋งค๊ฐ๋ณ์(ํธ์คํธ ์ด๋ฆ, IP ๋ฑ)๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๊ฐ ์๋ฒ์์ ๋์ผํ ์ค์ ์ด ์์ฐจ์ ์ผ๋ก ์ํ๋ฉ๋๋ค. ๊ทธ๋ฌํ ์์ ์ ํจ์จ์ฑ์ ๋งค์ฐ ๋ฎ์ต๋๋ค.
์๋ํ์ ํต์ฌ์ ์๋ฒ ์ค๋น ๊ณผ์ ์์ ์ฌ๋์ ๊ฐ์ ์ ์์ ๋ ๊ฒ์ ๋๋ค. ๊ฐ๋ฅํ ํ ๋ง์ด.
์๋ํ๋ฅผ ํตํด ์์ ๊ฐ ๊ฐ๋ ์ค์ง ์๊ฐ์ ์ค์ด๊ณ ์ฌ๋ฌ ์๋ฒ๋ฅผ ๋์์ ํ๋ก๋น์ ๋ํ ์ ์์ต๋๋ค. ์ธ์ ์์ธ์ผ๋ก ์ธํ ์ค๋ฅ ๊ฐ๋ฅ์ฑ๋ ํฌ๊ฒ ์ค์ด๋ญ๋๋ค.
์๋ฒ๋ ์ด๋ป๊ฒ ์๋์ผ๋ก ๊ตฌ์ฑ๋๋์?
๋ชจ๋ ๋จ๊ณ๋ฅผ ์์ธํ ๋ถ์ํด ๋ณด๊ฒ ์ต๋๋ค.
PXE ์ค์น ์๋ฒ๋ก ์ฌ์ฉํ๋ Linux ์๋ฒ๊ฐ ์์ต๋๋ค. DHCP, TFTP ์๋น์ค๊ฐ ์ค์น ๋ฐ ๊ตฌ์ฑ๋ฉ๋๋ค.
๋ฐ๋ผ์ ๊ตฌ์ฑ์ด ํ์ํ ์๋ฒ๋ฅผ PXE๋ฅผ ํตํด ๋ถํ ํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ธฐ์ตํด ๋ด ์๋ค:
- ์๋ฒ์์ ๋คํธ์ํฌ ๋ถํ ์ด ์ ํ๋์์ต๋๋ค.
- ์๋ฒ๋ ๋คํธ์ํฌ ์นด๋์ PXE-ROM์ ๋ก๋ํ๊ณ DHCP๋ฅผ ํตํด ์ค์น ์๋ฒ์ ์ ์ํ์ฌ ๋คํธ์ํฌ ์ฃผ์๋ฅผ ์ป์ต๋๋ค.
- DHCP ์ค์น ์๋ฒ๋ ์ฃผ์์ PXE๋ฅผ ํตํ ์ถ๊ฐ ๋ค์ด๋ก๋์ ๋ํ ์ง์นจ์ ๋ฐํํฉ๋๋ค.
- ์๋ฒ๋ PXE๋ฅผ ํตํด ์ค์น ์๋ฒ์์ ๋คํธ์ํฌ ๋ถํธ๋ก๋๋ฅผ ๋ก๋ํ๋ฉฐ, PXE ๊ตฌ์ฑ ํ์ผ์ ๋ฐ๋ผ ์ถ๊ฐ ๋ก๋๊ฐ ๋ฐ์ํฉ๋๋ค.
- ๋ถํ ์ ์์ ๋ ๋งค๊ฐ๋ณ์(์ปค๋, initramfs, ๋ง์ดํธ ์ง์ , squashfs ์ด๋ฏธ์ง ๋ฑ)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ํฉ๋๋ค.
๋ฉ๋ชจ. ์ด ๋ฌธ์์์๋ BIOS ๋ชจ๋๋ฅผ ํตํด PXE๋ฅผ ํตํด ๋ถํ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. ํ์ฌ ์ ์กฐ์ ์ฒด์์๋ UEFI ๋ถํ ๋ชจ๋๋ฅผ ์ ๊ทน์ ์ผ๋ก ๊ตฌํํ๊ณ ์์ต๋๋ค. 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 ์ด๋ฏธ์ง์ด๋ฉฐ, ์ด๋ฅผ ํตํด ์๋ฒ์ ์ฃผ์ ์ค๋น ๋ฐ ๊ตฌ์ฑ์ด ์ํ๋ฉ๋๋ค.
๋ณด์๋ค์ํผ ๋ถํธ๋ก๋๋ ๋ง์ ๋งค๊ฐ๋ณ์๋ฅผ ์ปค๋์ ์ ๋ฌํฉ๋๋ค. ์ด๋ฌํ ๋งค๊ฐ๋ณ์ ์ค ์ผ๋ถ๋ ์ปค๋ ์์ฒด์์ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ ์์ ์ ๋ชฉ์ ์ ์ํด ์ผ๋ถ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด์ ๋ํด์๋ ๋์ค์ ๋ ผ์ํ๊ฒ ์ง๋ง ์ง๊ธ์ ์ ๋ฌ๋ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ /proc/cmdline์ ํตํด ์ค๊ฐ Linux ์ด๋ฏธ์ง์์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ๋ง ๊ธฐ์ตํ๋ฉด ๋ฉ๋๋ค.
์ปค๋๊ณผ initramfs๋ ์ด๋์ ๊ตฌํ ์ ์๋์?
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ Linux ๋ฐฐํฌํ์ ์ ํํ ์ ์์ต๋๋ค. ์ ํํ ๋ ์ฃผ์ํ ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ถํ ์ด๋ฏธ์ง๋ ๋ฒ์ฉ์ด์ด์ผ ํฉ๋๋ค(๋๋ผ์ด๋ฒ ๊ฐ์ฉ์ฑ, ์ถ๊ฐ ์ ํธ๋ฆฌํฐ ์ค์น ๊ธฐ๋ฅ).
- ์๋ง๋ initramfs๋ฅผ ์ฌ์ฉ์ ์ ์ํด์ผ ํ ๊ฒ์ ๋๋ค.
X5์ฉ ์๋ฃจ์ ์์๋ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ํ๋ฉ๋๊น? CentOS 7์ด ๊ธฐ๋ณธ์ผ๋ก ์ ํ๋์์ต๋๋ค. ๋ค์ ํธ๋ฆญ์ ์๋ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฏธ๋์ ์ด๋ฏธ์ง ๊ตฌ์กฐ๋ฅผ ์ค๋นํ๊ณ ์ด๋ฅผ ์์นด์ด๋ธ์ ์์ถํ ๋ค์ initramfs๋ฅผ ์์ฑํฉ๋๋ค. ๊ทธ ์์ ํ์ผ ์์คํ ์์นด์ด๋ธ๊ฐ ์์ ๊ฒ์ ๋๋ค. ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๋ฉด ์์นด์ด๋ธ๊ฐ ์์ฑ๋ tmpfs ํํฐ์ ์ผ๋ก ํ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด vmkernel๊ณผ initramfs๋ผ๋ ๋ ๊ฐ์ ํ์ผ๋ก๋ง ๊ตฌ์ฑ๋ ํ์ ์ ํธ๋ฆฌํฐ๊ฐ ๋ชจ๋ ํฌํจ๋ ์ต์ํ์ ๋ณธ๊ฒฉ์ ์ธ ๋ผ์ด๋ธ Linux ์ด๋ฏธ์ง๋ฅผ ์ป์ ์ ์์ต๋๋ค.
#ัะพะทะดะฐะตะผ ะดะธัะตะบัะพัะธะธ:
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๋ฅผ ํตํด ์ค๊ฐ Linux ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ์ฌ OS ์ฝ์์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ข์ต๋๋ค. ํ์ง๋ง ์ด์ ์ ์ด๊ถ์ "์๋ํ"๋ก ์ ํํด์ผ ํฉ๋๋ค.
์ด๋ ๊ฒ ํ ์ ์์ต๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ ํ mount.sh ์คํฌ๋ฆฝํธ๋ก ์ ์ด๊ถ์ ์ด์ ํ ๊ณํ์ด๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ ์คํ์ mount.sh ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจ์์ผ ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด initramfs๋ฅผ ์์ ํด์ผ ํฉ๋๋ค.
- unpack initramfs(์์ initramfs ์ต์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ํ์ํ์ง ์์)
- /proc/cmdline์ ํตํด ์ ๋ฌ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ถ์ํ๊ณ ์ ์ด๋ฅผ ์ถ๊ฐ๋ก ์ ์กํ๋ ์ฝ๋๋ฅผ ์์์ ํฌํจํฉ๋๋ค.
- initramfs๋ฅผ ํฉํ์ธ์.
๋ฉ๋ชจ. X5 ํดํท์ ๊ฒฝ์ฐ ๋ก๋ฉ ์ ์ด๊ฐ ์คํฌ๋ฆฝํธ๋ก ์ ์ก๋ฉ๋๋ค. /opt/x5/toolkit/bin/hook.sh ั ะฟะพะผะพััั override.conf ะฒ getty tty1 (ExecStart=โฆ)
๋ฐ๋ผ์ ์๋ ์คํ ์ mount.sh ์คํฌ๋ฆฝํธ๊ฐ ์์๋๋ ์ด๋ฏธ์ง๊ฐ ๋ก๋๋ฉ๋๋ค. ๋ค์์ผ๋ก, mount.sh ์คํฌ๋ฆฝํธ๋ ์คํ ์ค์ ์ ๋ฌ๋ ๋งค๊ฐ๋ณ์(script_cmd=)๋ฅผ ๋ถ์ํ๊ณ ํ์ํ ํ๋ก๊ทธ๋จ/์คํฌ๋ฆฝํธ๋ฅผ ์์ํฉ๋๋ค.
๋ผ๋ฒจ ํดํท-์๋
ํต์ฌ...
์ถ๊ฐ... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh
๋ผ๋ฒจ ํดํท-๊ป์ง
ํต์ฌ...
์ถ๊ฐ... nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash
์ฌ๊ธฐ ์ผ์ชฝ์๋ PXE ๋ฉ๋ด๊ฐ ์๊ณ ์ค๋ฅธ์ชฝ์๋ ์ ์ด ์ ์ก ๋ค์ด์ด๊ทธ๋จ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ํต์ ๊ถ ์ด์ ์ ์์๋์ต๋๋ค. PXE ๋ฉ๋ด ์ ํ์ ๋ฐ๋ผ ์๋ ๊ตฌ์ฑ ์คํฌ๋ฆฝํธ ๋๋ ๋๋ฒ๊น ์ฝ์์ด ์์๋ฉ๋๋ค.
์๋ ๊ตฌ์ฑ์ ๊ฒฝ์ฐ ๋ค์์ ํฌํจํ๋ ํ์ ๋๋ ํฐ๋ฆฌ๊ฐ ์ค์น ์๋ฒ์์ ๋ง์ดํธ๋ฉ๋๋ค.
- ์คํฌ๋ฆฝํธ;
- ๋ค์ํ ์๋ฒ์ ๋ํ ์ ์ฅ๋ BIOS/UEFI ํ ํ๋ฆฟ;
- ํ์จ์ด;
- ์๋ฒ ์ ํธ๋ฆฌํฐ;
- ๋ก๊ทธ
๋ค์์ผ๋ก mount.sh ์คํฌ๋ฆฝํธ๋ ์คํฌ๋ฆฝํธ ๋๋ ํฐ๋ฆฌ์์ master-install.sh ์คํฌ๋ฆฝํธ๋ก ์ ์ด๋ฅผ ์ ์กํฉ๋๋ค.
์คํฌ๋ฆฝํธ ํธ๋ฆฌ(์คํ ์์)๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ง์คํฐ ์ค์น
- sharefunctions(๊ณต์ ํจ์)
- info(์ ๋ณด ์ถ๋ ฅ)
- ๋ชจ๋ธ(์๋ฒ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ค์น ๋งค๊ฐ๋ณ์ ์ค์ )
- prepare_utils(ํ์ํ ์ ํธ๋ฆฌํฐ ์ค์น)
- fwupdate(ํ์จ์ด ์ ๋ฐ์ดํธ)
- diag(๊ธฐ๋ณธ ์ง๋จ)
- biosconf(BIOS/UEFI ์ค์ )
- clockfix(๋ง๋๋ณด๋์ ์๊ฐ ์ค์ )
- srmconf(์๊ฒฉ ์ธํฐํ์ด์ค ์ธํฐํ์ด์ค ๊ตฌ์ฑ)
- raidconf(๋ ผ๋ฆฌ ๋ณผ๋ฅจ ๊ตฌ์ฑ)
๋ค์ ์ค ํ๋:
- ์ฌ์ ์ค์น(OS ๋๋ ESXi์ ๊ฐ์ ํ์ดํผ๋ฐ์ด์ ์ค์น ํ๋ก๊ทธ๋จ์ผ๋ก ์ ์ด๊ถ ์ด์ )
- ๋ณํฉ ์ค์น(์ด๋ฏธ์ง ์์ถ ํ๊ธฐ ์ฆ์ ์์)
์ด์ ์ฐ๋ฆฌ๋ ๋ค์์ ์๊ณ ์์ต๋๋ค.
- PXE๋ฅผ ํตํด ์๋ฒ๋ฅผ ๋ถํ ํ๋ ๋ฐฉ๋ฒ
- ์์ ์ ์คํฌ๋ฆฝํธ๋ก ์ ์ด๊ถ์ ์ ์กํ๋ ๋ฐฉ๋ฒ.
๊ณ์ํฉ์๋ค. ๋ค์ ์ง๋ฌธ์ด ๊ด๋ จ์ฑ์ด ์๊ฒ ๋์์ต๋๋ค.
- ์ฐ๋ฆฌ๊ฐ ์ค๋นํ๊ณ ์๋ ์๋ฒ๋ฅผ ์ด๋ป๊ฒ ์๋ณํ๋์?
- ์ด๋ค ์ ํธ๋ฆฌํฐ์ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
- ํน์ ์๋ฒ์ ๋ํ ์ค์ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๊ฐ ์ค๋นํ๊ณ ์๋ ์๋ฒ๋ฅผ ์ด๋ป๊ฒ ์๋ณํ๋์?
๊ฐ๋จํฉ๋๋ค - DMI:
dmidecode โs system-product-name
dmidecode โs system-manufacturer
dmidecode โs system-serial-number
๊ณต๊ธ์ ์ฒด, ๋ชจ๋ธ, ์ผ๋ จ๋ฒํธ ๋ฑ ํ์ํ ๋ชจ๋ ๊ฒ์ด ์ฌ๊ธฐ์ ์์ต๋๋ค. ์ด ์ ๋ณด๊ฐ ๋ชจ๋ ์๋ฒ์ ์๋์ง ํ์คํ์ง ์์ ๊ฒฝ์ฐ MAC ์ฃผ์๋ก ์๋ณํ ์ ์์ต๋๋ค. ๋๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ฒ ๊ณต๊ธ์ ์ฒด๊ฐ ๋ค๋ฅด๊ณ ์ผ๋ถ ๋ชจ๋ธ์์๋ ์ผ๋ จ ๋ฒํธ์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค.
์์ ๋ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค์น ์๋ฒ์์ ๋คํธ์ํฌ ํด๋๊ฐ ๋ง์ดํธ๋๊ณ ํ์ํ ๋ชจ๋ ๊ฒ(์ ํธ๋ฆฌํฐ, ํ์จ์ด ๋ฑ)์ด ๋ก๋๋ฉ๋๋ค.
์ด๋ค ์ ํธ๋ฆฌํฐ์ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ผ๋ถ ์ ์กฐ์ ์ฒด์ Linux์ฉ ์ ํธ๋ฆฌํฐ๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค. ๋ชจ๋ ์ ํธ๋ฆฌํฐ๋ ๊ณต๊ธ์ ์ฒด์ ๊ณต์ ์น์ฌ์ดํธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์จ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ช
ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํจํค์ง๋ ์คํ ํ์ผ ํํ๋ก ์ ๊ณต๋ฉ๋๋ค. ์คํ ํ์ผ์ ํ์จ์ด ์
๋ฐ์ดํธ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ๊ณ ๋ฐํ ์ฝ๋๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
BIOS ๋ฐ IPMI๋ ์ผ๋ฐ์ ์ผ๋ก ํ ํ๋ฆฟ์ ํตํด ๊ตฌ์ฑ๋ฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋ค์ด๋ก๋ํ๊ธฐ ์ ์ ํ ํ๋ฆฟ์ ํธ์งํ ์ ์์ต๋๋ค.
์ผ๋ถ ๊ณต๊ธ์ ์ฒด์ RAID ์ ํธ๋ฆฌํฐ๋ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ตฌ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
RAID ์ค์ ์ ์ฐจ๋ ๋๋ถ๋ถ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ์ฌ ๊ตฌ์ฑ์ ์์ฒญํฉ๋๋ค.
- ์ด๋ฏธ ๋ ผ๋ฆฌ ๋ฐฐ์ด์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ง์๋๋ค.
- ์ด๋ค ๋ฌผ๋ฆฌ ๋์คํฌ๊ฐ ์๊ณ ๋ช ๊ฐ๊ฐ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ์ ๋ ผ๋ฆฌ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋ฉ๋๋ค.
ํน์ ์๋ฒ์ ๋ํ ์ค์ ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
๋ชจ๋ ์๋ฒ์ ์ค์ ์ด ์ค์น ์๋ฒ์ ์ ์ฅ๋๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ง๋ฌธ์ ๋๋ตํ๋ ค๋ฉด ๋จผ์ ์ค์ ์ ์ค์น ์๋ฒ๋ก ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค.
์ฒ์์๋ ํ ์คํธ ํ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค. (๋์ค์ ์ค์ ์ ์ก์ ์ํ ๋์ฒด ๋ฐฉ๋ฒ์ผ๋ก ํ ์คํธ ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.)
์ค์น ์๋ฒ์์ ํ ์คํธ ํ์ผ์ "๊ณต์ "ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ mount.sh ์คํฌ๋ฆฝํธ์ ๋ง์ดํธ๋ฅผ ์ถ๊ฐํ์ธ์.
์๋ฅผ ๋ค์ด ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<์ผ๋ จ๋ฒํธ> <ํธ์คํธ ์ด๋ฆ> <์๋ธ๋ท>
์ด ์ค์ ์์ง๋์ด๊ฐ ์์ ๊ธฐ๊ณ์์ ํ์ผ๋ก ์ ์ก๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๋ฒ๋ฅผ ์ค์ ํ ๋ ํน์ ์๋ฒ์ ๋ํ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ผ์์ ์ฝ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฅ๊ธฐ์ ์ผ๋ก๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ์ค์น์ ์ค์ , ์ํ ๋ฐ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฌผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ผ๋ฉฐ ์ค์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ ์ก๋๋ ํด๋ผ์ด์ธํธ ๋ถ๋ถ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ํ ์คํธ ํ์ผ์ ๋นํด ๊ตฌํํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ง๋ง ์ค์ ๋ก ๋ชจ๋ ๊ฒ์ด ๋ณด์ด๋ ๊ฒ๋ง ํผ ์ด๋ ต์ง๋ ์์ต๋๋ค. ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ง์ ์ ์กํ๋ ์ต์ ๋ฒ์ ์ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก๋ ๋ฌด๋ฃ ๋ชจ๋(๋ณด๊ณ ์, ๋ผ๋ฒจ ์ธ์, ์๋ฆผ ์ ์ก ๋ฑ ๋ ์ค๋ฅด๋ ๊ธฐ๋ฅ)์์ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ๊ฐ์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ ์์ฒญ์ ํ๊ณ ์๋ฒ ์ผ๋ จ ๋ฒํธ๋ฅผ ์ง์ ํ๋ฉด ์๋ฒ ๊ตฌ์ฑ์ ํ์ํ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค.
๊ฒ๋ค๊ฐ ํ ์คํธ ํ์ผ์ ๊ฒฝ์ฐ์ฒ๋ผ ๋์ ์ก์ธ์ค๋ฅผ ์ํด ์ ๊ธ ์ฅ์น๋ฅผ ๋ง๋ จํ ํ์๋ ์์ต๋๋ค.
๋ชจ๋ ๋จ๊ณ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์ฑ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๊ณ ์ค๋น ๋จ๊ณ์ ์ด๋ฒคํธ ๋ฐ ํ๋๊ทธ๋ฅผ ํตํด ์ค์น ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค.
์ด์ ์ฐ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๋ค:
- PXE๋ฅผ ํตํด ์๋ฒ๋ฅผ ๋ถํ ํฉ๋๋ค.
- ์ ์ด๊ถ์ ์คํฌ๋ฆฝํธ๋ก ์ ์กํฉ๋๋ค.
- ์ผ๋ จ ๋ฒํธ๋ก ์ค๋นํด์ผ ํ๋ ์๋ฒ๋ฅผ ์๋ณํฉ๋๋ค.
- ์ ์ ํ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ๋ถ๋ถ์ ์ฌ์ฉํ์ฌ ์ค์ ์ ์ค์น ์๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ ์กํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์์๋์ต๋๋ค:
- ์ค์น๋ ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ํ์ํ ์ค์ ์ ๋ฐ์ต๋๋ค.
- ๋ชจ๋ ์ค๋น ์งํ ์ํฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(๋ก๊ทธ, ์ด๋ฒคํธ, ๋จ๊ณ ํ๋๊ทธ)์ ๊ธฐ๋ก๋ฉ๋๋ค.
์ค์นํ๋ ๋ค์ํ ์ ํ์ ์ํํธ์จ์ด๋ ์ด๋ป์ต๋๊น? ํ์ดํผ๋ฐ์ด์ ๋ฅผ ์ค์นํ๊ณ , VM์ ๋ณต์ฌํ๊ณ , ๋ชจ๋ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
ํ์ผ ์์คํ ์ด๋ฏธ์ง(Linux)๋ฅผ ํ๋์จ์ด์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
- ๋ชจ๋ ์๋ฒ ๊ตฌ์ฑ ์์๋ฅผ ์ค์ ํ ํ ์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
- grub ๋ถํธ๋ก๋๋ฅผ ์ค์นํฉ๋๋ค.
- ์ฐ๋ฆฌ๋ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋ฃจํธ๋ก ์ค์ ํ๊ณ ๊ตฌ์ฑํฉ๋๋ค.
OS ์ค์น ํ๋ก๊ทธ๋จ์ผ๋ก ์ ์ด๊ถ์ ์ ์กํ๋ ๋ฐฉ๋ฒ(ESXi๋ฅผ ์๋ก ์ฌ์ฉ)
- ์๋ ์๋ต ํ์ผ(kickstart)์ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฝํธ์์ ํ์ดํผ๋ฐ์ด์ ์ค์น ํ๋ก๊ทธ๋จ์ผ๋ก ์ ์ด๊ถ ์ด์ ์ ๊ตฌ์ฑํฉ๋๋ค.
- ๋์คํฌ์ ํ์ฌ ํํฐ์ ์ ์ญ์ ํฉ๋๋ค.
- 500MB ํฌ๊ธฐ์ ํํฐ์ ์ ๋ง๋ญ๋๋ค.
- ๋ถํ ๊ฐ๋ฅ์ผ๋ก ํ์ํฉ๋๋ค.
- 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 ํ์ดํผ๋ฐ์ด์ ๋ฐฐํฌ, ๊ฐ์ ๋จธ์ ๊ตฌ์ฑ ๋ฑ ๋ค์ํ ์ ํ์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค(๋ชจ๋ ์๋์ผ๋ก).
์ฐ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์์๋์ต๋๋ค:
- ์ค์น๋ ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ํ์ํ ์ค์ ์ ๋ฐ์ต๋๋ค.
- ๋ชจ๋ ์ค๋น ์งํ ์ํฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(๋ก๊ทธ, ์ด๋ฒคํธ, ๋จ๊ณ ํ๋๊ทธ)์ ๊ธฐ๋ก๋ฉ๋๋ค.
ํ๋จ ๋ผ์ธ :
์ ๋ ์ด ์๋ฃจ์ ์ ๋ ์ฐฝ์ฑ์ ์ ์ฐ์ฑ, ๋จ์์ฑ, ๊ธฐ๋ฅ ๋ฐ ๋ค์์ฑ์ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
์ฌ๋ฌ๋ถ์ ์๊ฐ์ ๋๊ธ๋ก ์ ์ด์ฃผ์ธ์.
์ถ์ฒ : habr.com