நீங்களே செய்-உலோகம் வழங்குதல், அல்லது புதிதாக சர்வர்களைத் தானாகத் தயாரித்தல்

வணக்கம், நான் டெனிஸ் மற்றும் எனது செயல்பாடுகளில் ஒன்று X5 இல் உள்கட்டமைப்பு தீர்வுகளை மேம்படுத்துவதாகும். பொதுவில் கிடைக்கும் கருவிகளின் அடிப்படையில் ஒரு தானியங்கி சர்வர் தயாரிப்பு முறையை நீங்கள் எவ்வாறு பயன்படுத்தலாம் என்பதை இன்று உங்களுடன் பகிர்ந்து கொள்ள விரும்புகிறேன். என் கருத்துப்படி, இது ஒரு சுவாரஸ்யமான, எளிமையான மற்றும் நெகிழ்வான தீர்வு.

நீங்களே செய்-உலோகம் வழங்குதல், அல்லது புதிதாக சர்வர்களைத் தானாகத் தயாரித்தல்

தயாரிப்பதன் மூலம் நாங்கள் சொல்கிறோம்: பெட்டியிலிருந்து ஒரு புதிய சேவையகத்தை OS உடன் முழுமையாக உள்ளமைக்கப்பட்ட சேவையகமாக மாற்றவும். லினக்ஸ் அல்லது ESXi ஹைப்பர்வைசருடன் (விண்டோஸ் சேவையகங்களின் வரிசைப்படுத்தல் இந்த கட்டுரையில் விவாதிக்கப்படவில்லை).

அடிப்படையில்:

  • சேவையகங்கள் - கட்டமைக்கப்பட வேண்டிய சேவையகங்கள்.
  • நிறுவல் சேவையகம் நெட்வொர்க்கில் முழு தயாரிப்பு செயல்முறையையும் வழங்கும் முக்கிய சேவையகம்.

ஆட்டோமேஷன் ஏன் தேவைப்படுகிறது?

ஒரு பணி உள்ளது என்று சொல்லலாம்: புதிதாக சேவையகங்களை பெருமளவில் தயாரிப்பது, உச்சத்தில் - ஒரு நாளைக்கு 30. வெவ்வேறு உற்பத்தியாளர்கள் மற்றும் மாதிரிகளின் சேவையகங்கள், வெவ்வேறு இயக்க முறைமைகள் அவற்றில் நிறுவப்பட்டிருக்கலாம், மேலும் ஹைப்பர்வைசர் இல்லாமல் இருக்கலாம்.

அமைவு செயல்பாட்டில் என்ன செயல்பாடுகள் சேர்க்கப்பட்டுள்ளன (தானியக்கம் இல்லாமல்):

  • விசைப்பலகை, சுட்டி, மானிட்டரை சேவையகத்துடன் இணைக்கவும்;
  • BIOS, RAID, IPMI ஐ கட்டமைக்கவும்;
  • கூறு நிலைபொருளைப் புதுப்பிக்கவும்;
  • ஒரு கோப்பு முறைமை படத்தை வரிசைப்படுத்தவும் (அல்லது ஹைப்பர்வைசரை நிறுவி மெய்நிகர் இயந்திரங்களை நகலெடுக்கவும்);

குறிப்பு. மாற்றாக, தானாக பதில் கோப்புடன் நிறுவுவதன் மூலம் OS வரிசைப்படுத்தல் சாத்தியமாகும். ஆனால் இது கட்டுரையில் விவாதிக்கப்படாது. இந்த செயல்பாட்டைச் சேர்ப்பது கடினம் அல்ல என்பதை நீங்கள் கீழே காணலாம்.

  • OS அளவுருக்களை உள்ளமைக்கவும் (ஹோஸ்ட்பெயர், ஐபி, முதலியன).

இந்த அணுகுமுறையுடன், ஒவ்வொரு சேவையகத்திலும் ஒரே அமைப்புகள் தொடர்ச்சியாகச் செய்யப்படுகின்றன. அத்தகைய வேலையின் செயல்திறன் மிகக் குறைவு.

