پخپله د فلزي چمتو کول، یا له پیل څخه د سرورونو اتوماتیک چمتو کول

سلام، زه ډینس یم او زما د فعالیت ساحه په X5 کې د زیربناوو حلونو پراختیا ده. نن زه غواړم تاسو سره شریک کړم چې تاسو څنګه کولی شئ د عامه موجود وسیلو پراساس د اتوماتیک سرور چمتو کولو سیسټم ځای په ځای کړئ. زما په نظر، دا یو په زړه پوری، ساده او انعطاف منونکی حل دی.

پخپله د فلزي چمتو کول، یا له پیل څخه د سرورونو اتوماتیک چمتو کول

د چمتووالي له مخې زموږ مطلب دا دی: یو نوی سرور د بکس څخه بهر د OS سره په بشپړ ډول ترتیب شوي سرور ته واړوئ. لینکس یا د ESXi هایپروایسر سره (د وینډوز سرورونو ځای په ځای کول پدې مقاله کې ندي بحث شوي).

شرایط:

  • سرورونه - هغه سرورونه چې باید تنظیم شي.
  • د نصبولو سرور اصلي سرور دی چې په شبکه کې د چمتو کولو ټوله پروسه چمتو کوي.

ولې اتومات ته اړتیا ده؟

راځئ چې ووایو یو کار شتون لري: په پراخه کچه له سکریچ څخه سرورونه چمتو کول ، په چوکۍ کې - هره ورځ 30. د مختلف تولید کونکو او ماډلونو سرورونه ، مختلف عملیاتي سیسټمونه ممکن په دوی کې نصب شي ، او ممکن هایپروایسر ولري یا نه وي.

کوم عملیات د تنظیم کولو پروسې کې شامل دي (پرته له اتومات):

  • کیبورډ، موږک، مانیټر له سرور سره وصل کړئ؛
  • BIOS، RAID، IPMI تنظیم کړئ؛
  • د برخې فرم ویئر تازه کول؛
  • د فایل سیسټم عکس ځای په ځای کړئ (یا هایپروایزر نصب کړئ او مجازی ماشینونه کاپي کړئ)؛

نوټ. په بدیل توګه، د OS ځای پرځای کول د اتوماتیک ځواب فایل سره د نصبولو له لارې ممکن دي. مګر دا به په مقاله کې بحث ونه شي. که څه هم تاسو به لاندې وګورئ چې د دې فعالیت اضافه کول ستونزمن ندي.

  • د OS پیرامیټونه تنظیم کړئ (د کوربه نوم، IP، او نور).

د دې طریقې سره، ورته ترتیبات په هر سرور کې په ترتیب سره ترسره کیږي. د دې ډول کار موثریت خورا ټیټ دی.

د اتوماتیک جوهر د سرور چمتو کولو پروسې څخه د انسان ګډون له مینځه وړل دي. څومره چې ممکنه وي.

اتومات د عملیاتو ترمینځ وخت کموي او په ورته وخت کې د ډیری سرورونو چمتو کول امکان لري. د انساني عواملو له امله د غلطیو احتمال هم خورا کم شوی.

پخپله د فلزي چمتو کول، یا له پیل څخه د سرورونو اتوماتیک چمتو کول

سرورونه څنګه په اتوماتيک ډول تنظیم شوي؟

راځئ چې ټول پړاوونه په تفصیل سره تحلیل کړو.

تاسو د لینکس سرور لرئ چې تاسو د PXE نصبولو سرور په توګه کاروئ. خدمات په دې کې نصب او ترتیب شوي دي: DHCP، TFTP.

