{"id":74905,"date":"2020-03-21T20:42:25","date_gmt":"2020-03-21T17:42:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bare-metal-provisioning-svoimi-rukami-ili-avtomaticheskaya-podgotovka-serverov-s-nulya"},"modified":"2020-03-21T20:42:25","modified_gmt":"2020-03-21T17:42:25","slug":"bare-metal-provisioning-svoimi-rukami-ili-avtomaticheskaya-podgotovka-serverov-s-nulya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/bare-metal-provisioning-svoimi-rukami-ili-avtomaticheskaya-podgotovka-serverov-s-nulya","title":{"rendered":"Bare-Metal Provisioning svojpomocne, alebo Automatick\u00e1 pr\u00edprava serverov od z\u00e1kladov","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ahoj, vol\u00e1m sa Denis a jedn\u00fdm z mojich pracovn\u00fdch zameran\u00ed je v\u00fdvoj infra\u0161trukt\u00farnych rie\u0161en\u00ed v X5. Dnes by som sa s vami r\u00e1d podelil o to, ako je mo\u017en\u00e9 pomocou verejn\u00fdch n\u00e1strojov nasadi\u0165 automatizovan\u00fd syst\u00e9m na pr\u00edpravu serverov. Pod\u013ea m\u00f4jho n\u00e1zoru je to zauj\u00edmav\u00e9, jednoduch\u00e9 a flexibiln\u00e9 rie\u0161enie.<\/p>\n<p><img decoding=\"async\" alt=\"Bare-Metal Provisioning svojpomocne, alebo Automatick\u00e1 pr\u00edprava serverov od z\u00e1kladov\" src=\"\/wp-content\/uploads\/2020\/03\/b49cca7e782c0875a95feee497f141b0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPr\u00edpravou sa rozumie: urobi\u0165 z nov\u00e9ho servera priamo z krabice, plne nastaven\u00fd server s opera\u010dn\u00fdm syst\u00e9mom Linux alebo s hyperv\u00edzorom ESXi (nasadenie <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sk\/server\/\"   title=\"serverov\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1469\">serverov<\/a> Windows v tomto \u010dl\u00e1nku nie je diskutovan\u00e9).<\/p>\n<p><b>Term\u00edny<\/b>:<\/p>\n<ul>\n<li>servery \u2013 servery, ktor\u00e9 je potrebn\u00e9 nastavi\u0165.<\/li>\n<li>in\u0161tal-servery \u2013 hlavn\u00e9 servery, ktor\u00e9 zabezpe\u010duj\u00fa cel\u00fd proces pr\u00edpravy prostredn\u00edctvom siete.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Pre\u010do je potrebn\u00e1 automatiz\u00e1cia?<\/h3>\n<p>\nPredpokladajme, \u017ee existuje \u00faloha: masovo pripravova\u0165 servery od nuly, v \u0161pi\u010dke \u2013 30 za de\u0148. Servery r\u00f4znych v\u00fdrobcov a modelov, na ktor\u00e9 m\u00f4\u017eu by\u0165 nain\u0161talovan\u00e9 r\u00f4zne opera\u010dn\u00e9 syst\u00e9my, pri\u010dom hyperv\u00edzor m\u00f4\u017ee by\u0165 pr\u00edtomn\u00fd alebo nepr\u00edtomn\u00fd.<\/p>\n<p>Ak\u00e9 oper\u00e1cie s\u00fa zahrnut\u00e9 v procese nastavenia (bez automatiz\u00e1cie):<\/p>\n<ul>\n<li>pripoji\u0165 kl\u00e1vesnicu, my\u0161, monitor k serveru;<\/li>\n<li>nastavi\u0165 BIOS, RAID, IPMI;<\/li>\n<li>aktualizova\u0165 firmv\u00e9r komponentov;<\/li>\n<li>nasadi\u0165 obraz s\u00faborov\u00e9ho syst\u00e9mu (alebo nain\u0161talova\u0165 hyperv\u00edzor a skop\u00edrova\u0165 virtu\u00e1lne stroje);<\/li>\n<\/ul>\n<p>\nPozn\u00e1mka. Ako variant, nasadenie OS je mo\u017en\u00e9 cez in\u0161tal\u00e1ciu s s\u00faborom autoodpoved\u00ed. Ale to nebude v \u010dl\u00e1nku prediskutovan\u00e9. Aj ke\u010f ni\u017e\u0161ie uvid\u00edte, \u017ee prida\u0165 t\u00fato funkciu nie je zlo\u017eit\u00e9.<\/p>\n<ul>\n<li>nastavi\u0165 parametre OS (hostname, IP at\u010f.).<\/li>\n<\/ul>\n<p>\nPri tomto pr\u00edstupe sa vykon\u00e1vaj\u00fa rovnak\u00e9 nastavenia postupne na ka\u017edom serveri. Efekt\u00edvnos\u0165 takejto pr\u00e1ce je ve\u013emi n\u00edzka.<\/p>\n<p>Podstata automatiz\u00e1cie spo\u010d\u00edva v vyl\u00fa\u010den\u00ed \u00fa\u010dasti \u010dloveka z procesu pr\u00edpravy servera. Maxim\u00e1lne, ako je to mo\u017en\u00e9. <\/p>\n<p>V\u010faka automatiz\u00e1cii sa skracuje \u010das ne\u010dinnosti medzi oper\u00e1ciami a vznik\u00e1 mo\u017enos\u0165 pripravi\u0165 nieko\u013eko serverov s\u00fa\u010dasne. Takisto sa v\u00fdrazne zni\u017euje pravdepodobnos\u0165 vzniku ch\u00fdb sp\u00f4soben\u00fdch \u013eudsk\u00fdm faktorom.<\/p>\n<p><img decoding=\"async\" alt=\"Bare-Metal Provisioning svojpomocne, alebo Automatick\u00e1 pr\u00edprava serverov od z\u00e1kladov\" src=\"\/wp-content\/uploads\/2020\/03\/8c196058891a7f41c5b93e7f6721480b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Ako prebieha automatick\u00e9 nastavenie serverov?<\/h3>\n<p>\nRozoberieme v\u0161etky etapy podrobne.<\/p>\n<p>M\u00e1te linux-server, ktor\u00fd pou\u017e\u00edvate ako PXE in\u0161tal-server. Na \u0148om s\u00fa nain\u0161talovan\u00e9 a nastaven\u00e9 slu\u017eby: DHCP, TFTP.<\/p>\n<p>Tak\u017ee, na\u010d\u00edtame server (ktor\u00fd je potrebn\u00e9 nastavi\u0165) cez PXE. Pripome\u0148me si, ako to funguje:<\/p>\n<ul>\n<li>Na serveri je vybran\u00e9 spustenie cez sie\u0165.<\/li>\n<li>Server loads the PXE-ROM of the network card and contacts the installation server via DHCP to obtain a network address.<\/li>\n<li>The DHCP of the installation server issues an address and also gives instructions for further loading via PXE.<\/li>\n<li>The server loads the network bootloader from the installation server via PXE, and further loading occurs according to the PXE configuration file.<\/li>\n<li>The loading occurs based on the received parameters (kernel, initramfs, mount points, squashfs image, etc.).<\/li>\n<\/ul>\n<p>\nNote. This article describes PXE booting via BIOS mode. Currently, manufacturers are actively implementing UEFI boot mode. The difference for PXE will lie in the configuration of the DHCP server and the presence of an additional bootloader.<\/p>\n<p>Let's consider an example configuration of a PXE server (pxelinux menu).<\/p>\n<p>File pxelinux.cfg\/default:<\/p>\n<pre><code class=\"plaintext\">default menu.c32\nprompt 0\ntimeout 100\nmenu title X5 PXE Boot Menu\nLABEL InstallServer Menu\n\tMENU LABEL InstallServer\n\tKERNEL menu.c32\n\tAPPEND pxelinux.cfg\/installserver\nLABEL VMware Menu\n\tMENU LABEL VMware ESXi Install\n\tKERNEL menu.c32\n\tAPPEND pxelinux.cfg\/vmware\nLABEL toolkit \/\/ default menu\n\tMENU LABEL Linux Scripting Toolkits\n\tMENU default\n\tKERNEL menu.c32\n\tAPPEND pxelinux.cfg\/toolkit \/\/ transition to the next menu<\/code><\/pre>\n<p>\nFile pxelinux.cfg\/toolkit:<\/p>\n<pre><code class=\"plaintext\">prompt 0\ntimeout 100\nmenu title X5 PXE Boot Menu\nlabel mainmenu\n    menu label ^Return to Main Menu\n    kernel menu.c32\n    append pxelinux.cfg\/default\nlabel x5toolkit-auto \/\/ default \u2014 automatic mode\n        menu label x5 toolkit autoinstall\n        menu default\n        kernel toolkit\/tkcustom-kernel\n        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=\"\u2026\"\nlabel x5toolkit-shell \/\/ for debugging - console\n        menu label x5 toolkit shell\n        kernel toolkit\/tkcustom-kernel\n        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=\"\u2026\"<\/code><\/pre>\n<p>\nAt this stage, the kernel and initramfs are an intermediate Linux image, which will be used for the main preparation and configuration of the server.<\/p>\n<p>As you can see, the bootloader passes many parameters to the kernel. Some of these parameters are used by the kernel itself, while others can be utilized for our purposes. This will be discussed further, but for now, just remember that all passed parameters will be accessible in the intermediate Linux image via \/proc\/cmdline.<\/p>\n<p>Where to get them, the kernel and initramfs?<br \/>\nYou can choose any Linux distribution as the basis. What to pay attention to when choosing:<\/p>\n<ul>\n<li>the boot image must be universal (availability of drivers, ability to install additional utilities);<\/li>\n<li>pravdepodobne bude potrebn\u00e9 prisp\u00f4sobi\u0165 initramfs.<\/li>\n<\/ul>\n<p>\nAko je to implementovan\u00e9 v na\u0161om rie\u0161en\u00ed pre X5? Ako z\u00e1klad sme zvolili CentOS 7. Urob\u00edme nasleduj\u00faci trik: priprav\u00edme bud\u00facu \u0161trukt\u00faru obrazu, zabal\u00edme ju do arch\u00edvu a vytvor\u00edme initramfs, v ktorom bude n\u00e1\u0161 arch\u00edv s\u00faborov\u00e9ho syst\u00e9mu. Pri na\u010d\u00edtan\u00ed obrazu sa arch\u00edv rozbal\u00ed do vytv\u00e1ran\u00e9ho oddielu tmpfs. T\u00fdmto sp\u00f4sobom z\u00edskame minim\u00e1lny, ale plnohodnotn\u00fd live obraz linuxu so v\u0161etk\u00fdmi potrebn\u00fdmi utilitami, pozost\u00e1vaj\u00faci z dvoch s\u00faborov: vmkernel a initramfs. <\/p>\n<pre><code class=\"plaintext\">#\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438: \n\nmkdir -p \/tftpboot\/toolkit\/CustomTK\/rootfs \/tftpboot\/toolkit\/CustomTK\/initramfs\/bin\n\n#\u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:\n\nyum groups -y install &quot;Minimal Install&quot; --installroot=\/tftpboot\/toolkit\/CustomTK\/rootfs\/\nyum -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\/\nyum -y remove biosdevname --installroot=\/tftpboot\/toolkit\/CustomTK\/rootfs\/\n\n# \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c initramfs:\n\nwget https:\/\/busybox.net\/downloads\/binaries\/1.31.0-defconfig-multiarch-musl\/busybox-x86_64 -O \/tftpboot\/toolkit\/CustomTK\/initramfs\/bin\/busybox\nchmod a+x \/tftpboot\/toolkit\/CustomTK\/initramfs\/bin\/busybox\ncp \/tftpboot\/toolkit\/CustomTK\/rootfs\/boot\/vmlinuz-3.10.0-957.el7.x86_64 \/tftpboot\/toolkit\/tkcustom-kernel\n\n# \u0441\u043e\u0437\u0434\u0430\u0435\u043c \/tftpboot\/toolkit\/CustomTK\/initramfs\/init (\u043d\u0438\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430):\n\n#!\/bin\/busybox sh\n\/bin\/busybox --install \/bin\nmkdir -p \/dev \/proc \/sys \/var\/run \/newroot\nmount -t proc proc \/proc\nmount -o mode=0755 -t devtmpfs devtmpfs \/dev\nmkdir -p \/dev\/pts \/dev\/shm \/dev\/mapper \/dev\/vc\nmount -t devpts -o gid=5,mode=620 devpts \/dev\/pts\nmount -t sysfs sysfs \/sys\nmount -t tmpfs -o size=4000m tmpfs \/newroot\necho -n &quot;Extracting rootfs... &quot;\nxz -d -c -f rootfs.tar.xz | tar -x -f - -C \/newroot\necho &quot;done&quot;\nmkdir -p \/newroot\/dev \/newroot\/proc \/newroot\/sys\nmount --move \/sys  \/newroot\/sys\nmount --move \/proc \/newroot\/proc\nmount --move \/dev  \/newroot\/dev\nexec switch_root \/newroot \/sbin\/init\n\n# \u0443\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c rootfs \u0438 initramfs:\n\ncd \/tftpboot\/toolkit\/CustomTK\/rootfs\ntar cJf \/tftpboot\/toolkit\/CustomTK\/initramfs\/rootfs.tar.xz --exclude .\/proc --exclude .\/sys --exclude .\/dev .\ncd \/tftpboot\/toolkit\/CustomTK\/initramfs\nfind . -print0 | cpio --null -ov --format=newc | gzip -9 &gt; \/tftpboot\/toolkit\/tkcustom-initramfs-new.gz<\/code><\/pre>\n<p>\nTak\u017ee sme zadali kernel a initramfs, ktor\u00e9 by mali by\u0165 na\u010d\u00edtan\u00e9. V\u00fdsledkom v tomto kroku, po na\u010d\u00edtan\u00ed medzn\u00e9ho obrazu linuxu cez PXE, z\u00edskame konzolu OS.<\/p>\n<p>Skvel\u00e9, ale teraz mus\u00edme odovzda\u0165 riadenie na\u0161ej \u201eautomatiz\u00e1cii\u201c.<\/p>\n<p>To m\u00f4\u017eeme urobi\u0165 takto.<\/p>\n<p>Predpokladajme, \u017ee po na\u010d\u00edtan\u00ed obrazu pl\u00e1nujeme odovzda\u0165 riadenie skriptu mount.sh.<br \/>\nZahrnieme skript mount.sh do automatick\u00e9ho sp\u00fa\u0161\u0165ania. Na to bude potrebn\u00e9 modifikova\u0165 initramfs:<\/p>\n<ul>\n<li>rozbali\u0165 initramfs (ak pou\u017e\u00edvame vy\u0161\u0161ie uveden\u00fa verziu initramfs, to nie je potrebn\u00e9)<\/li>\n<li>zahrn\u00fa\u0165 do automatick\u00e9ho sp\u00fa\u0161\u0165ania k\u00f3d, ktor\u00fd bude analyzova\u0165 odovzd\u00e1van\u00e9 parametre cez \/proc\/cmdline a odovzd\u00e1va\u0165 riadenie \u010falej;<\/li>\n<li>zabali\u0165 initramfs.<\/li>\n<\/ul>\n<p>\nPozn\u00e1mka. V pr\u00edpade toolkit X5 sa riadenie sp\u00fa\u0161\u0165ania odovzd\u00e1va do skriptu <code>\/opt\/x5\/toolkit\/bin\/hook.sh \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e override.conf \u0432 getty tty1 (ExecStart=\u2026) <\/code><\/p>\n<p>Tak\u017ee sa na\u010d\u00edta obraz, v ktorom sa v automatickom sp\u00fa\u0161\u0165an\u00ed sp\u00fa\u0161\u0165a skript mount.sh. Potom skript mount.sh po\u010das vykon\u00e1vania analyzuje odovzdan\u00e9 parametre (script_cmd=) a sp\u00fa\u0161\u0165a potrebn\u00fd program\/skript.<\/p>\n<p>label toolkit-<b>auto<\/b><br \/>\nkernel \u2026<br \/>\nappend \u2026 nfs_toolkit_script=scripts\/mount.sh <b>script_cmd=master-install.sh<br \/>\n<\/b><br \/>\nlabel toolkit-<b>shell<\/b><br \/>\nkernel \u2026<br \/>\nappend \u2026 nfs_toolkit_script=scripts\/mount.sh <b>script_cmd=\/bin\/bash<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Bare-Metal Provisioning svojpomocne, alebo Automatick\u00e1 pr\u00edprava serverov od z\u00e1kladov\" src=\"\/wp-content\/uploads\/2020\/03\/943eeb64fbf746feab5119ead5b1ca66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTu na \u013eavej strane je menu PXE, na pravej \u2013 sch\u00e9ma odovzd\u00e1vania riadenia.<\/p>\n<p>S odovzd\u00e1van\u00edm riadenia sme sa vysporiadali. V z\u00e1vislosti od v\u00fdberu PXE-menu sa sp\u00fa\u0161\u0165a bu\u010f skript automatickej konfigur\u00e1cie, alebo konzola na ladenie.<\/p>\n<p>Pri automatickej konfigur\u00e1cii sa montuj\u00fa potrebn\u00e9 adres\u00e1re z in\u0161tala\u010dn\u00e9ho servera, v ktor\u00fdch sa nach\u00e1dzaj\u00fa:<\/p>\n<ul>\n<li>skripty;<\/li>\n<li>ulo\u017een\u00e9 \u0161abl\u00f3ny BIOS\/UEFI r\u00f4znych serverov;<\/li>\n<li>firmware;<\/li>\n<li>utility pre servery;<\/li>\n<li>logy.<\/li>\n<\/ul>\n<p>\nPotom skript mount.sh odovzd\u00e1va riadenie skriptu master-install.sh z adres\u00e1ra so skriptami.<\/p>\n<p>\u0160trukt\u00fara skriptov (poradie ich sp\u00fa\u0161\u0165ania) vyzer\u00e1 asi takto:<\/p>\n<ul>\n<li>master-install<\/li>\n<li>sharefunctions (spolo\u010dn\u00e9 funkcie)<\/li>\n<li>info (v\u00fdstup inform\u00e1ci\u00ed)<\/li>\n<li>models (nastavenie parametrov in\u0161tal\u00e1cie na z\u00e1klade modelu servera)<\/li>\n<li>prepare_utils (in\u0161tal\u00e1cia potrebn\u00fdch util\u00edt)<\/li>\n<li>fwupdate (aktualiz\u00e1cia firmv\u00e9ru)<\/li>\n<li>diag (z\u00e1kladn\u00e1 diagnostika)<\/li>\n<li>biosconf (konfigur\u00e1cia BIOSu\/UEFI)<\/li>\n<li>clockfix (nastavenie \u010dasu na z\u00e1kladnej doske)<\/li>\n<li>srmconf (nastavenie rozhrania vzdialen\u00e9ho pr\u00edstupu)<\/li>\n<li>raidconf (konfigur\u00e1cia logick\u00fdch zv\u00e4zkov)<\/li>\n<\/ul>\n<p>\njedna z:<\/p>\n<ul>\n<li>preinstall (odovzdanie kontroly in\u0161tal\u00e1torovi OS alebo hyperv\u00edzora, napr. ESXi)<\/li>\n<li>merged-install (priamy \u0161tart extrakcie obrazu)<\/li>\n<\/ul>\n<p>\n<b>Teraz vieme:<\/p>\n<ul>\n<li>ako bootova\u0165 server cez PXE;<\/li>\n<li>ako odovzda\u0165 kontrolu do vlastn\u00e9ho skriptu.<\/li>\n<\/ul>\n<p><\/b><br \/>\nPokra\u010dujme. Stali sa aktu\u00e1lne nasleduj\u00face ot\u00e1zky:<\/p>\n<ul>\n<li>Ako identifikova\u0165 server, ktor\u00fd pripravujeme?<\/li>\n<li>Ak\u00e9 n\u00e1stroje a ako konfigurova\u0165 server?<\/li>\n<li>Ako z\u00edska\u0165 nastavenia pre konkr\u00e9tny server?<\/li>\n<\/ul>\n<p><\/p>\n<h3>Ako identifikova\u0165 server, ktor\u00fd pripravujeme?<\/h3>\n<p>\nJe to jednoduch\u00e9 \u2013 DMI:<\/p>\n<pre><code class=\"plaintext\">dmidecode \u2013s system-product-name\ndmidecode \u2013s system-manufacturer\ndmidecode \u2013s system-serial-number<\/code><\/pre>\n<p>\nTu s\u00fa v\u0161etky potrebn\u00e9 inform\u00e1cie: v\u00fdrobca, model, s\u00e9riov\u00e9 \u010d\u00edslo. Ak si nie ste ist\u00ed, \u017ee s\u00fa tieto inform\u00e1cie dostupn\u00e9 vo v\u0161etk\u00fdch serveroch, m\u00f4\u017eete ich identifikova\u0165 pod\u013ea MAC adresy. Alebo oboma sp\u00f4sobmi z\u00e1rove\u0148, ak s\u00fa servery od r\u00f4znych v\u00fdrobcov a na niektor\u00fdch modeloch m\u00f4\u017ee inform\u00e1cia o s\u00e9riovom \u010d\u00edsle \u00faplne ch\u00fdba\u0165.<\/p>\n<p>Na z\u00e1klade z\u00edskan\u00fdch inform\u00e1ci\u00ed s\u00fa pripojen\u00e9 sie\u0165ov\u00e9 zdie\u013eania z in\u0161tala\u010dn\u00e9ho servera a na\u010d\u00edtavaj\u00fa sa v\u0161etky potrebn\u00e9 (n\u00e1stroje, firmv\u00e9ry a in\u00e9).<\/p>\n<h3>Ak\u00e9 n\u00e1stroje a ako konfigurova\u0165 server?<\/h3>\n<p>\nUvediem n\u00e1stroje pre linux od niektor\u00fdch v\u00fdrobcov. V\u0161etky n\u00e1stroje s\u00fa dostupn\u00e9 na ofici\u00e1lnych str\u00e1nkach v\u00fdrobcov.<\/p>\n<p><img decoding=\"async\" alt=\"Bare-Metal Provisioning svojpomocne, alebo Automatick\u00e1 pr\u00edprava serverov od z\u00e1kladov\" src=\"\/wp-content\/uploads\/2020\/03\/fab53d1fa6e9a222ec69248439551ad7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS firmv\u00e9rmi, mysl\u00edm, je v\u0161etko jasn\u00e9. Zvy\u010dajne sa dod\u00e1vaj\u00fa vo forme zabalen\u00fdch spustite\u013en\u00fdch s\u00faborov. Spustite\u013en\u00fd s\u00fabor ovl\u00e1da proces aktualiz\u00e1cie firmv\u00e9ru a hl\u00e1si n\u00e1vratov\u00fd k\u00f3d.<\/p>\n<p>BIOS a IPMI sa zvy\u010dajne konfiguroval cez \u0161abl\u00f3ny. Ak je to potrebn\u00e9, \u0161abl\u00f3nu je mo\u017en\u00e9 upravi\u0165 tesne pred spusten\u00edm.<\/p>\n<p>N\u00e1stroje RAID niektor\u00fdch v\u00fdrobcov tie\u017e m\u00f4\u017eu by\u0165 nakonfigurovan\u00e9 pomocou \u0161abl\u00f3ny. Ak to nie je mo\u017en\u00e9, bude potrebn\u00e9 nap\u00edsa\u0165 skript na konfigur\u00e1ciu.<\/p>\n<p>Poradie nastavenia RAID je naj\u010dastej\u0161ie nasleduj\u00face:<\/p>\n<ul>\n<li>Po\u017eiadame o aktu\u00e1lnu konfigur\u00e1ciu.<\/li>\n<li>Ak u\u017e existuj\u00fa logick\u00e9 polia \u2013 vyma\u017eeme ich.<\/li>\n<li>Pozrieme sa, ak\u00e9 fyzick\u00e9 disky s\u00fa pr\u00edtomn\u00e9 a ko\u013eko ich je.<\/li>\n<li>Vytvor\u00edme nov\u00e9 logick\u00e9 pole. Proces preru\u0161\u00edme v pr\u00edpade chyby.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Ako z\u00edska\u0165 nastavenia pre konkr\u00e9tny server?<\/h3>\n<p>\nPredpokladajme, \u017ee nastavenia v\u0161etk\u00fdch serverov bud\u00fa ulo\u017een\u00e9 na in\u0161tala\u010dnom serveri. V takom pr\u00edpade, aby sme odpovedali na na\u0161u ot\u00e1zku, mus\u00edme najprv rozhodn\u00fa\u0165, ak\u00fdm sp\u00f4sobom budeme odovzd\u00e1va\u0165 nastavenia na in\u0161tala\u010dn\u00fd server.<\/p>\n<p>Na za\u010diatku je celkom mo\u017en\u00e9 vysta\u010di\u0165 si s textov\u00fdmi s\u00fabormi. (V bud\u00facnosti je mo\u017en\u00e9 pou\u017ei\u0165 textov\u00fd s\u00fabor ako z\u00e1lo\u017en\u00fd sp\u00f4sob prenosu nastaven\u00ed). <\/p>\n<p>M\u00f4\u017eete \u201ezdiela\u0165\u201c textov\u00fd s\u00fabor na in\u0161tala\u010dnom serveri. A prida\u0165 jeho pripojenie do skriptu mount.sh.<\/p>\n<p>Riadky bud\u00fa napr\u00edklad tak\u00e9to:<\/p>\n<p><s><\/p>\n<p>Tieto riadky bud\u00fa pren\u00e1\u0161an\u00e9 do s\u00faboru in\u017einierom z jeho pracovn\u00e9ho po\u010d\u00edta\u010da. A potom, pri nastavovan\u00ed servera, bud\u00fa parametre pre konkr\u00e9tny server pre\u010d\u00edtan\u00e9 zo s\u00faboru.<\/p>\n<p>Ale z dlhodob\u00e9ho h\u013eadiska je lep\u0161ie vyu\u017ei\u0165 DB na uchov\u00e1vanie nastaven\u00ed, stavov a z\u00e1znamov in\u0161tal\u00e1ci\u00ed serverov.<\/p>\n<p>Samozrejme, s jednou DB sa neob\u00eddeme, a bude potrebn\u00e9 vytvori\u0165 klientsk\u00fa \u010das\u0165, pomocou ktorej sa bud\u00fa pren\u00e1\u0161a\u0165 nastavenia do datab\u00e1zy. Realizova\u0165 to je n\u00e1ro\u010dnej\u0161ie ne\u017e s textov\u00fdm s\u00faborom, ale v skuto\u010dnosti to nie je tak\u00e9 \u0165a\u017ek\u00e9, ako sa zd\u00e1. Minim\u00e1lnu verziu klienta, ktor\u00e1 jednoducho pren\u00e1\u0161a \u00fadaje do DB, je celkom mo\u017en\u00e9 nap\u00edsa\u0165 aj s\u00e1m. A v bud\u00facnosti sa d\u00e1 zlep\u0161i\u0165 klientsk\u00fd program vo vo\u013enom re\u017eime (spr\u00e1vy, tla\u010d \u0161t\u00edtkov, odosielanie upozornen\u00ed a in\u00e9, \u010do napadne).<\/p>\n<p>Po vykonan\u00ed ur\u010den\u00e9ho dotazu v datab\u00e1ze a uveden\u00ed s\u00e9riov\u00e9ho \u010d\u00edsla servera dostaneme po\u017eadovan\u00e9 parametre na nastavenie servera.<\/p>\n<p>Navy\u0161e, nepotrebujeme vym\u00fd\u0161\u013ea\u0165 blok\u00e1cie pre s\u00fabe\u017en\u00fd pr\u00edstup, ako v pr\u00edpade s textov\u00fdm s\u00faborom.<\/p>\n<p>Z\u00e1znamy o nastaven\u00ed m\u00f4\u017eeme na v\u0161etk\u00fdch f\u00e1zach zapisova\u0165 do DB a proces in\u0161tal\u00e1cie m\u00f4\u017eeme kontrolova\u0165 prostredn\u00edctvom udalost\u00ed a vlajok f\u00e1z pr\u00edpravy.<\/p>\n<p><b>Teraz vieme, ako:<\/p>\n<ul>\n<li>na\u010d\u00edta\u0165 server cez PXE;<\/li>\n<li>prenies\u0165 riadenie n\u00e1\u0161mu skriptu;<\/li>\n<li>identifikova\u0165 server, ktor\u00fd je potrebn\u00e9 pripravi\u0165, pod\u013ea s\u00e9riov\u00e9ho \u010d\u00edsla;<\/li>\n<li>konfigurova\u0165 server pomocou pr\u00edslu\u0161n\u00fdch n\u00e1strojov;<\/li>\n<li>pren\u00e1\u0161a\u0165 nastavenia do DB in\u0161tala\u010dn\u00e9ho servera pomocou klientskej \u010dasti.<\/li>\n<\/ul>\n<p>\nZistili sme, ak\u00fdm sp\u00f4sobom:<\/p>\n<ul>\n<li>in\u0161talovan\u00fd server z\u00edskava potrebn\u00e9 nastavenia z DB;<\/li>\n<li>cel\u00fd pokrok pr\u00edpravy sa zaznamen\u00e1va v DB (logy, udalosti, vlajky f\u00e1z).<\/li>\n<\/ul>\n<p><\/b><\/p>\n<h3>\u010co sa t\u00fdka r\u00f4znych typov in\u0161talovan\u00e9ho SW? Ako nain\u0161talova\u0165 hyperv\u00edzor, skop\u00edrova\u0165 VM a nastavi\u0165 v\u0161etko toto?<\/h3>\n<p>\nV pr\u00edpade nasadenia obrazu s\u00faborov\u00e9ho syst\u00e9mu (linux) na hardv\u00e9r je to celkom jednoduch\u00e9:<\/p>\n<ul>\n<li>Po nastaven\u00ed v\u0161etk\u00fdch komponentov servera rozmiestnime obraz.<\/li>\n<li>Nain\u0161talujeme zav\u00e1dza\u010d grub.<\/li>\n<li>Rob\u00edme chroot a nastavujeme v\u0161etko, \u010do potrebujeme.<\/li>\n<\/ul>\n<p>\n<b>Ako odovzda\u0165 riadenie in\u0161tal\u00e1torovi OS (na pr\u00edklade ESXi).<\/b><\/p>\n<ul>\n<li>Organizujeme odovzdanie riadenia z n\u00e1\u0161ho skriptu in\u0161tal\u00e1torovi hyperv\u00edzora prostredn\u00edctvom s\u00faboru s automatick\u00fdmi odpove\u010fami (kickstart):<\/li>\n<li>Odstra\u0148ujeme aktu\u00e1lne oddiely na disku.<\/li>\n<li>Vytv\u00e1rame oddiel s ve\u013ekos\u0165ou 500MB.<\/li>\n<li>Ozna\u010dujeme ho ako sp\u00fa\u0161\u0165ac\u00ed.<\/li>\n<li>Form\u00e1tujeme ho na FAT32.<\/li>\n<li>Kop\u00edrujeme na\u0148 do kore\u0148ov\u00e9ho adres\u00e1ra in\u0161tala\u010dn\u00e9 s\u00fabory ESXi.<\/li>\n<li>In\u0161talujeme syslinux.<\/li>\n<li>Kop\u00edrujeme syslinux.cfg do \/syslinux\/<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"plaintext\">default esxi\nprompt 1\ntimeout 50\nlabel esxi\nkernel mboot.c32\nappend -c boot.cfg<\/code><\/pre>\n<p><\/p>\n<ul>\n<li>Kop\u00edrujeme mboot.c32 do \/syslinux.<\/li>\n<li>V boot.cfg by malo by\u0165 kernelopt=ks=ftp:\/\/\/ks_esxi.cfg<\/li>\n<li>Re\u0161tartujeme server.<\/li>\n<\/ul>\n<p>\nPo re\u0161tarte servera sa z jeho pevn\u00e9ho disku spust\u00ed in\u0161tal\u00e1tor ESXi. V\u0161etky potrebn\u00e9 s\u00fabory in\u0161tal\u00e1tora sa na\u010d\u00edtaj\u00fa do pam\u00e4te a n\u00e1sledne za\u010dne in\u0161tal\u00e1cia ESXi pod\u013ea uveden\u00e9ho s\u00faboru s automatick\u00fdmi odpove\u010fami.<\/p>\n<p>Uvediem sem nieko\u013eko riadkov zo s\u00faboru s automatick\u00fdmi odpove\u010fami ks_esxi.cfg:<\/p>\n<pre><code class=\"plaintext\">%firstboot --interpreter=busybox\n\u2026\n# z\u00edskaj s\u00e9riov\u00e9 \u010d\u00edslo\n\nSYSSN=$(esxcli hardware platform get | grep Serial | awk -F \" \" '{print $3}')\n\n# z\u00edskaj IP\n\nIPADDRT=$(esxcli network ip interface ipv4 get | grep vmk0 | awk -F \" \" '{print $2}')\nLAST_OCTET=$(echo $IPADDRT | awk -F'.' '{print $4}')\n\n# pripoj NFS in\u0161tala\u010dn\u00e9ho servera\n\nesxcli storage nfs add -H is -s \/srv\/nfs_share -v nfsshare1\n\n# skop\u00edruj do\u010dasn\u00e9 nastavenia ssh pre pou\u017eitie ssh klienta\n\nmv \/etc\/ssh \/etc\/ssh.tmp\ncp -R \/vmfs\/volumes\/nfsshare1\/ssh \/etc\/\nchmod go-r \/etc\/ssh\/ssh_host_rsa_key\n\n# skop\u00edruj ovftool pre nasadenie VM teraz, m\u00f4\u017ee sa hodi\u0165 nesk\u00f4r\n\ncp -R \/vmfs\/volumes\/nfsshare1\/ovftool \/vmfs\/volumes\/datastore1\/\n\n# nasadzujeme VM\n\n\/vmfs\/volumes\/datastore1\/ovftool\/tools\/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM1 \/vmfs\/volumes\/nfsshare1\/VM_T\/VM1.ova vi:\/\/root:esxi_password@127.0.0.1\n\/vmfs\/volumes\/datastore1\/ovftool\/tools\/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM2 \/vmfs\/volumes\/nfsshare1\/VM_T\/VM2.ova vi:\/\/root:esxi_password@127.0.0.1\n\n# z\u00edskaj riadok s nastaveniami n\u00e1\u0161ho servera\n\nssh 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' &gt; \/tmp\/servers\n...\n# generuj skript na konfigur\u00e1ciu siete\n\necho '#!\/bin\/sh' &gt; \/vmfs\/volumes\/datastore1\/netconf.sh\necho \"esxcli network ip interface ipv4 set -i=vmk0 -t=static --ipv4=$IPADDR --netmask=$S_SUB || exit 1\" &gt;&gt; \/vmfs\/volumes\/datastore1\/netconf.sh\necho \"esxcli network ip route ipv4 add -g=$S_GW -n=default || exit 1\" &gt;&gt; \/vmfs\/volumes\/datastore1\/netconf.sh\nchmod a+x \/vmfs\/volumes\/datastore1\/netconf.sh\n\n# nastav parameter guestinfo.esxihost.id, uv\u00e1dzaj\u00faci s\u00e9riov\u00e9 \u010d\u00edslo\n\necho \"guestinfo.esxihost.id = \"$SYSSN\"\" &gt;&gt; \/vmfs\/volumes\/datastore1\/VM1\/VM1.vmx\necho \"guestinfo.esxihost.id = \"$SYSSN\"\" &gt;&gt; \/vmfs\/volumes\/datastore1\/VM2\/VM2.vmx\n...\n# aktualizuj inform\u00e1cie v datab\u00e1ze\n\nSYSNAME=$(esxcli hardware platform get | grep Product | sed 's\/Product Name:\/\/;s\/^ *\/\/')\nUUID=$(vim-cmd hostsvc\/hostsummary | grep uuid | sed 's\/ \/\/g;s\/,$\/\/;s\/^uuid=\"\/\/;s\/\"$\/\/')\nssh root@is \"mysql -D'servers' -u'user' -p'secretpassword' -e \"UPDATE servers ... SET ... WHERE servers.serial='$SYSSN'\"\"\nssh root@is \"mysql -D'servers' -u'user' -p'secretpassword' -e \"INSERT INTO events ...\"\"\n\n# obnov nastavenia SSH\n\nrm -rf \/etc\/ssh\nmv \/etc\/ssh.tmp \/etc\/ssh\n\n# nastavujeme sie\u0165 a re\u0161tartujeme\n\nesxcli system hostname set --fqdn=esx-${G_NICK}.x5.ru\n\/vmfs\/volumes\/datastore1\/netconf.sh\nreboot\n<\/code><\/pre>\n<p>\nV tomto \u0161t\u00e1diu je hyperv\u00edzor nain\u0161talovan\u00fd a nastaven\u00fd, virtu\u00e1lne stroje s\u00fa skop\u00edrovan\u00e9.<\/p>\n<p>Ako teraz nastavi\u0165 virtu\u00e1lne stroje?<\/p>\n<p>Trochu sme podviedli: po\u010das in\u0161tal\u00e1cie sme nastavili parameter guestinfo.esxihost.id = \"$SYSSN\" v s\u00fabore VM1.vmx, uviedli sme v \u0148om s\u00e9riov\u00e9 \u010d\u00edslo fyzick\u00e9ho servera.<\/p>\n<p>Teraz, po \u0161tarte virtu\u00e1lneho stroja (s nain\u0161talovan\u00fdm bal\u00edkom vmware-tools), sa m\u00f4\u017ee k tomuto parametru dosta\u0165:<\/p>\n<pre><code class=\"plaintext\">ESXI_SN=$(vmtoolsd --cmd \"info-get guestinfo.esxihost.id\")<\/code><\/pre>\n<p>\nTo znamen\u00e1, \u017ee VM bude schopn\u00e1 sa identifikova\u0165 (pozn\u00e1 s\u00e9riov\u00e9 \u010d\u00edslo fyzick\u00e9ho hostite\u013ea), z\u00edska\u0165 po\u017eiadavku na datab\u00e1zu in\u0161tala\u010dn\u00e9ho servera a z\u00edska\u0165 parametre, ktor\u00e9 je potrebn\u00e9 nakonfigurova\u0165. To v\u0161etko sa zabal\u00ed do skriptu, ktor\u00fd by sa mal spusti\u0165 automaticky pri \u0161tarte guestos vm (ale len raz: RunOnce).<\/p>\n<p><b>Teraz vieme, ako:<\/p>\n<ul>\n<li>na\u010d\u00edta\u0165 server cez PXE;<\/li>\n<li>prenies\u0165 riadenie n\u00e1\u0161mu skriptu;<\/li>\n<li>identifikova\u0165 server, ktor\u00fd je potrebn\u00e9 pripravi\u0165, pod\u013ea s\u00e9riov\u00e9ho \u010d\u00edsla;<\/li>\n<li>konfigurova\u0165 server pomocou pr\u00edslu\u0161n\u00fdch util\u00edt;<\/li>\n<li>pren\u00e1\u0161a\u0165 nastavenia do datab\u00e1zy in\u0161tala\u010dn\u00e9ho servera pomocou klientskej \u010dasti;<\/li>\n<li>konfigurova\u0165 r\u00f4zne typy softv\u00e9ru, vr\u00e1tane nasadenia hyperv\u00edzora esxi a nastavenia virtu\u00e1lnych strojov (a v\u0161etko automaticky).<\/li>\n<\/ul>\n<p>\nZistili sme, ak\u00fdm sp\u00f4sobom:<\/p>\n<ul>\n<li>in\u0161talovan\u00fd server z\u00edskava potrebn\u00e9 nastavenia z DB;<\/li>\n<li>cel\u00fd pokrok pr\u00edpravy sa zaznamen\u00e1va v DB (logy, udalosti, vlajky f\u00e1z).<\/li>\n<\/ul>\n<p><\/b><br \/>\n<u><b>Z\u00e1ver:<\/b><\/u><\/p>\n<p>Mysl\u00edm, \u017ee jedine\u010dnos\u0165 tohto rie\u0161enia spo\u010d\u00edva v flexibilite, jednoduchej pou\u017eit\u00ed a jeho mo\u017enostiach a univerz\u00e1lnosti.<\/p>\n<p>Pros\u00edm, nap\u00ed\u0161te vo koment\u00e1roch, \u010do si mysl\u00edte.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/X5RetailGroup\/blog\/493124\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u044f \u0414\u0435\u043d\u0438\u0441 \u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2013 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 X5. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438 \u0433\u0438\u0431\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435. \u041f\u043e\u0434 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u043e\u0439 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f: \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":74906,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-74905","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u044f \u0414\u0435\u043d\u0438\u0441 \u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2013 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 X5.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/bare-metal-provisioning-svoimi-rukami-ili-avtomaticheskaya-podgotovka-serverov-s-nulya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Bare-Metal Provisioning \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438, \u0438\u043b\u0438 \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0441 \u043d\u0443\u043b\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u044f \u0414\u0435\u043d\u0438\u0441 \u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2013 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 X5.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/bare-metal-provisioning-svoimi-rukami-ili-avtomaticheskaya-podgotovka-serverov-s-nulya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-21T17:42:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-21T17:42:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Bare-Metal Provisioning vlastn\u00fdmi rukami, alebo Automatick\u00e1 pr\u00edprava serverov od nuly | ProHoster","description":"Ahoj, som Denis a jednou z mojich aktiv\u00edt je v\u00fdvoj infra\u0161trukt\u00farnych rie\u0161en\u00ed v X5.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/bare-metal-provisioning-svoimi-rukami-ili-avtomaticheskaya-podgotovka-serverov-s-nulya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Bare-Metal Provisioning \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438, \u0438\u043b\u0438 \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0441 \u043d\u0443\u043b\u044f | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u044f \u0414\u0435\u043d\u0438\u0441 \u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u2013 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 X5.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/bare-metal-provisioning-svoimi-rukami-ili-avtomaticheskaya-podgotovka-serverov-s-nulya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-21T17:42:25+00:00","article:modified_time":"2020-03-21T17:42:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74905","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:05:46","updated":"2026-02-09 16:50:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/74905","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=74905"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/74905\/revisions"}],"predecessor-version":[{"id":158713,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/74905\/revisions\/158713"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/74906"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=74905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=74905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=74905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}