ஆட்டோமேஷனின் சாராம்சம் சர்வர் தயாரிப்பு செயல்முறையிலிருந்து மனித பங்கேற்பை அகற்றுவதாகும். முடிந்த அளவுக்கு.

ஆட்டோமேஷன் செயல்பாடுகளுக்கு இடையே வேலையில்லா நேரத்தை குறைக்கிறது மற்றும் ஒரே நேரத்தில் பல சேவையகங்களை வழங்குவதை சாத்தியமாக்குகிறது. மனித காரணிகளால் பிழைகள் ஏற்படுவதற்கான வாய்ப்பும் வெகுவாகக் குறைக்கப்படுகிறது.

நீங்களே செய்-உலோகம் வழங்குதல், அல்லது புதிதாக சர்வர்களைத் தானாகத் தயாரித்தல்

சேவையகங்கள் எவ்வாறு தானாக கட்டமைக்கப்படுகின்றன?

அனைத்து நிலைகளையும் விரிவாக பகுப்பாய்வு செய்வோம்.

நீங்கள் PXE நிறுவல் சேவையகமாக பயன்படுத்தும் லினக்ஸ் சேவையகம் உள்ளது. சேவைகள் நிறுவப்பட்டு அதில் கட்டமைக்கப்பட்டுள்ளன: DHCP, TFTP.

எனவே, நாங்கள் PXE வழியாக சேவையகத்தை (கட்டமைக்க வேண்டும்) துவக்குகிறோம். இது எவ்வாறு செயல்படுகிறது என்பதை நினைவில் கொள்வோம்:

  • சர்வரில் நெட்வொர்க் பூட் தேர்ந்தெடுக்கப்பட்டது.
  • சேவையகம் பிணைய அட்டையின் PXE-ROM ஐ ஏற்றுகிறது மற்றும் பிணைய முகவரியைப் பெற DHCP வழியாக நிறுவல் சேவையகத்தைத் தொடர்பு கொள்கிறது.
  • DHCP நிறுவல் சேவையகம் ஒரு முகவரியையும், PXE வழியாக மேலும் பதிவிறக்குவதற்கான வழிமுறைகளையும் வழங்குகிறது.
  • சேவையகம் PXE வழியாக நிறுவல் சேவையகத்திலிருந்து பிணைய துவக்க ஏற்றியை ஏற்றுகிறது, மேலும் ஏற்றுதல் PXE உள்ளமைவு கோப்பின் படி நிகழ்கிறது.
  • பெறப்பட்ட அளவுருக்கள் (கர்னல், initramfs, மவுண்ட் புள்ளிகள், squashfs படம், முதலியன) அடிப்படையில் துவக்கம் நிகழ்கிறது.

குறிப்பு. பயாஸ் பயன்முறையில் 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 ஒரு இடைநிலை லினக்ஸ் படமாகும், இதன் உதவியுடன் சேவையகத்தின் முக்கிய தயாரிப்பு மற்றும் கட்டமைப்பு நடைபெறும்.

நீங்கள் பார்க்க முடியும் என, பூட்லோடர் பல அளவுருக்களை கர்னலுக்கு அனுப்புகிறது. இந்த அளவுருக்களில் சில கர்னலால் பயன்படுத்தப்படுகின்றன. மேலும் சிலவற்றை நம் சொந்த நோக்கங்களுக்காகப் பயன்படுத்தலாம். இது பின்னர் விவாதிக்கப்படும், ஆனால் இப்போது நீங்கள் அனைத்து அனுப்பிய அளவுருக்கள் /proc/cmdline வழியாக இடைநிலை லினக்ஸ் படத்தில் கிடைக்கும் என்பதை நினைவில் கொள்ளலாம்.

கர்னல் மற்றும் initramfகளை நான் எங்கே பெறுவது?
ஒரு அடிப்படையாக, நீங்கள் எந்த லினக்ஸ் விநியோகத்தையும் தேர்வு செய்யலாம். தேர்ந்தெடுக்கும்போது நாம் என்ன கவனம் செலுத்துகிறோம்:

  • துவக்க படம் உலகளாவியதாக இருக்க வேண்டும் (இயக்கிகளின் கிடைக்கும் தன்மை, கூடுதல் பயன்பாடுகளை நிறுவும் திறன்);
  • பெரும்பாலும், நீங்கள் 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