نو، موږ د PXE له لارې سرور (کوم چې تنظیم کولو ته اړتیا لري) بوټ کوو. راځئ چې په یاد ولرو چې دا څنګه کار کوي:

  • د شبکې بوټ په سرور کې غوره شوی.
  • سرور د شبکې کارت PXE-ROM باروي او د DHCP له لارې د نصب کولو سرور سره اړیکه نیسي ترڅو د شبکې پته ترلاسه کړي.
  • د DHCP نصبولو سرور یو پته مسله کوي، او همدارنګه د PXE له لارې د نورو ډاونلوډ کولو لارښوونې.
  • سرور د شبکې بوټلوډر د نصب کولو سرور څخه د PXE له لارې باروي ، نور بار کول د PXE ترتیب فایل سره سم پیښیږي.
  • بوټ د ترلاسه شوي پیرامیټونو پراساس رامینځته کیږي (کرنل ، انټرمف ، ماونټ پوائنټونه ، اسکواشف عکس ، او داسې نور).

نوټ. مقاله د PXE له لارې د BIOS حالت له لارې بوټ کول تشریح کوي. اوس مهال، جوړونکي په فعاله توګه د 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 له لارې شتون ولري.

زه دوی چیرته ترلاسه کولی شم، کرنل او initramfs؟
د بنسټ په توګه، تاسو کولی شئ د لینکس هر ډول توزیع غوره کړئ. هغه څه چې موږ د انتخاب کولو پر مهال پاملرنه کوو:

  • د بوټ عکس باید نړیوال وي (د چلوونکو شتون، د اضافي اسانتیاوو نصبولو وړتیا)؛
  • ډیری احتمال، تاسو به د 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 سکریپټ په آٹورن کې پیل کیږي. بیا، د mount.sh سکریپټ د اجرا کولو په جریان کې پاس شوي پیرامیټونه (script_cmd=) تحلیلوي او اړین پروګرام/سکریپټ پیلوي.

د نښه کولو وسیله-کړکېو
دانه...
ضمیمه کړئ... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

د نښه کولو وسیله-مرمۍ
دانه...
ضمیمه کړئ... nfs_toolkit_script=scripts/mount.sh سکریپټ_cmd=/bin/bash

پخپله د فلزي چمتو کول، یا له پیل څخه د سرورونو اتوماتیک چمتو کول

دلته په ښي خوا کې د PXE مینو دی، په ښي خوا کې د کنټرول لیږد ډیاګرام دی.

موږ د کنټرول لیږد معلوم کړ. د PXE مینو په انتخاب پورې اړه لري، یا د اتوماتیک ترتیب سکریپټ یا د ډیبګ کنسول پیل شوی.

د اتوماتیک ترتیب په حالت کې، اړین لارښودونه د نصب کولو سرور څخه نصب شوي، کوم چې پکې شامل دي:

  • سکریپټ
  • د مختلف سرورونو لپاره BIOS/UEFI ټیمپلیټونه خوندي شوي؛
  • فرم ویئر
  • د سرور اسانتیاوې؛
  • logs

بیا، د mount.sh سکریپټ د سکریپټ لارښود څخه ماسټر-install.sh سکریپټ ته کنټرول لیږدوي.

د سکریپټ ونې (هغه ترتیب چې دوی په لاره اچول شوي) یو څه داسې ښکاري:

  • master-install
  • شریکول (شریک افعال)
  • معلومات (د معلوماتو محصول)
  • ماډلونه (د سرور ماډل پراساس د نصب کولو پیرامیټونه تنظیم کول)
  • چمتو کول (د اړینو اسانتیاوو نصب کول)
  • fwupdate (د فرم ویئر تازه کول)
  • تشخیص (ابتدايي تشخیص)
  • biosconf (BIOS/UEFI ترتیبات)
  • کلاک فکس (په مور بورډ کې د وخت تنظیم کول)
  • srmconf (د ریموټ انٹرفیس انٹرفیس ترتیب)
  • raidconf (د منطقي حجمونو ترتیب کول)

یو له:

  • پری انسټال (OS یا Hypervisor انسټالر ته د کنټرول لیږدول، لکه ESXi)
  • یوځای شوی نصب (د عکس د پیک کولو سمدستي پیل)

اوس موږ پوهیږو:

  • د PXE له لارې سرور څنګه بوټ کړئ؛
  • څنګه خپل سکریپټ ته کنټرول انتقال کړئ.


