{"id":90386,"date":"2020-07-31T13:42:20","date_gmt":"2020-07-31T11:42:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management"},"modified":"2020-07-31T13:42:20","modified_gmt":"2020-07-31T11:42:20","slug":"triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","title":{"rendered":"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Rok sa ch\u00fdlil k Nov\u00e9mu roku. Deti z celej krajiny u\u017e poslali listy Je\u017ei\u0161kovi alebo si vymysleli \u017eelania, a ich hlavn\u00fd vykon\u00e1vate\u013e \u2014 jeden z ve\u013ek\u00fdch predajcov \u2014 sa pripravoval na vyvrcholenie predaja. V decembri za\u0165a\u017eenos\u0165 jeho d\u00e1tov\u00e9ho centra narast\u00e1 nieko\u013ekon\u00e1sobne. Preto sa spolo\u010dnos\u0165 rozhodla modernizova\u0165 d\u00e1tov\u00e9 centrum a zavies\u0165 do prev\u00e1dzky nieko\u013eko desiatok nov\u00fdch serverov na miesto zastaran\u00e9ho vybavenia. T\u00fdmto sa rozpr\u00e1vka so snehov\u00fdmi vlo\u010dkami kon\u010d\u00ed a za\u010d\u00edna thriller. <\/p>\n<p><img decoding=\"async\" alt=\"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/ebc2128d73e9a0e7f1e383b4b04ee492.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZariadenie pri\u0161lo na miesto nieko\u013eko mesiacov pred vrcholom predaja. Prev\u00e1dzkov\u00e1 slu\u017eba samozrejme vie, ako a \u010do nastavi\u0165 na serveroch, aby ich uviedli do produk\u010dn\u00e9ho prostredia. Ale my sme potrebovali tento proces automatizova\u0165 a eliminova\u0165 \u013eudsk\u00fd faktor. Navy\u0161e servery nahr\u00e1dzali pred migr\u00e1ciou s\u00fabor syst\u00e9mov SAP, ktor\u00e9 s\u00fa kriticky d\u00f4le\u017eit\u00e9 pre spolo\u010dnos\u0165. <\/p>\n<p>Uv\u00e1dzanie nov\u00fdch serverov do prev\u00e1dzky bolo pr\u00edsne viazan\u00e9 na term\u00edn. Posun\u00fa\u0165 ho znamenalo ohrozi\u0165 nielen dod\u00e1vky miliardy dar\u010dekov, ale aj migr\u00e1ciu syst\u00e9mov. Zmeni\u0165 d\u00e1tum by nedok\u00e1zal ani t\u00edm v zlo\u017een\u00ed Je\u017ei\u0161ka a Santa Clausa \u2014 syst\u00e9m SAP pre spr\u00e1vu skladu je mo\u017en\u00e9 presun\u00fa\u0165 iba raz ro\u010dne. Od 31. decembra do 1. janu\u00e1ra obrovsk\u00e9 sklady predajcu, ktor\u00e9 s\u00fa rozlohou ako 20 futbalov\u00fdch ihr\u00edsk, na 15 hod\u00edn zastavuj\u00fa svoju \u010dinnos\u0165. A to je jedin\u00e9 \u010dasov\u00e9 obdobie na presun syst\u00e9mu. Nemali sme pr\u00e1vo na chybu pri uv\u00e1dzan\u00ed serverov do prev\u00e1dzky. <\/p>\n<p>Hne\u010f na \u00favod vysvetl\u00edm: m\u00f4j pr\u00edbeh odr\u00e1\u017ea n\u00e1stroje a procesy spr\u00e1vy konfigur\u00e1ci\u00ed, ktor\u00e9 na\u0161a t\u00edm vyu\u017e\u00edva.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKomplex spr\u00e1vy konfigur\u00e1ci\u00ed pozost\u00e1va z nieko\u013ek\u00fdch \u00farovn\u00ed. K\u013e\u00fa\u010dovou s\u00fa\u010das\u0165ou je CMS syst\u00e9m. Pri priemyseln\u00fdch \u010dinnostiach by absencia jednej z \u00farovn\u00ed nevyhnutne priviedla k nepr\u00edjemn\u00fdm prekvapeniam.<\/p>\n<h1>Spr\u00e1va in\u0161tal\u00e1cie OS<\/h1>\n<p>\nPrv\u00e1 \u00farove\u0148 \u2014 to je syst\u00e9m spr\u00e1vy in\u0161tal\u00e1cie opera\u010dn\u00fdch syst\u00e9mov na fyzick\u00fdch a virtu\u00e1lnych serveroch. Vytv\u00e1ra z\u00e1kladn\u00e9 konfigur\u00e1cie OS, \u010d\u00edm odstra\u0148uje \u013eudsk\u00fd faktor. <\/p>\n<p>S touto syst\u00e9mou sme z\u00edskavali \u0161tandardizovan\u00e9 a vhodn\u00e9 pre \u010fal\u0161iu automatiz\u00e1ciu verzie serverov s OS. Pri \u201erozlievan\u00ed\u201c dost\u00e1vali minim\u00e1lny s\u00fabor lok\u00e1lnych pou\u017e\u00edvate\u013eov a verejn\u00fdch k\u013e\u00fa\u010dov SSH, ako aj zos\u00faladenej konfigur\u00e1cie OS. Mohli sme spo\u013eahlivo spravova\u0165 servery cez CMS a boli sme si ist\u00ed, \u017ee \"dole\", na \u00farovni OS, nie s\u00fa \u017eiadne prekvapenia. <\/p>\n<p>\u00dalohou \u201emaxim\u00e1lne\u201c pre syst\u00e9m spr\u00e1vy in\u0161tal\u00e1cie je automaticky nastavova\u0165 servery od \u00farovne BIOS\/Firmware po OS. Mnoh\u00e9 z\u00e1vis\u00ed od hardv\u00e9ru a nastavenia. Pre heterog\u00e9nny hardv\u00e9r mo\u017eno zv\u00e1\u017ei\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dmtf.org\/standards\/redfish\">REDFISH API<\/a><\/noindex>. Ak je v\u0161etok \"hardv\u00e9r\" od jedn\u00e9ho dod\u00e1vate\u013ea, \u010dasto je pohodlnej\u0161ie pou\u017e\u00edva\u0165 hotov\u00e9 spr\u00e1vcovsk\u00e9 n\u00e1stroje (napr\u00edklad HP ILO Amplifier, DELL OpenManage a pod.).<\/p>\n<p>Na in\u0161tal\u00e1ciu OS na fyzick\u00fdch serveroch sme pou\u017e\u00edvali v\u0161etk\u00fdm zn\u00e1my Cobbler, v ktorom je definovan\u00fd s\u00fabor dohodnut\u00fdch profilov in\u0161tal\u00e1cie so servisn\u00fdm oddelen\u00edm. Pri prid\u00e1van\u00ed nov\u00e9ho servera do infra\u0161trukt\u00fary in\u017einier priradil MAC-adresu servera po\u017eadovan\u00fd profil v Cobbleri. Pri prvom spusten\u00ed cez sie\u0165 server dostal do\u010dasn\u00fa adresu a najnov\u0161\u00ed OS. Potom ho previedli do cie\u013eovej VLAN\/IP-adres\u00e1cie a pokra\u010dovali v pr\u00e1ci u\u017e tam. \u00c1no, zmena VLAN zaber\u00e1 \u010das a vy\u017eaduje s\u00fahlas, ale poskytuje dodato\u010dn\u00fa ochranu pred n\u00e1hodnou in\u0161tal\u00e1ciou servera v produk\u010dnom prostred\u00ed.<\/p>\n<p>Virtu\u00e1lne servery sme vytv\u00e1rali na z\u00e1klade \u0161abl\u00f3n pripraven\u00fdch pomocou HashiCorp Packer. D\u00f4vod bol rovnak\u00fd: aby sa predi\u0161lo mo\u017en\u00fdm \u013eudsk\u00fdm chyb\u00e1m pri in\u0161tal\u00e1cii OS. Av\u0161ak, na rozdiel od fyzick\u00fdch serverov, Packer umo\u017e\u0148uje nevyu\u017e\u00edva\u0165 PXE, sie\u0165ov\u00e9 sp\u00fa\u0161\u0165anie a zmenu VLAN. To zjednodu\u0161ilo vytv\u00e1ranie virtu\u00e1lnych serverov. <\/p>\n<p><img decoding=\"async\" alt=\"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/8cde23a4ad2ba1573bc88ec174bfe6b5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Obr. 1. Spr\u00e1va in\u0161tal\u00e1cie opera\u010dn\u00fdch syst\u00e9mov.<\/i><\/p>\n<h1>Spr\u00e1va tajomstiev<\/h1>\n<p>\nAk\u00fdko\u013evek syst\u00e9m spr\u00e1vy konfigur\u00e1ci\u00ed obsahuje \u00fadaje, ktor\u00e9 by mali by\u0165 skryt\u00e9 pred be\u017en\u00fdmi pou\u017e\u00edvate\u013emi, ale s\u00fa potrebn\u00e9 pre pr\u00edpravu syst\u00e9mov. Ide o hesl\u00e1 lok\u00e1lnych pou\u017e\u00edvate\u013eov a servisn\u00fdch \u00fa\u010dtov, k\u013e\u00fa\u010de certifik\u00e1tov, r\u00f4zne API Tokens a pod. Tieto sa zvy\u010dajne naz\u00fdvaj\u00fa \u201etajomstv\u00e1\u201c.<\/p>\n<p>Ak sa od za\u010diatku neur\u010d\u00ed, kde a ako uchov\u00e1va\u0165 tieto tajomstv\u00e1, v z\u00e1vislosti od pr\u00edsnosti po\u017eiadaviek informa\u010dnej bezpe\u010dnosti s\u00fa pravdepodobn\u00e9 nasleduj\u00face sp\u00f4soby uchov\u00e1vania:<\/p>\n<ul>\n<li>priamo v k\u00f3de spr\u00e1vy konfigur\u00e1cie alebo v s\u00faboroch v \u00falo\u017eisku;<\/li>\n<li>v \u0161pecializovan\u00fdch n\u00e1strojoch na spr\u00e1vu konfigur\u00e1ci\u00ed (napr. Ansible Vault);<\/li>\n<li>v syst\u00e9moch CI\/CD (Jenkins\/TeamCity\/GitLab\/ a pod.) alebo v syst\u00e9moch spr\u00e1vy konfigur\u00e1ci\u00ed (Ansible Tower\/Ansible AWX);<\/li>\n<li>tajomstv\u00e1 m\u00f4\u017eu by\u0165 tie\u017e pren\u00e1\u0161an\u00e9 na \u201eru\u010dnom riaden\u00ed\u201c. Napr\u00edklad ich umiestni\u0165 na dohodnut\u00e9 miesto a potom ich vyu\u017e\u00edvaj\u00fa syst\u00e9my spr\u00e1vy konfigur\u00e1ci\u00ed;<\/li>\n<li>r\u00f4zne kombin\u00e1cie vy\u0161\u0161ie op\u00edsan\u00e9ho.<\/li>\n<\/ul>\n<p>\nKa\u017ed\u00e1 met\u00f3da m\u00e1 svoje nev\u00fdhody. Hlavn\u00e1 z nich - absencia polit\u00edk pr\u00edstupu k tajnostiam: nie je mo\u017en\u00e9 alebo je \u0165a\u017ek\u00e9 zisti\u0165, kto m\u00f4\u017ee pou\u017e\u00edva\u0165 tie alebo on\u00e9 tajomstv\u00e1. \u010eal\u0161\u00ed m\u00ednus - absencia auditu pr\u00edstupu a plnohodnotn\u00e9ho \u017eivotn\u00e9ho cyklu. Ako r\u00fdchlo vymeni\u0165, napr\u00edklad, verejn\u00fd k\u013e\u00fa\u010d, ktor\u00fd je zap\u00edsan\u00fd v k\u00f3de a v nieko\u013ek\u00fdch s\u00favisiacich syst\u00e9moch?<\/p>\n<p>Pou\u017eili sme centralizovan\u00e9 \u00falo\u017eisko tajomstiev HashiCorp Vault. To n\u00e1m umo\u017enilo: <\/p>\n<ul>\n<li>bezpe\u010dne uchov\u00e1va\u0165 tajomstv\u00e1. S\u00fa \u0161ifrovan\u00e9, a aj keby niekto z\u00edskal pr\u00edstup k datab\u00e1ze \u00falo\u017eiska Vault (napr\u00edklad obnovovan\u00edm z rezervnej k\u00f3pie), nebude schopn\u00fd pre\u010d\u00edta\u0165 tam ulo\u017een\u00e9 tajomstv\u00e1; <\/li>\n<li>organizova\u0165 politiky pr\u00edstupu k tajomstvem. Pou\u017e\u00edvate\u013eom a aplik\u00e1ci\u00e1m s\u00fa dostupn\u00e9 len \u201evyhraden\u00e9\u201c im tajomstv\u00e1;<\/li>\n<li>vykon\u00e1va\u0165 audit pr\u00edstupu k tajomstvem. Ak\u00e9ko\u013evek akcie s tajomstvom s\u00fa zaznamen\u00e1van\u00e9 do aud\u00edtorsk\u00e9ho denn\u00edka Vault;<\/li>\n<li>organizova\u0165 plnohodnotn\u00fd \u201e\u017eivotn\u00fd cyklus\u201c pr\u00e1ce s tajomstvom. M\u00f4\u017eu sa vytv\u00e1ra\u0165, odobera\u0165, nastavova\u0165 doby platnosti at\u010f.<\/li>\n<li>\u013eahko sa integrova\u0165 s in\u00fdmi syst\u00e9mami, ktor\u00e9 potrebuj\u00fa pr\u00edstup k tajomstvam;<\/li>\n<li>a navy\u0161e aplikova\u0165 end-to-end \u0161ifrovanie, jednorazov\u00e9 hesl\u00e1 pre OS a DB, certifik\u00e1ty opr\u00e1vnen\u00fdch centier at\u010f. <\/li>\n<\/ul>\n<p>\nTeraz prejdeme k centr\u00e1lnej autentifika\u010dnej a autoriza\u010dnej syst\u00e9m. M\u00f4\u017eeme sa zaob\u00eds\u0165 aj bez nej, ale spravova\u0165 pou\u017e\u00edvate\u013eov v mnoh\u00fdch sprievodn\u00fdch syst\u00e9moch je pr\u00edli\u0161 zlo\u017eit\u00e9. Nastavili sme autentifik\u00e1ciu a autoriz\u00e1ciu cez slu\u017ebu LDAP. Inak by v tom istom Vault bolo potrebn\u00e9 nepretr\u017eite vyd\u00e1va\u0165 a vies\u0165 evidenciu autentifika\u010dn\u00fdch tokenov pre pou\u017e\u00edvate\u013eov. A odstra\u0148ovanie a prid\u00e1vanie pou\u017e\u00edvate\u013eov by sa stalo questom \u201ev\u0161ade som vytvoril\/odstr\u00e1nil t\u00fato identifik\u00e1ciu?\u201c <\/p>\n<p>Prid\u00e1vame \u010fal\u0161iu \u00farove\u0148 do na\u0161ej s\u00fastavy: spr\u00e1va tajomstiev a centr\u00e1lna autentifik\u00e1cia\/autoriz\u00e1cia:<\/p>\n<p><img decoding=\"async\" alt=\"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/993e863417898c39940fe0bc9ee55b1e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Obr. 2. Spr\u00e1va tajomstiev.<\/i><\/p>\n<h1>Spr\u00e1va konfigur\u00e1ci\u00ed<\/h1>\n<p>\nDostali sme sa do srdca \u2014 do syst\u00e9mu CMS. V na\u0161om pr\u00edpade ide o kombin\u00e1ciu Ansible a Red Hat Ansible AWX. <\/p>\n<p>Namiesto Ansible m\u00f4\u017ee by\u0165 pou\u017eit\u00fd Chef, Puppet, SaltStack. Vybrali sme Ansible z nieko\u013ek\u00fdch krit\u00e9ri\u00ed. <\/p>\n<ul>\n<li>Po prv\u00e9, je to univerz\u00e1lnos\u0165. Sada pripraven\u00fdch modulov na spr\u00e1vu <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/modules_by_category.html\">na n\u00e1s rob\u00ed dojem<\/a><\/noindex>. A ak je ich nedostatok, d\u00e1 sa h\u013eada\u0165 na GitHub a Galaxy. <\/li>\n<li>Po druh\u00e9, nie je potrebn\u00e9 in\u0161talova\u0165 a udr\u017eiava\u0165 agentov na spravovanom zariaden\u00ed, dokazova\u0165, \u017ee neru\u0161ia za\u0165a\u017eenie a potvrdzova\u0165 absenciu \"z\u00e1lohovan\u00ed\". <\/li>\n<li>Po tretie, Ansible m\u00e1 n\u00edzky prah vstupu. Odborne zdatn\u00fd in\u017einier nap\u00ed\u0161e funk\u010dn\u00fd playbook doslova v prv\u00fd de\u0148 pr\u00e1ce s produktom.<\/li>\n<\/ul>\n<p>\nAle len Ansible v priemyselnom prostred\u00ed n\u00e1m nesta\u010dilo. Inak by vzniklo ve\u013ea probl\u00e9mov s obmedzen\u00edm pr\u00edstupu a auditom \u010dinnost\u00ed administr\u00e1torov. Ako oddeli\u0165 pr\u00edstup? Ve\u010f bolo potrebn\u00e9, aby ka\u017ed\u00e9 oddelenie spravovalo (\u010d\u00edtaj \u2014 sp\u00fa\u0161\u0165alo Ansible playbook) \"svoj\" s\u00fabor serverov. Ako povoli\u0165 sp\u00fa\u0161\u0165anie konkr\u00e9tnych Ansible playbook iba ur\u010dit\u00fdm zamestnancom? Alebo ako sledova\u0165, kto sp\u00fa\u0161\u0165al playbook, bez zakladania mno\u017estva lok\u00e1lnych u\u017e\u00edvate\u013esk\u00fdch \u00fa\u010dtov na serveroch a zariadeniach pod spr\u00e1vou Ansible?<\/p>\n<p>Ve\u013ek\u00fa \u010das\u0165 podobn\u00fdch ot\u00e1zok rie\u0161i Red Hat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ansible.com\/products\/tower\">Ansible Tower<\/a><\/noindex>, alebo jeho open-source upstream projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ansible\/awx\">Ansible AWX<\/a><\/noindex>. Preto sme ho uprednostnili pre z\u00e1kazn\u00edka. <\/p>\n<p>A e\u0161te jeden detail k portretu n\u00e1\u0161ho syst\u00e9mu CMS. Ansible playbook mus\u00ed by\u0165 ulo\u017een\u00fd v syst\u00e9moch spr\u00e1vy k\u00f3du. U n\u00e1s je to <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/\">GitLab CE<\/a><\/noindex>.<\/p>\n<p>Tak\u017ee samotn\u00e9 konfigur\u00e1cie spravuje kombin\u00e1cia Ansible\/Ansible AWX\/GitLab (pozri Obr. 3). Samozrejme, AWX\/GitLab s\u00fa integrovan\u00e9 s jednotn\u00fdm syst\u00e9mom autentifik\u00e1cie, a Ansible playbook \u2014 s HashiCorp Vault. Konfigur\u00e1cie sa dostan\u00fa do produk\u010dn\u00e9ho prostredia len cez Ansible AWX, v ktorom s\u00fa stanoven\u00e9 v\u0161etky \"pravidl\u00e1 hry\": kto a \u010do m\u00f4\u017ee konfigurova\u0165, odkia\u013e bra\u0165 k\u00f3d na spr\u00e1vu konfigur\u00e1ci\u00ed pre CMS at\u010f.<\/p>\n<p><img decoding=\"async\" alt=\"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f4f5b3904a2145d7283cd52f921bca89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Obr. 3. Spr\u00e1va konfigur\u00e1ci\u00ed.<\/i><\/p>\n<h1>Spr\u00e1va testovania<\/h1>\n<p>\nNa\u0161a konfigur\u00e1cia je prezentovan\u00e1 vo forme k\u00f3du. Preto sme n\u00faten\u00ed hra\u0165 pod\u013ea t\u00fdch ist\u00fdch pravidiel ako v\u00fdvoj\u00e1ri softv\u00e9ru. Museli sme usporiada\u0165 procesy v\u00fdvoja, nepretr\u017eit\u00e9ho testovania, dod\u00e1vky a aplik\u00e1cie konfigura\u010dn\u00e9ho k\u00f3du na produk\u010dn\u00e9 servery.<\/p>\n<p>Ak to neurob\u00edte ihne\u010f, nap\u00edsan\u00e9 \u00falohy pre konfigur\u00e1ciu bu\u010f prestan\u00fa fungova\u0165 a bud\u00fa sa meni\u0165, alebo sa prestan\u00fa sp\u00fa\u0161\u0165a\u0165 v produkcii. Liekom na t\u00fato boles\u0165 je zn\u00e1ma met\u00f3da a t\u00e1to sa v projekte osved\u010dila:<\/p>\n<ul>\n<li>ka\u017ed\u00e1 \u00faloha je pokryt\u00e1 modulov\u00fdmi testami;<\/li>\n<li>testy sa automaticky sp\u00fa\u0161\u0165aj\u00fa pri akejko\u013evek zmene v k\u00f3de, ktor\u00fd spravuje konfigur\u00e1cie;<\/li>\n<li>zmeny v k\u00f3de spr\u00e1vy konfigur\u00e1ci\u00ed prech\u00e1dzaj\u00fa do produk\u010dn\u00e9ho prostredia len po \u00faspe\u0161nom prechode v\u0161etk\u00fdch testov a review k\u00f3du.<\/li>\n<\/ul>\n<p>\nV\u00fdvoj k\u00f3du a spr\u00e1va konfigur\u00e1ci\u00ed sa stali pokojnej\u0161\u00edmi a predv\u00eddate\u013enej\u0161\u00edmi. Pre organiz\u00e1ciu kontinu\u00e1lneho testovania sme pou\u017eili n\u00e1stroje GitLab CI\/CD, a ako r\u00e1mec pre organiz\u00e1ciu testov sme zvolili <noindex><a rel=\"nofollow\" href=\"https:\/\/molecule.readthedocs.io\/en\/latest\/\">Ansible Molecule<\/a><\/noindex>.<\/p>\n<p>Pri akejko\u013evek zmene v k\u00f3de spr\u00e1vy konfigur\u00e1ci\u00ed GitLab CI\/CD vyvol\u00e1 Molecule: <\/p>\n<ul>\n<li>ten kontroluje syntax k\u00f3du, <\/li>\n<li>umo\u017e\u0148uje Docker kontajner, <\/li>\n<li>aplikuje upraven\u00fd k\u00f3d do vytvoren\u00e9ho kontajnera, <\/li>\n<li>kontroluje \u00falohu na idempotentnos\u0165 a sp\u00fa\u0161\u0165a testy pre tento k\u00f3d (granularita je tu na \u00farovni ansible role, pozri Obr. 4).<\/li>\n<\/ul>\n<p>\nKonfigur\u00e1cie do produk\u010dn\u00e9ho prostredia sme dod\u00e1vali pomocou Ansible AWX. Odpovedn\u00ed za prev\u00e1dzku in\u017einieri aplikovali zmeny v konfigur\u00e1cii prostredn\u00edctvom vopred definovan\u00fdch \u0161abl\u00f3n. AWX pri ka\u017edom pou\u017eit\u00ed \u201epo\u017eiadal\u201c o posledn\u00fa verziu k\u00f3du z master vetvy GitLab. Tak sme vyl\u00fa\u010dili pou\u017eitie neoveren\u00e9ho alebo zastaran\u00e9ho k\u00f3du v produk\u010dnom prostred\u00ed. Samozrejme, k\u00f3d sa do master vetvy dostal len po testovan\u00ed, prezeran\u00ed a schv\u00e1len\u00ed.<\/p>\n<p><img decoding=\"async\" alt=\"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/aa8f6205f05792a6a1120ad7360ab102.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Obr. 4. Automatizovan\u00e9 testovanie \u00faloh v GitLab CI\/CD.<\/i><\/p>\n<p>Existuje e\u0161te probl\u00e9m spojen\u00fd s prev\u00e1dzkou produk\u010dn\u00fdch syst\u00e9mov. V re\u00e1lnom \u017eivote je ve\u013emi \u0165a\u017ek\u00e9 robi\u0165 zmeny v konfigur\u00e1cii len cez k\u00f3d CMS. Vznikaj\u00fa mimoriadne situ\u00e1cie, ke\u010f in\u017einier mus\u00ed zmeni\u0165 konfigur\u00e1ciu \u201etu a teraz\u201c, bez \u010dakania na \u00fapravu k\u00f3du, testovanie, schv\u00e1lenie a pod.<\/p>\n<p>V\u00fdsledkom s\u00fa rozdiely v konfigur\u00e1cii na rovnakom hardv\u00e9ri (napr\u00edklad na uzloch HA-klastra r\u00f4zna konfigur\u00e1cia nastaven\u00ed sysctl). Alebo skuto\u010dn\u00e1 konfigur\u00e1cia na hardv\u00e9ri sa l\u00ed\u0161i od tej, ktor\u00e1 je definovan\u00e1 v k\u00f3de CMS. <\/p>\n<p>Preto v doplnku k nepretr\u017eit\u00e9mu testovaniu kontrolujeme produk\u010dn\u00e9 prostredia na odch\u00fdlky v konfigur\u00e1ci\u00e1ch. Vybrali sme najjednoduch\u0161iu mo\u017enos\u0165: spustenie k\u00f3du konfigur\u00e1cie CMS v re\u017eime \"dry run\", teda bez vykon\u00e1vania zmien, ale s upozornen\u00edm na v\u0161etky odch\u00fdlky medzi pl\u00e1novanou a skuto\u010dnou konfigur\u00e1ciou. To sme implementovali pomocou periodick\u00fdch spusten\u00ed v\u0161etk\u00fdch Ansible playbookov s opciou \"--check\" na produk\u010dn\u00fdch serveroch. Za spustenie a aktu\u00e1lnos\u0165 playbooku, ako v\u017edy, zodpoved\u00e1 Ansible AWX (pozri Obr. 5):<\/p>\n<p><img decoding=\"async\" alt=\"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/108a5a473f60ab76ee15f9334ebcbab7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Obr. 5. Kontroly na rozdiely v konfigur\u00e1ci\u00e1ch v Ansible AWX.<\/i><\/p>\n<p>Po kontrol\u00e1ch AWX posiela spr\u00e1vu o rozdielo administr\u00e1torom. T\u00ed sk\u00famaj\u00fa problematick\u00fa konfigur\u00e1ciu a potom ju opravuj\u00fa prostredn\u00edctvom upraven\u00fdch playbook. Takto udr\u017eiavame konfigur\u00e1ciu v produk\u010dnom prostred\u00ed a CMS je v\u017edy v aktu\u00e1lnom a synchronizovanom stave. To zbavuje nepr\u00edjemn\u00fdch \u201ez\u00e1zrakov\u201c, ke\u010f sa k\u00f3d CMS aplikuje na \u201e\u017eiv\u00fdch\u201c serveroch.<\/p>\n<p>Teraz m\u00e1me d\u00f4le\u017eit\u00fa \u00farove\u0148 testovania pozost\u00e1vaj\u00facu z Ansible AWX\/GitLab\/Molecule (Obr. 6).<\/p>\n<p><img decoding=\"async\" alt=\"Triler o nastavovan\u00ed serverov bez k\u00faziel s Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f487f5603e90b0c753fb9decf9018b11.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Obr. 6. Spr\u00e1va testovania.<\/i><\/p>\n<p>Zlo\u017eit\u00e9? Nes\u00fahlas\u00edm. Ale tak\u00fd komplex riadenia konfigur\u00e1ci\u00ed sa stal vy\u010derp\u00e1vaj\u00facou odpove\u010fou na mno\u017estvo ot\u00e1zok spojen\u00fdch s automatiz\u00e1ciou nastavenia serverov. Teraz m\u00e1 retailer pri typov\u00fdch serveroch v\u017edy pr\u00edsne definovan\u00fa konfigur\u00e1ciu. CMS, na rozdiel od in\u017einiera, nezabudne prida\u0165 potrebn\u00e9 nastavenia, vytvori\u0165 pou\u017e\u00edvate\u013eov a vykona\u0165 desiatky alebo stovky po\u017eadovan\u00fdch nastaven\u00ed.<\/p>\n<p>V nastaveniach serverov a prostred\u00ed dnes ch\u00fdbaj\u00fa \u201etajn\u00e9 znalosti\u201c. V\u0161etky potrebn\u00e9 vlastnosti s\u00fa odrazen\u00e9 v playbook. \u017diadna \u010fal\u0161ia kreativita a nejasn\u00e9 in\u0161trukcie: \u201e<i>nain\u0161taluj ako be\u017en\u00fd Oracle, ale je potrebn\u00e9 p\u00e1r nastaven\u00ed sysctl predp\u00edsa\u0165, a prida\u0165 pou\u017e\u00edvate\u013eov s po\u017eadovan\u00fdm UID. Op\u00fdtaj sa chlapcov z prev\u00e1dzky, oni to vedia<\/i>\u00bb. <\/p>\n<p>Mo\u017enost zisti\u0165 rozdiely v konfigur\u00e1ci\u00e1ch a vopred ich opravi\u0165 prin\u00e1\u0161a pokoj. Bez syst\u00e9mu spr\u00e1vy konfigur\u00e1ci\u00ed sa to zvy\u010dajne jav\u00ed inak. Probl\u00e9my sa hromadia, a\u017e k\u00fdm raz ne \u201evystrelia\u201c v produkcii. Potom sa uskuto\u010dn\u00ed anal\u00fdza, kontroluj\u00fa a opravuj\u00fa konfigur\u00e1cie. A cyklus sa opakuje znova. <\/p>\n<p>A samozrejme sme ur\u00fdchlili uvedenie serverov do prev\u00e1dzky z nieko\u013ek\u00fdch dn\u00ed na hodiny.<\/p>\n<p>Na samotn\u00fd silvestrovsk\u00fd ve\u010der, ke\u010f deti radostne rozba\u013eovali dar\u010deky a dospel\u00ed si \u017eelali pod \u00fadery zvonov, na\u0161i in\u017einieri migrovali SAP syst\u00e9m na nov\u00e9 servery. Aj Dedo Mr\u00e1z povie, \u017ee najlep\u0161ie z\u00e1zraky s\u00fa dobre pripraven\u00e9. <\/p>\n<p>P.S. N\u00e1\u0161 t\u00edm sa \u010dasto stret\u00e1va s t\u00fdm, \u017ee klienti chc\u00fa \u010do najjednoduch\u0161ie rie\u0161i\u0165 \u00falohu spr\u00e1vy konfigur\u00e1ci\u00ed. Ide\u00e1lne by to malo by\u0165 ako z\u00e1zrak \u2014 jedn\u00fdm n\u00e1strojom. Ale v skuto\u010dnosti je to ove\u013ea zlo\u017eitej\u0161ie (\u00e1no, znova nepriniesli strieborn\u00e9 gu\u013eky): mus\u00edme vytvori\u0165 cel\u00fd proces s pomocou n\u00e1strojov priate\u013esk\u00fdch pre t\u00edm klienta.<\/p>\n<p><i>Autor: Sergej Artemov, architekt oddelenia <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/portal.jet.su\/about\/company\/structure\/?set_filter_structure=Y&amp;structure_UF_DEPARTMENT=56656\"><i>DevOps rie\u0161en\u00ed<\/i><\/a><\/noindex><i> Inf\u00f3syst\u00e9my Jet<\/i><br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/jetinfosystems\/blog\/513132\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436. \u0412 \u0434\u0435\u043a\u0430\u0431\u0440\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u0435\u0433\u043e \u0426\u041e\u0414 \u0432\u044b\u0440\u0430\u0441\u0442\u0430\u0435\u0442 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0435\u0448\u0438\u043b\u0430 \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440 \u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 \u0441\u0442\u0440\u043e\u0439 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043d\u043e\u0432\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432\u043c\u0435\u0441\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":90387,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-90386","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=\"\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436.\" \/>\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\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management\" \/>\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\udd47\u0422\u0440\u0438\u043b\u043b\u0435\u0440 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0435\u0437 \u0447\u0443\u0434\u0435\u0441 \u0441 Configuration Management | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management\" \/>\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-07-31T11:42:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-31T11:42:20+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\udd47Thriller o nastaven\u00ed serverov bez z\u00e1zrakov s Configuration Management | ProHoster","description":"Rok sa bl\u00ed\u017eil k Silvestru. Deti z celej krajiny u\u017e poslali listy Dedu Mr\u00e1zovi alebo si za\u017eelali dar\u010deky, a ich hlavn\u00fd vykon\u00e1vate\u013e \u2014 jeden z ve\u013ek\u00fdch maloobchodn\u00edkov \u2014 sa pripravoval na vrchol predaja.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","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\udd47\u0422\u0440\u0438\u043b\u043b\u0435\u0440 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0431\u0435\u0437 \u0447\u0443\u0434\u0435\u0441 \u0441 Configuration Management | ProHoster","og:description":"\u0414\u0435\u043b\u043e \u0431\u043b\u0438\u0437\u0438\u043b\u043e\u0441\u044c \u043a \u041d\u043e\u0432\u043e\u043c\u0443 \u0433\u043e\u0434\u0443. \u0414\u0435\u0442\u0438 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0438\u0441\u044c\u043c\u0430 \u0414\u0435\u0434\u0443 \u041c\u043e\u0440\u043e\u0437\u0443 \u0438\u043b\u0438 \u0437\u0430\u0433\u0430\u0434\u0430\u043b\u0438 \u0441\u0435\u0431\u0435 \u043f\u043e\u0434\u0430\u0440\u043a\u0438, \u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0440\u0438\u0442\u0435\u0439\u043b\u0435\u0440\u043e\u0432 \u2014 \u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u043a \u0430\u043f\u043e\u0444\u0435\u043e\u0437\u0443 \u043f\u0440\u043e\u0434\u0430\u0436.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","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-07-31T11:42:20+00:00","article:modified_time":"2020-07-31T11:42:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"90386","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 12:52:34","updated":"2022-09-28 09:47:54","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\/90386","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=90386"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/90386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/90387"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=90386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=90386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=90386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}