எனவே ஏற்றப்பட வேண்டிய கர்னல் மற்றும் initramfகளை நாங்கள் குறிப்பிட்டுள்ளோம். இதன் விளைவாக, இந்த கட்டத்தில், இடைநிலை லினக்ஸ் படத்தை PXE வழியாக ஏற்றுவதன் மூலம், OS கன்சோலைப் பெறுவோம்.

சிறந்தது, ஆனால் இப்போது நாம் கட்டுப்பாட்டை எங்கள் "ஆட்டோமேஷனுக்கு" மாற்ற வேண்டும்.

இப்படியும் செய்யலாம்.

படத்தை ஏற்றிய பிறகு கட்டுப்பாட்டை mount.sh ஸ்கிரிப்ட்டுக்கு மாற்ற திட்டமிட்டுள்ளோம் என்று வைத்துக்கொள்வோம்.
autorun இல் mount.sh ஸ்கிரிப்டை சேர்ப்போம். இதைச் செய்ய, நீங்கள் 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=) பகுப்பாய்வு செய்து தேவையான நிரல்/ஸ்கிரிப்டை துவக்குகிறது.

லேபிள் கருவித்தொகுப்பு-கார்
கர்னல்...
append... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

லேபிள் கருவித்தொகுப்பு-ஓடு
கர்னல்...
append... nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

நீங்களே செய்-உலோகம் வழங்குதல், அல்லது புதிதாக சர்வர்களைத் தானாகத் தயாரித்தல்

இங்கே இடதுபுறத்தில் PXE மெனு உள்ளது, வலதுபுறத்தில் கட்டுப்பாட்டு பரிமாற்ற வரைபடம் உள்ளது.

கட்டுப்பாட்டை மாற்றுவதை நாங்கள் கண்டுபிடித்தோம். PXE மெனுவின் தேர்வைப் பொறுத்து, தானாக உள்ளமைவு ஸ்கிரிப்ட் அல்லது பிழைத்திருத்த கன்சோல் தொடங்கப்படும்.

தானியங்கி உள்ளமைவின் விஷயத்தில், தேவையான கோப்பகங்கள் நிறுவல் சேவையகத்திலிருந்து ஏற்றப்படுகின்றன, இதில் பின்வருவன அடங்கும்:

  • ஸ்கிரிப்டுகள்;
  • பல்வேறு சேவையகங்களுக்கான BIOS/UEFI வார்ப்புருக்கள் சேமிக்கப்பட்டன;
  • நிலைபொருள்;
  • சேவையக பயன்பாடுகள்;
  • பதிவுகள்

அடுத்து, mount.sh ஸ்கிரிப்ட் ஸ்கிரிப்ட் கோப்பகத்தில் இருந்து master-install.sh ஸ்கிரிப்ட்டுக்கு கட்டுப்பாட்டை மாற்றுகிறது.

ஸ்கிரிப்ட் மரம் (அவை தொடங்கப்பட்ட வரிசை) இது போல் தெரிகிறது:

  • முதன்மை நிறுவல்
  • பங்கு செயல்பாடுகள் (பகிரப்பட்ட செயல்பாடுகள்)
  • தகவல் (தகவல் வெளியீடு)
  • மாதிரிகள் (சேவையக மாதிரியின் அடிப்படையில் நிறுவல் அளவுருக்களை அமைத்தல்)
  • தயார்_பயன்பாட்டுகள் (தேவையான பயன்பாடுகளை நிறுவுதல்)
  • fwupdate (நிலைபொருள் புதுப்பிப்பு)
  • ஆய்வு (தொடக்க நோயறிதல்)
  • 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 முகவரி மூலம் அவற்றை நீங்கள் அடையாளம் காணலாம். அல்லது ஒரே நேரத்தில் இரண்டு வழிகளிலும், சர்வர் விற்பனையாளர்கள் வேறுபட்டிருந்தால் மற்றும் சில மாடல்களில் வரிசை எண் பற்றிய எந்த தகவலும் இல்லை.