راځئ چې دوام ورکړو. لاندې پوښتنې اړوندې شوې:

  • هغه سرور څنګه وپیژنو چې موږ یې چمتو کوو؟
  • کوم اسانتیاوې او څنګه سرور تنظیم کړئ؟
  • د یو ځانګړي سرور لپاره ترتیبات څنګه ترلاسه کول؟

هغه سرور څنګه وپیژنو چې موږ یې چمتو کوو؟

دا ساده ده - DMI:

dmidecode –s system-product-name
dmidecode –s system-manufacturer
dmidecode –s system-serial-number

هرڅه چې تاسو ورته اړتیا لرئ دلته دي: پلورونکی، ماډل، سریال نمبر. که تاسو ډاډه نه یاست چې دا معلومات په ټولو سرورونو کې شتون لري، تاسو کولی شئ دوی د دوی د MAC پتې لخوا وپیژنئ. یا په ورته وخت کې په دواړو لارو کې، که د سرور پلورونکي مختلف وي او په ځینو موډلونو کې په ساده ډول د سیریل نمبر په اړه هیڅ معلومات شتون نلري.

د ترلاسه شوي معلوماتو پراساس ، د شبکې فولډر د نصب کولو سرور څخه ایښودل شوي او هرڅه اړین دي بار شوي (استعمالات ، فرم ویئر او نور).

کوم اسانتیاوې او څنګه سرور تنظیم کړئ؟

زه به د ځینو تولید کونکو لپاره د لینکس لپاره اسانتیاوې چمتو کړم. ټولې اسانتیاوې د پلورونکو رسمي ویب پا onو کې شتون لري.

پخپله د فلزي چمتو کول، یا له پیل څخه د سرورونو اتوماتیک چمتو کول

د فرم ویئر سره، زه فکر کوم چې هرڅه روښانه دي. دوی معمولا د بسته شوي اجرا وړ فایلونو په بڼه راځي. د اجرا وړ فایل د فرم ویئر تازه کولو پروسه کنټرولوي او د راستنیدو کوډ راپور ورکوي.

BIOS او IPMI معمولا د ټیمپلیټونو له لارې تنظیم شوي. که اړتیا وي، ټیمپلیټ د ډاونلوډ کولو دمخه ترمیم کیدی شي.

د ځینو پلورونکو څخه د RAID اسانتیاوې هم د ټیمپلیټ په کارولو سره تنظیم کیدی شي. که دا قضیه نده، نو تاسو باید د ترتیب سکریپټ ولیکئ.

د RAID تنظیم کولو کړنلاره ډیری وختونه په لاندې ډول دي:

  • موږ د اوسني ترتیب غوښتنه کوو.
  • که چیرې دمخه منطقي صفونه شتون ولري، موږ یې له منځه یوسو.
  • راځئ وګورو چې کوم فزیکي ډیسکونه شتون لري او څومره شتون لري.
  • یو نوی منطقی صف جوړ کړئ. موږ د یوې تېروتنې په صورت کې پروسه مداخله کوو.

د یو ځانګړي سرور لپاره ترتیبات څنګه ترلاسه کول؟

راځئ فرض کړو چې د ټولو سرورونو تنظیمات به د نصب کولو سرور کې زیرمه شي. پدې حالت کې ، زموږ پوښتنې ته د ځواب ویلو لپاره ، موږ باید لومړی پریکړه وکړو چې څنګه د نصب کولو سرور ته تنظیمات انتقال کړو.

په لومړي سر کې، تاسو کولی شئ د متن فایلونو سره ترلاسه کړئ. (په راتلونکي کې، تاسو ممکن د متن فایل د ترتیباتو لیږدولو لپاره د فال بیک میتود په توګه وکاروئ.)

تاسو کولی شئ د نصبولو سرور کې د متن فایل "شریک کړئ". او دا د mount.sh سکریپټ ته اضافه کړئ.

کرښې به د مثال په توګه داسې ښکاري:

<سیریل شمیره> <میزبان نوم> <سب نیټ>

دا لینونه به د انجنیر لخوا د هغه د کار ماشین څخه فایل ته لیږدول کیږي. او بیا، کله چې د سرور تنظیم کول، د یو ځانګړي سرور لپاره پیرامیټونه به د فایل څخه لوستل شي.

