ããã«ã¡ã¯ãç§ã¯ããã¹ã§ããç§ã®æŽ»ååéã® 5 ã€ã¯ãXXNUMX ã§ã®ã€ã³ãã©ã¹ãã©ã¯ã㣠ãœãªã¥ãŒã·ã§ã³ã®éçºã§ãã ä»æ¥ã¯ãå ¬éãããŠããããŒã«ã«åºã¥ããŠèªåãµãŒããŒæºåã·ã¹ãã ãå±éããæ¹æ³ãå ±æããããšæããŸãã ç§ã®æèŠã§ã¯ãããã¯èå³æ·±ããã·ã³ãã«ã§æè»ãªãœãªã¥ãŒã·ã§ã³ã§ãã
æºåãšã¯ãæ°ãããµãŒããŒãç®±ããåºããŠãOS ãåããå®å
šã«æ§æããããµãŒããŒã«å€ããããšãæå³ããŸãã Linux ãŸã㯠ESXi ãã€ããŒãã€ã¶ãŒã䜿çšããŸã (Windows ãµãŒããŒã®å±éã«ã€ããŠã¯ããã®èšäºã§ã¯èª¬æããŸãã)ã
æ¡ä»¶:
- ãµãŒã㌠â æ§æããå¿ èŠããããµãŒããŒã
- ã€ã³ã¹ããŒã« ãµãŒããŒã¯ãæºåããã»ã¹å šäœããããã¯ãŒã¯çµç±ã§æäŸããã¡ã€ã³ ãµãŒããŒã§ãã
ãªãèªååãå¿ èŠãªã®ã§ãããã?
ããšãã°ããµãŒããŒããŒããã倧èŠæš¡ã«æºåãããšããã¿ã¹ã¯ããããšããŸã (ããŒã¯æã«ã¯ 30 æ¥ããã XNUMX å°)ã ããŸããŸãªã¡ãŒã«ãŒãã¢ãã«ã®ãµãŒããŒãããŸããŸãªãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãã€ã³ã¹ããŒã«ãããŠããå¯èœæ§ãããããã€ããŒãã€ã¶ãŒãåããŠããå ŽåãšåããŠããªãå ŽåããããŸãã
ã»ããã¢ãã ããã»ã¹ã«å«ãŸããæäœ (èªååãªã):
- ããŒããŒããããŠã¹ãã¢ãã¿ãŒããµãŒããŒã«æ¥ç¶ããŸãã
- 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 ã® XNUMX ã€ã®ãã¡ã€ã«ã®ã¿ã§æ§æããããå¿ èŠãªãŠãŒãã£ãªãã£ããã¹ãŠåãããæå°éã§ãããªããæ¬æ Œçãªã©ã€ã 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 ã¹ã¯ãªããã«ç§»ãäºå®ã ãšä»®å®ããŸãã
autorun ã« 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=ãã¹ã¿ãŒã€ã³ã¹ããŒã«.sh
ã©ãã«ããŒã«ããã -shell
ã«ãŒãã«...
è¿œå ...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 ãªã©ã®ãã€ããŒãã€ã¶ãŒ ã€ã³ã¹ããŒã©ãŒã«å¶åŸ¡ã転é)
- merged-install (ã€ã¡ãŒãžã®è§£åãããã«éå§)
ä»ã§ã¯æ¬¡ã®ããšãåãããŸããã
- PXE çµç±ã§ãµãŒããŒãèµ·åããæ¹æ³ã
- ç¬èªã®ã¹ã¯ãªããã«å¶åŸ¡ã移ãæ¹æ³ã
ç¶ããŸãããã 次ã®è³ªåãé¢é£ããããã«ãªããŸããã
- æºåããŠãããµãŒããŒãç¹å®ããã«ã¯ã©ãããã°ããã§ãã?
- ã©ã®ãããªãŠãŒãã£ãªãã£ãšãµãŒããŒã®èšå®æ¹æ³ãæããŠãã ããã
- ç¹å®ã®ãµãŒããŒã®èšå®ãååŸããã«ã¯ã©ãããã°ããã§ãã?
æºåããŠãããµãŒããŒãç¹å®ããã«ã¯ã©ãããã°ããã§ãã?
ããã¯ç°¡åã§ã - DMI:
dmidecode âs system-product-name
dmidecode âs system-manufacturer
dmidecode âs system-serial-number
ãã³ããŒãã¢ãã«ãã·ãªã¢ã«çªå·ãªã©ãå¿ èŠãªãã®ã¯ãã¹ãŠããã«ãããŸãã ãã®æ å ±ããã¹ãŠã®ãµãŒããŒã«ååšãããã©ããããããªãå Žåã¯ãMAC ã¢ãã¬ã¹ã§ãµãŒããŒãèå¥ã§ããŸãã ãŸãã¯ããµãŒããŒã®ãã³ããŒãç°ãªããäžéšã®ã¢ãã«ã§ã¯ã·ãªã¢ã«çªå·ã«é¢ããæ å ±ããŸã£ãããªãå Žåã¯ãäž¡æ¹ã®æ¹æ³ãåæã«å®è¡ããŸãã
åä¿¡ããæ å ±ã«åºã¥ããŠããããã¯ãŒã¯ ãã©ã«ããŒãã€ã³ã¹ããŒã« ãµãŒããŒããããŠã³ããããå¿ èŠãªãã® (ãŠãŒãã£ãªãã£ããã¡ãŒã ãŠã§ã¢ãªã©) ããã¹ãŠããŒããããŸãã
ã©ã®ãããªãŠãŒãã£ãªãã£ãšãµãŒããŒã®èšå®æ¹æ³ãæããŠãã ããã
äžéšã®ã¡ãŒã«ãŒåãã« Linux çšã®ãŠãŒãã£ãªãã£ãæäŸããäºå®ã§ãã ãã¹ãŠã®ãŠãŒãã£ãªãã£ã¯ãã³ããŒã®å ¬åŒ Web ãµã€ãããå ¥æã§ããŸãã
ãã¡ãŒã ãŠã§ã¢ãããã°ããã¹ãŠãæ確ã«ãªããšæããŸãã ãããã¯éåžžãããã±ãŒãžåãããå®è¡å¯èœãã¡ã€ã«ã®åœ¢åŒã§æäŸãããŸãã å®è¡å¯èœãã¡ã€ã«ã¯ãã¡ãŒã ãŠã§ã¢ã®æŽæ°ããã»ã¹ãå¶åŸ¡ãããªã¿ãŒã³ ã³ãŒããå ±åããŸãã
BIOS ãš IPMI ã¯éåžžããã³ãã¬ãŒããéããŠæ§æãããŸãã å¿ èŠã«å¿ããŠãããŠã³ããŒãããåã«ãã³ãã¬ãŒããç·šéã§ããŸãã
äžéšã®ãã³ããŒã® RAID ãŠãŒãã£ãªãã£ã¯ããã³ãã¬ãŒãã䜿çšããŠæ§æããããšãã§ããŸãã ããã§ãªãå Žåã¯ãæ§æã¹ã¯ãªãããäœæããå¿ èŠããããŸãã
RAID ãèšå®ããæé ã¯ãã»ãšãã©ã®å Žå次ã®ãšããã§ãã
- çŸåšã®æ§æããªã¯ãšã¹ãããŸãã
- ãã§ã«è«çé åãååšããå Žåã¯ãããããæ¶å»ããŸãã
- ã©ã®ãããªç©çãã£ã¹ã¯ãååšãããã®æ°ãèŠãŠã¿ãŸãããã
- æ°ããè«çé åãäœæããŸãã ãšã©ãŒãçºçããå Žåã¯ããã»ã¹ãäžæããŸãã
ç¹å®ã®ãµãŒããŒã®èšå®ãååŸããã«ã¯ã©ãããã°ããã§ãã?
ãã¹ãŠã®ãµãŒããŒã®èšå®ãã€ã³ã¹ããŒã« ãµãŒããŒã«ä¿åããããšä»®å®ããŸãã ãã®å Žåãç§ãã¡ã®è³ªåã«çããããã«ã¯ããŸãèšå®ãã€ã³ã¹ããŒã« ãµãŒããŒã«è»¢éããæ¹æ³ã決å®ããå¿ èŠããããŸãã
æåã¯ããã¹ã ãã¡ã€ã«ã§ååã§ãã (å°æ¥çã«ã¯ãèšå®ã転éããããã®ãã©ãŒã«ããã¯æ¹æ³ãšããŠããã¹ã ãã¡ã€ã«ã䜿çšããããšãå¿ èŠã«ãªãå ŽåããããŸãã)
ã€ã³ã¹ããŒã«ãµãŒããŒäžã®ããã¹ããã¡ã€ã«ããå ±æãã§ããŸãã ãããŠããã®ããŠã³ãã mount.sh ã¹ã¯ãªããã«è¿œå ããŸãã
ããšãã°ãè¡ã¯æ¬¡ã®ããã«ãªããŸãã
<ã·ãªã¢ã«çªå·> <ãã¹ãå> <ãµãããã>
ãããã®è¡ã¯ããšã³ãžãã¢ã«ãã£ãŠäœæ¥ãã·ã³ãããã¡ã€ã«ã«è»¢éãããŸãã ãããŠããµãŒããŒãã»ããã¢ãããããšãã«ãç¹å®ã®ãµãŒããŒã®ãã©ã¡ãŒã¿ãŒããã¡ã€ã«ããèªã¿åãããŸãã
ãã ããé·æçã«ã¯ããµãŒã㌠ã€ã³ã¹ããŒã«ã®èšå®ãç¶æ ããã°ãä¿åããããã«ããŒã¿ããŒã¹ã䜿çšããæ¹ãè¯ãã§ãããã
ãã¡ãããããŒã¿ããŒã¹ã ãã§ã¯ååã§ã¯ãªããã©ã®èšå®ãããŒã¿ããŒã¹ã«è»¢éããããèæ ®ããŠã¯ã©ã€ã¢ã³ã ããŒããäœæããå¿ èŠããããŸãã ããã¯ããã¹ã ãã¡ã€ã«ã«æ¯ã¹ãŠå®è£ ãé£ãããªããŸãããå®éã«ã¯ããã¹ãŠãæã£ãã»ã©é£ãããããŸããã ããŒã¿ãããŒã¿ããŒã¹ã«è»¢éããã ãã®æå°éã®ããŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ããèªåã§äœæããããšã¯ååã«å¯èœã§ãã ãããŠå°æ¥çã«ã¯ãããªãŒã¢ãŒãã§ã®ã¯ã©ã€ã¢ã³ãããã°ã©ã ïŒã¬ããŒããã©ãã«ã®å°å·ãéç¥ã®éä¿¡ãªã©æãã€ããã®ïŒãæ¹åã§ããããã«ãªãäºå®ã§ãã
ããŒã¿ããŒã¹ã«ç¹å®ã®ãªã¯ãšã¹ããéä¿¡ãããµãŒããŒã®ã·ãªã¢ã«çªå·ãæå®ããããšã§ããµãŒããŒã®æ§æã«å¿ èŠãªãã©ã¡ãŒã¿ãåãåããŸãã
ããã«ãããã¹ã ãã¡ã€ã«ã®å Žåã®ããã«ãåæã¢ã¯ã»ã¹ã®ããã«ããã¯ãèããå¿ èŠããããŸããã
ãã¹ãŠã®æ®µéã§æ§æãã°ãããŒã¿ããŒã¹ã«æžã蟌ã¿ãæºå段éã®ã€ãã³ããšãã©ã°ãéããŠã€ã³ã¹ããŒã« ããã»ã¹ãå¶åŸ¡ã§ããŸãã
ããã§ã次ã®æ¹æ³ãããããŸããã
- PXE çµç±ã§ãµãŒããŒãèµ·åããŸãã
- å¶åŸ¡ãã¹ã¯ãªããã«ç§»ããŸãã
- æºåãå¿ èŠãªãµãŒããŒãã·ãªã¢ã«çªå·ã§ç¹å®ããŸãã
- é©åãªãŠãŒãã£ãªãã£ã䜿çšããŠãµãŒããŒãæ§æããŸãã
- ã¯ã©ã€ã¢ã³ãéšåã䜿çšããŠèšå®ãã€ã³ã¹ããŒã«ãµãŒããŒããŒã¿ããŒã¹ã«è»¢éããŸãã
ãã®æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
- ОМÑÑаллОÑÑеЌÑй ÑеÑÐ²ÐµÑ Ð¿ÐŸÐ»ÑÑÐ°ÐµÑ ÐœÐµÐŸÐ±Ñ ÐŸÐŽÐžÐŒÑе МаÑÑÑПйкО Оз ÐÐ;
- ãã¹ãŠã®æºåã®é²è¡ç¶æ³ã¯ããŒã¿ããŒã¹ (ãã°ãã€ãã³ããã¹ããŒãž ãã©ã°) ã«èšé²ãããŸãã
ã€ã³ã¹ããŒã«ããããŸããŸãªçš®é¡ã®ãœãããŠã§ã¢ã«ã€ããŠã¯ã©ãã§ãã? ãã€ããŒãã€ã¶ãŒãã€ã³ã¹ããŒã«ããVM ãã³ããŒããŠããã¹ãŠãæ§æããã«ã¯ã©ãããã°ããã§ãã?
ãã¡ã€ã« ã·ã¹ãã ã€ã¡ãŒãž (Linux) ãããŒããŠã§ã¢ã«å±éããå Žåããã¹ãŠãéåžžã«ç°¡åã§ãã
- ãã¹ãŠã®ãµãŒã㌠ã³ã³ããŒãã³ããã»ããã¢ããããåŸãã€ã¡ãŒãžãå±éããŸãã
- grub ããŒãããŒããŒãã€ã³ã¹ããŒã«ããŸãã
- chroot ãå®è¡ããŠãå¿ èŠãªãã®ããã¹ãŠèšå®ããŸãã
OS ã€ã³ã¹ããŒã©ãŒã«å¶åŸ¡ã移ãæ¹æ³ (äŸãšã㊠ESXi ã䜿çš)ã
- èªåå¿çãã¡ã€ã« (ããã¯ã¹ã¿ãŒã) ã䜿çšããŠãã¹ã¯ãªãããããã€ããŒãã€ã¶ãŒ ã€ã³ã¹ããŒã©ãŒãžã®å¶åŸ¡ã®ç§»è¡ãæŽçããŸãã
- ãã£ã¹ã¯äžã®çŸåšã®ããŒãã£ã·ã§ã³ãåé€ããŸãã
- ãµã€ãºã 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 㯠XNUMX åã®ã¿)ã
ããã§ã次ã®æ¹æ³ãããããŸããã
- PXE çµç±ã§ãµãŒããŒãèµ·åããŸãã
- å¶åŸ¡ãã¹ã¯ãªããã«ç§»ããŸãã
- æºåãå¿ èŠãªãµãŒããŒãã·ãªã¢ã«çªå·ã§ç¹å®ããŸãã
- é©åãªãŠãŒãã£ãªãã£ã䜿çšããŠãµãŒããŒãæ§æããŸãã
- ã¯ã©ã€ã¢ã³ãéšåã䜿çšããŠèšå®ãã€ã³ã¹ããŒã«ãµãŒããŒããŒã¿ããŒã¹ã«è»¢éããŸãã
- esxi ãã€ããŒãã€ã¶ãŒã®å±éãä»®æ³ãã·ã³ã®æ§æ (ãã¹ãŠèªå) ãªã©ãããŸããŸãªçš®é¡ã®ãœãããŠã§ã¢ãæ§æããŸãã
ãã®æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
- ОМÑÑаллОÑÑеЌÑй ÑеÑÐ²ÐµÑ Ð¿ÐŸÐ»ÑÑÐ°ÐµÑ ÐœÐµÐŸÐ±Ñ ÐŸÐŽÐžÐŒÑе МаÑÑÑПйкО Оз ÐÐ;
- ãã¹ãŠã®æºåã®é²è¡ç¶æ³ã¯ããŒã¿ããŒã¹ (ãã°ãã€ãã³ããã¹ããŒãž ãã©ã°) ã«èšé²ãããŸãã
ããã ã©ã€ã³ïŒ
ãã®ãœãªã¥ãŒã·ã§ã³ã®ç¬èªæ§ã¯ããã®æè»æ§ãã·ã³ãã«ããæ©èœãå€çšéæ§ã«ãããšæããŸãã
ããªãã®èããã³ã¡ã³ãã«æžããŠãã ããã
åºæïŒ habr.com