பெறப்பட்ட தகவலின் அடிப்படையில், நிறுவல் சேவையகத்திலிருந்து பிணைய கோப்புறைகள் ஏற்றப்படுகின்றன மற்றும் தேவையான அனைத்தும் ஏற்றப்படுகின்றன (பயன்பாடுகள், ஃபார்ம்வேர் போன்றவை).

என்ன பயன்பாடுகள் மற்றும் சேவையகத்தை எவ்வாறு கட்டமைப்பது?

சில உற்பத்தியாளர்களுக்கு லினக்ஸிற்கான பயன்பாடுகளை வழங்குவேன். அனைத்து பயன்பாடுகளும் விற்பனையாளர்களின் அதிகாரப்பூர்வ வலைத்தளங்களில் கிடைக்கின்றன.

நீங்களே செய்-உலோகம் வழங்குதல், அல்லது புதிதாக சர்வர்களைத் தானாகத் தயாரித்தல்

ஃபார்ம்வேர் மூலம், எல்லாம் தெளிவாக இருப்பதாக நான் நினைக்கிறேன். அவை வழக்கமாக தொகுக்கப்பட்ட இயங்கக்கூடிய கோப்புகளின் வடிவத்தில் வருகின்றன. இயங்கக்கூடிய கோப்பு ஃபார்ம்வேர் புதுப்பிப்பு செயல்முறையை கட்டுப்படுத்துகிறது மற்றும் திரும்பும் குறியீட்டைப் புகாரளிக்கிறது.

BIOS மற்றும் IPMI பொதுவாக டெம்ப்ளேட்கள் மூலம் கட்டமைக்கப்படுகின்றன. தேவைப்பட்டால், பதிவிறக்குவதற்கு முன் டெம்ப்ளேட்டைத் திருத்தலாம்.

சில விற்பனையாளர்களிடமிருந்து RAID பயன்பாடுகளும் ஒரு டெம்ப்ளேட்டைப் பயன்படுத்தி கட்டமைக்கப்படலாம். இது அவ்வாறு இல்லையென்றால், நீங்கள் ஒரு உள்ளமைவு ஸ்கிரிப்டை எழுத வேண்டும்.

RAID ஐ அமைப்பதற்கான செயல்முறை பெரும்பாலும் பின்வருமாறு:

  • தற்போதைய உள்ளமைவைக் கோருகிறோம்.
  • ஏற்கனவே தருக்க வரிசைகள் இருந்தால், அவற்றை அழிக்கிறோம்.
  • என்ன இயற்பியல் வட்டுகள் உள்ளன மற்றும் எத்தனை உள்ளன என்பதைப் பார்ப்போம்.
  • புதிய தருக்க வரிசையை உருவாக்கவும். பிழை ஏற்பட்டால் செயல்முறையை நாங்கள் குறுக்கிடுகிறோம்.

ஒரு குறிப்பிட்ட சேவையகத்திற்கான அமைப்புகளை எவ்வாறு பெறுவது?

அனைத்து சேவையகங்களின் அமைப்புகளும் நிறுவல் சேவையகத்தில் சேமிக்கப்படும் என்று வைத்துக்கொள்வோம். இந்த வழக்கில், எங்கள் கேள்விக்கு பதிலளிக்க, நிறுவல் சேவையகத்திற்கு அமைப்புகளை எவ்வாறு மாற்றுவது என்பதை முதலில் தீர்மானிக்க வேண்டும்.

முதலில், நீங்கள் உரை கோப்புகளைப் பெறலாம். (எதிர்காலத்தில், அமைப்புகளை மாற்றுவதற்கான ஃபால்பேக் முறையாக நீங்கள் உரைக் கோப்பைப் பயன்படுத்த விரும்பலாம்.)

நிறுவல் சேவையகத்தில் உரைக் கோப்பை நீங்கள் "பகிரலாம்". அதன் மவுண்ட்டை mount.sh ஸ்கிரிப்டில் சேர்க்கவும்.