مګر، په اوږدمهال کې، دا غوره ده چې د ترتیباتو، ریاستونو او د سرور تاسیساتو لاګونو ذخیره کولو لپاره ډیټابیس وکاروئ.

البته، یوازې یو ډیټابیس کافي نه دی، او تاسو به اړتیا ولرئ د پیرودونکي برخه جوړه کړئ چې په مرسته به یې ترتیبات ډیټابیس ته لیږدول کیږي. دا د متن فایل په پرتله پلي کول خورا ستونزمن دي، مګر په حقیقت کې، هرڅه دومره ستونزمن ندي لکه څنګه چې ښکاري. دا خورا ممکنه ده چې د پیرودونکي لږترلږه نسخه ولیکئ چې په ساده ډول به ډیټابیس ته پخپله ډیټا لیږدوي. او په راتلونکي کې به دا ممکنه وي چې د پیرودونکي برنامه په وړیا حالت کې ښه کړي (راپورونه ، د لیبلونو چاپ کول ، د خبرتیاو لیږل ، او داسې نور چې ذهن ته راځي).

ډیټابیس ته د ځانګړي غوښتنې په کولو او د سرور سیریل نمبر مشخص کولو سره ، موږ به د سرور تنظیم کولو لپاره اړین پیرامیټونه ترلاسه کړو.

برسیره پردې، موږ به اړتیا ونلرئ چې د یو وخت لاسرسي لپاره قلفونه راوباسئ، لکه څنګه چې د متن فایل سره قضیه ده.

موږ کولی شو د ترتیب کولو لاګ په ټولو مرحلو کې ډیټابیس ته ولیکو او د چمتووالي مرحلو پیښو او بیرغونو له لارې د نصب کولو پروسه کنټرول کړو.

اوس موږ پوهیږو چې څنګه:

  • سرور د PXE له لارې بوټ کړئ؛
  • زموږ سکریپټ ته د کنټرول لیږد؛
  • هغه سرور وپیژني چې اړتیا لري د هغې سیریل نمبر لخوا چمتو شي؛
  • د مناسبو اسانتیاوو په کارولو سره سرور تنظیم کړئ؛
  • د پیرودونکي برخې په کارولو سره د نصب کولو سرور ډیټابیس ته تنظیمات لیږدول.

موږ پوهیږو چې څنګه:

  • نصب شوی سرور د ډیټابیس څخه اړین ترتیبات ترلاسه کوي؛
  • د چمتووالي ټول پرمختګ په ډیټابیس کې ثبت شوی (لاګونه، پیښې، د مرحلې بیرغونه).

د سافټویر مختلف ډولونو په اړه چې تاسو یې نصب کوئ؟ د هایپروایزر نصبولو څرنګوالی، یو VM کاپي کړئ او دا ټول تنظیم کړئ؟

هارډویر ته د فایل سیسټم عکس (لینکس) ځای په ځای کولو په حالت کې ، هرڅه خورا ساده دي:

  • د سرور ټولو برخو تنظیم کولو وروسته ، موږ عکس ځای په ځای کوو.
  • د ګروب بوټلوډر نصب کړئ.
  • موږ هر هغه څه چې اړتیا ورته وي کروټ او تنظیم کوو.

د OS انسټالر ته د کنټرول لیږدولو څرنګوالی (د مثال په توګه د ESXi کارول).

  • موږ د اتوماتیک غبرګون فایل (کیک سټارټ) په کارولو سره زموږ له سکریپټ څخه هایپروایسر انسټالر ته د کنټرول لیږد تنظیم کوو:
  • موږ په ډیسک کې اوسني برخې حذف کوو.
  • د 500MB اندازه سره یوه برخه جوړه کړئ.
  • موږ دا د بوټ وړ په توګه نښه کوو.
  • د FAT32 بڼه.
  • موږ د ESXi نصبولو فایلونه روټ ته کاپي کوو.
  • د سیسلینکس نصب کول.
  • 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

Add a comment