எடுத்துக்காட்டாக, வரிகள் இப்படி இருக்கும்:

<வரிசை எண்> <hostname> <subnet>

இந்த வரிகள் பொறியாளரால் அவரது பணி இயந்திரத்திலிருந்து கோப்பிற்கு மாற்றப்படும். பின்னர், ஒரு சேவையகத்தை அமைக்கும் போது, ​​ஒரு குறிப்பிட்ட சேவையகத்திற்கான அளவுருக்கள் கோப்பிலிருந்து படிக்கப்படும்.

ஆனால், நீண்ட காலத்திற்கு, சேவையக நிறுவல்களின் அமைப்புகள், நிலைகள் மற்றும் பதிவுகளை சேமிக்க தரவுத்தளத்தைப் பயன்படுத்துவது நல்லது.

நிச்சயமாக, ஒரு தரவுத்தளம் மட்டும் போதாது, மேலும் தரவுத்தளத்திற்கு மாற்றப்படும் அமைப்புகளின் உதவியுடன் கிளையன்ட் பகுதியை நீங்கள் உருவாக்க வேண்டும். உரைக் கோப்புடன் ஒப்பிடும்போது இதைச் செயல்படுத்துவது மிகவும் கடினம், ஆனால் உண்மையில், எல்லாம் தோன்றும் அளவுக்கு கடினமாக இல்லை. ஒரு கிளையண்டின் குறைந்தபட்ச பதிப்பை எழுதுவது மிகவும் சாத்தியம், இது தரவுத்தளத்திற்கு தரவை மாற்றும். எதிர்காலத்தில் கிளையன்ட் நிரலை இலவச பயன்முறையில் மேம்படுத்த முடியும் (அறிக்கைகள், அச்சிடும் லேபிள்கள், அறிவிப்புகளை அனுப்புதல் போன்றவை நினைவுக்கு வரும்).

தரவுத்தளத்திற்கு ஒரு குறிப்பிட்ட கோரிக்கையைச் செய்து, சேவையக வரிசை எண்ணைக் குறிப்பிடுவதன் மூலம், சேவையகத்தை உள்ளமைக்க தேவையான அளவுருக்களைப் பெறுவோம்.

கூடுதலாக, உரைக் கோப்பைப் போலவே ஒரே நேரத்தில் அணுகுவதற்கான பூட்டுகளை நாங்கள் கொண்டு வர வேண்டியதில்லை.

அனைத்து நிலைகளிலும் உள்ளமைவு பதிவை தரவுத்தளத்தில் எழுதலாம் மற்றும் தயாரிப்பு நிலைகளின் நிகழ்வுகள் மற்றும் கொடிகள் மூலம் நிறுவல் செயல்முறையை கட்டுப்படுத்தலாம்.

இப்போது நமக்கு எப்படி தெரியும்:

  • PXE வழியாக சேவையகத்தை துவக்கவும்;
  • எங்கள் ஸ்கிரிப்ட்டுக்கு கட்டுப்பாட்டை மாற்றவும்;
  • அதன் வரிசை எண் மூலம் தயாரிக்கப்பட வேண்டிய சேவையகத்தை அடையாளம் காணவும்;
  • பொருத்தமான பயன்பாடுகளைப் பயன்படுத்தி சேவையகத்தை உள்ளமைக்கவும்;
  • கிளையன்ட் பகுதியைப் பயன்படுத்தி நிறுவல் சேவையக தரவுத்தளத்திற்கு அமைப்புகளை மாற்றவும்.

எப்படி என்பதை நாங்கள் கண்டுபிடித்தோம்:

  • நிறுவப்பட்ட சேவையகம் தரவுத்தளத்திலிருந்து தேவையான அமைப்புகளைப் பெறுகிறது;
  • அனைத்து தயாரிப்பு முன்னேற்றங்களும் தரவுத்தளத்தில் பதிவு செய்யப்பட்டுள்ளன (பதிவுகள், நிகழ்வுகள், மேடைக் கொடிகள்).

நீங்கள் நிறுவும் பல்வேறு வகையான மென்பொருள்கள் பற்றி என்ன? ஹைப்பர்வைசரை நிறுவுவது, VM ஐ நகலெடுப்பது மற்றும் அனைத்தையும் கட்டமைப்பது எப்படி?

வன்பொருளுக்கு கோப்பு முறைமை படத்தை (லினக்ஸ்) வரிசைப்படுத்தும் விஷயத்தில், எல்லாம் மிகவும் எளிது:

  • அனைத்து சேவையக கூறுகளையும் அமைத்த பிறகு, நாங்கள் படத்தை வரிசைப்படுத்துகிறோம்.
  • grub பூட்லோடரை நிறுவவும்.
  • தேவையான அனைத்தையும் க்ரூட் செய்து உள்ளமைக்கிறோம்.

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 கோப்பில் விருந்தினர்info.esxihost.id = "$SYSSN" அளவுருவை அமைத்து, அதில் உள்ள இயற்பியல் சேவையகத்தின் வரிசை எண்ணைக் குறிப்பிடுகிறோம்.

இப்போது, ​​தொடங்கிய பிறகு, மெய்நிகர் இயந்திரம் (vmware-tools தொகுப்பு நிறுவப்பட்டவுடன்) இந்த அளவுருவை அணுகலாம்:

ESXI_SN=$(vmtoolsd --cmd "info-get guestinfo.esxihost.id")

அதாவது, VM தன்னை அடையாளம் காண முடியும் (அது இயற்பியல் ஹோஸ்டின் வரிசை எண்ணை அறிந்திருக்கிறது), நிறுவல் சேவையக தரவுத்தளத்திற்கு கோரிக்கையை விடுங்கள் மற்றும் கட்டமைக்க வேண்டிய அளவுருக்களைப் பெறலாம். இவை அனைத்தும் ஒரு ஸ்கிரிப்ட்டில் தொகுக்கப்பட்டுள்ளன, விருந்தினர்கள் vm தொடங்கும் போது இது தானாகவே தொடங்கப்படும் (ஆனால் ஒரு முறை: RunOnce).

இப்போது நமக்கு எப்படி தெரியும்:

  • PXE வழியாக சேவையகத்தை துவக்கவும்;
  • எங்கள் ஸ்கிரிப்ட்டுக்கு கட்டுப்பாட்டை மாற்றவும்;
  • அதன் வரிசை எண் மூலம் தயாரிக்கப்பட வேண்டிய சேவையகத்தை அடையாளம் காணவும்;
  • பொருத்தமான பயன்பாடுகளைப் பயன்படுத்தி சேவையகத்தை உள்ளமைக்கவும்;
  • கிளையன்ட் பகுதியைப் பயன்படுத்தி நிறுவல் சேவையக தரவுத்தளத்திற்கு அமைப்புகளை மாற்றவும்;
  • esxi ஹைப்பர்வைசரை வரிசைப்படுத்துதல் மற்றும் மெய்நிகர் இயந்திரங்களை உள்ளமைத்தல் (அனைத்தும் தானாக) உட்பட பல்வேறு வகையான மென்பொருட்களை உள்ளமைக்கவும்.

எப்படி என்பதை நாங்கள் கண்டுபிடித்தோம்:

  • நிறுவப்பட்ட சேவையகம் தரவுத்தளத்திலிருந்து தேவையான அமைப்புகளைப் பெறுகிறது;
  • அனைத்து தயாரிப்பு முன்னேற்றங்களும் தரவுத்தளத்தில் பதிவு செய்யப்பட்டுள்ளன (பதிவுகள், நிகழ்வுகள், மேடைக் கொடிகள்).


கீழே வரி:

இந்த தீர்வின் தனித்துவம் அதன் நெகிழ்வுத்தன்மை, எளிமை, திறன்கள் மற்றும் பல்துறை ஆகியவற்றில் உள்ளது என்று நான் நம்புகிறேன்.

நீங்கள் என்ன நினைக்கிறீர்கள் என்பதை கருத்துகளில் எழுதுங்கள்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்