{"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\/sv\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","title":{"rendered":"En thriller om serverkonfiguration utan mirakel med Configuration Management","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Det n\u00e4rmade sig ny\u00e5r. Barnen i hela landet hade redan skickat sina brev till Jultomten eller \u00f6nskat sig presenter, och den fr\u00e4msta akt\u00f6ren \u2014 en av de stora \u00e5terf\u00f6rs\u00e4ljarna \u2014 f\u00f6rberedde sig f\u00f6r f\u00f6rs\u00e4ljningens apoteos. I december \u00f6kar belastningen p\u00e5 deras datacenter flera g\u00e5nger om. D\u00e4rf\u00f6r beslutade f\u00f6retaget att modernisera datacentret och ta i drift flera dussin nya servrar ist\u00e4llet f\u00f6r utrustning vars livsl\u00e4ngd hade n\u00e5tt slutet. H\u00e4r slutar ber\u00e4ttelsen mot bakgrund av snurrande sn\u00f6flingor, och en thriller b\u00f6rjar. <\/p>\n<p><img decoding=\"async\" alt=\"En thriller om serverkonfiguration utan mirakel med Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/ebc2128d73e9a0e7f1e383b4b04ee492.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nUtrustningen kom till platsen flera m\u00e5nader innan f\u00f6rs\u00e4ljningstoppen. Driftavdelningen vet sj\u00e4lvklart hur man st\u00e4ller in servrarna f\u00f6r att s\u00e4tta dem i produktionsmilj\u00f6. Men vi beh\u00f6vde automatisera detta och eliminera den m\u00e4nskliga faktorn. Dessutom ersatte servrarna en upps\u00e4ttning av kritiskt viktiga SAP-system inf\u00f6r migreringen f\u00f6r f\u00f6retaget. <\/p>\n<p>Inverkan av de nya servrarna var strikt kopplad till en deadline. Att flytta p\u00e5 den skulle s\u00e4tta b\u00e5de utskicken av en miljard presenter och migreringen av systemen i fara. Inte ens ett team best\u00e5ende av Jultomten och Santa Claus skulle kunna \u00e4ndra datumet \u2014 \u00f6verflyttningen av SAP-systemet f\u00f6r lagerhantering kan endast g\u00f6ras en g\u00e5ng om \u00e5ret. Mellan den 31 december och 1 januari st\u00e4nger de enorma lagren hos \u00e5terf\u00f6rs\u00e4ljaren, som sammanlagt \u00e4r som 20 fotbollsplaner, sin verksamhet i 15 timmar. Och detta \u00e4r den enda tidsperioden f\u00f6r systemets flytt. Vi hade ingen marginal f\u00f6r fel vid inf\u00f6randet av servrarna. <\/p>\n<p>L\u00e5t mig f\u00f6rklara direkt: min ber\u00e4ttelse \u00e5terspeglar det verktyg och den process f\u00f6r konfigurationshantering som v\u00e5rt team anv\u00e4nder.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKonfigurationshanteringssystemet best\u00e5r av flera niv\u00e5er. Den centrala komponenten \u00e4r CMS-systemet. I industriell drift skulle fr\u00e5nvaron av en av niv\u00e5erna ofr\u00e5nkomligen leda till obehagliga \u00f6verraskningar.<\/p>\n<h1>Hantera installationen av operativsystem<\/h1>\n<p>\nDen f\u00f6rsta niv\u00e5n \u00e4r systemet f\u00f6r hantering av installationen av operativsystem p\u00e5 fysiska och virtuella servrar. Det skapar grundkonfigurationer av OS och eliminerar den m\u00e4nskliga faktorn. <\/p>\n<p>Med detta system fick vi typiska och f\u00f6r framtida automatisering anv\u00e4ndbara exemplar av servrar med operativsystem. Vid \"utdelning\" fick de en minimal upps\u00e4ttning lokala anv\u00e4ndare och offentliga SSH-nycklar, samt en \u00f6verenskommen konfiguration av operativsystemet. Vi kunde garantera styrning av servrarna via CMS och var s\u00e4kra p\u00e5 att det inte fanns n\u00e5gra \u00f6verraskningar \"n\u00e4r nere\", p\u00e5 operativsystemniv\u00e5. <\/p>\n<p>Maximalt m\u00e5l f\u00f6r installationshanteringssystemet \u00e4r att automatiskt konfigurera servrar fr\u00e5n BIOS\/Firmware-niv\u00e5 till operativsystemet. Mycket beror h\u00e4r p\u00e5 h\u00e5rdvara och konfigurationsuppgifter. F\u00f6r heterogen h\u00e5rdvara kan man \u00f6verv\u00e4ga <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dmtf.org\/standards\/redfish\">REDFISH API<\/a><\/noindex>. Om all \"h\u00e5rdvara\" kommer fr\u00e5n en och samma leverant\u00f6r \u00e4r det ofta bekv\u00e4mare att anv\u00e4nda f\u00e4rdiga hanteringsverktyg (t.ex. HP ILO Amplifier, DELL OpenManage osv.).<\/p>\n<p>F\u00f6r installation av operativsystem p\u00e5 fysiska servrar anv\u00e4nde vi det v\u00e4lk\u00e4nda Cobbler, d\u00e4r en upps\u00e4ttning av \u00f6verenskomna installationsprofiler definieras med driftavdelningen. N\u00e4r en ny server l\u00e4ggs till infrastrukturen kopplade ingenj\u00f6ren MAC-adressen f\u00f6r servern till den n\u00f6dv\u00e4ndiga profilen i Cobbler. Vid f\u00f6rsta n\u00e4tverksstart fick servern en tillf\u00e4llig adress och en ny operativsystem. D\u00e4refter flyttades den till den avsedda VLAN\/IP-adresseringen och fortsatte sitt arbete d\u00e4r. Ja, bytet av VLAN tar tid och kr\u00e4ver samordning, men det ger ytterligare skydd mot oavsiktlig installation av en server i produktionsmilj\u00f6n.<\/p>\n<p>Vi skapade virtuella servrar baserat p\u00e5 mallar, f\u00f6rberedda med hj\u00e4lp av HashiCorp Packer. Anledningen var densamma: att f\u00f6rhindra potentiella m\u00e4nskliga fel vid installation av operativsystem. Men till skillnad fr\u00e5n fysiska servrar till\u00e5ter Packer att man inte beh\u00f6ver anv\u00e4nda PXE, n\u00e4tverksstart och VLAN-byte. Detta underl\u00e4ttade och f\u00f6renklade skapandet av virtuella servrar. <\/p>\n<p><img decoding=\"async\" alt=\"En thriller om serverkonfiguration utan mirakel med Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/8cde23a4ad2ba1573bc88ec174bfe6b5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 1. Hantering av installation av operativsystem.<\/i><\/p>\n<h1>Hantera hemligheter<\/h1>\n<p>\nAlla konfigurationshanteringssystem innehar data som ska d\u00f6ljas f\u00f6r vanliga anv\u00e4ndare, men som beh\u00f6vs f\u00f6r systemf\u00f6rberedelse. Detta inkluderar l\u00f6senord f\u00f6r lokala anv\u00e4ndare och tj\u00e4nstekonton, certifikatnycklar, olika API-tokens osv. De kallas vanligtvis \"hemligheter\".<\/p>\n<p>Om man inte fr\u00e5n b\u00f6rjan best\u00e4mmer var och hur man ska lagra dessa hemligheter, s\u00e5 finns det, beroende p\u00e5 str\u00e4ngheten i informationss\u00e4kerhetskraven, flera m\u00f6jliga lagringsmetoder:<\/p>\n<ul>\n<li>direkt i konfigurationshanteringskoden eller i filerna i repositoryt;<\/li>\n<li>i specialiserade verktyg f\u00f6r konfigurationshantering (t.ex. Ansible Vault);<\/li>\n<li>i CI\/CD-system (Jenkins\/TeamCity\/GitLab\/ etc.) eller i konfigurationshanteringssystem (Ansible Tower\/Ansible AWX);<\/li>\n<li>ocks\u00e5 kan hemligheter \u00f6verf\u00f6ras med \"manuell hantering\". Till exempel l\u00e4ggs de ut p\u00e5 en \u00f6verenskommen plats och anv\u00e4nds sedan av konfigurationshanteringssystem;<\/li>\n<li>olika kombinationer av ovanst\u00e5ende.<\/li>\n<\/ul>\n<p>\nVarje metod har sina nackdelar. Den st\u00f6rsta \u00e4r avsaknaden av \u00e5tkomstpolitiker f\u00f6r hemligheter: det g\u00e5r inte att eller \u00e4r sv\u00e5rt att best\u00e4mma vem som kan anv\u00e4nda vissa hemligheter. En annan nackdel \u00e4r bristen p\u00e5 \u00e5tkomstrevision och en fullst\u00e4ndig livscykel. Hur snabbt kan man byta ut, till exempel, en offentlig nyckel som \u00e4r inskriven i koden och i flera angr\u00e4nsande system?<\/p>\n<p>Vi har anv\u00e4nt det centrala hemlagret HashiCorp Vault. Det har gjort att vi kan: <\/p>\n<ul>\n<li>lagra hemligheter s\u00e4kert. De \u00e4r krypterade, och \u00e4ven om n\u00e5gon f\u00e5r tillg\u00e5ng till databasen i Vault-lagret (t.ex. \u00e5terst\u00e4ller den fr\u00e5n en s\u00e4kerhetskopia), kan de inte l\u00e4sa de hemligheter som lagras d\u00e4r; <\/li>\n<li>organisera \u00e5tkomstpolitiker f\u00f6r hemligheter. Anv\u00e4ndare och applikationer har endast tillg\u00e5ng till de hemligheter som \"tilldelats\" dem;<\/li>\n<li>genomf\u00f6ra revision av \u00e5tkomst till hemligheter. Alla \u00e5tg\u00e4rder med hemligheter registreras i Vaults revisionslogg;<\/li>\n<li>organisera en fullst\u00e4ndig \"livscykel\" f\u00f6r arbete med hemligheter. De kan skapas, \u00e5terkallas, s\u00e4ttas med en utg\u00e5ngstid osv.<\/li>\n<li>enkelt integrera med andra system som beh\u00f6ver \u00e5tkomst till hemligheter;<\/li>\n<li>och ocks\u00e5 till\u00e4mpa end-to-end-kryptering, eng\u00e5ngsl\u00f6senord f\u00f6r OS och databaser, certifikat fr\u00e5n auktoriserade centra osv. <\/li>\n<\/ul>\n<p>\nNu g\u00e5r vi vidare till det centrala autentiserings- och auktoriseringssystemet. Det skulle ha g\u00e5tt utan det, men att administrera anv\u00e4ndare i m\u00e5nga n\u00e4rst\u00e5ende system \u00e4r f\u00f6r komplicerat. Vi har st\u00e4llt in autentisering och auktorisering via LDAP-tj\u00e4nsten. Annars skulle det i Vault ha kr\u00e4vts ett kontinuerligt utf\u00e4rdande och uppf\u00f6ljning av autentiseringstokens f\u00f6r anv\u00e4ndarna. Att ta bort och l\u00e4gga till anv\u00e4ndare skulle ha f\u00f6rvandlats till ett \u00e4ventyr: \"har jag skapat\/ tagit bort detta konto \u00f6verallt?\" <\/p>\n<p>Vi l\u00e4gger till ytterligare ett lager i v\u00e5rt system: hantering av hemligheter och central autentisering\/auktorisering:<\/p>\n<p><img decoding=\"async\" alt=\"En thriller om serverkonfiguration utan mirakel med Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/993e863417898c39940fe0bc9ee55b1e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 2. Hantering av hemligheter.<\/i><\/p>\n<h1>Konfigurationhantering<\/h1>\n<p>\nVi har kommit till k\u00e4rnan - till CMS-systemet. I v\u00e5rt fall \u00e4r det en kombination av Ansible och Red Hat Ansible AWX. <\/p>\n<p>Ist\u00e4llet f\u00f6r Ansible kan Chef, Puppet eller SaltStack anv\u00e4ndas. Vi valde Ansible av flera anledningar. <\/p>\n<ul>\n<li>F\u00f6r det f\u00f6rsta \u00e4r det m\u00e5ngsidighet. Utbudet av f\u00e4rdiga moduler f\u00f6r hantering <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.ansible.com\/ansible\/latest\/modules\/modules_by_category.html\">imponerar.<\/a><\/noindex>Om det skulle saknas n\u00e5got kan man leta p\u00e5 GitHub och Galaxy. <\/li>\n<li>F\u00f6r det andra beh\u00f6ver man inte installera och underh\u00e5lla agenter p\u00e5 den hanterade utrustningen, bevisa att de inte p\u00e5verkar belastningen och bekr\u00e4fta att det inte finns n\u00e5gra \"bakd\u00f6rrar\". <\/li>\n<li>F\u00f6r det tredje har Ansible en l\u00e5g inl\u00e4rningstr\u00f6skel. En kunnig ingenj\u00f6r kan skriva en fungerande playbook redan f\u00f6rsta dagen med produkten.<\/li>\n<\/ul>\n<p>\nMen bara Ansible r\u00e4cker inte i industriella milj\u00f6er. Annars skulle det uppst\u00e5 m\u00e5nga problem med \u00e5tkomstbegr\u00e4nsningar och granskning av administrat\u00f6rernas \u00e5tg\u00e4rder. Hur ska man avgr\u00e4nsa \u00e5tkomsten? Det beh\u00f6vdes s\u00e5 att varje avdelning hanterade (l\u00e4s - k\u00f6rde Ansible playbooks) \"sitt\" set av servrar. Hur ska man till\u00e5ta att endast vissa anst\u00e4llda f\u00e5r k\u00f6ra specifika Ansible playbooks? Eller hur ska man sp\u00e5ra vem som k\u00f6rde en playbook utan att skapa m\u00e5nga lokala anv\u00e4ndarkonton p\u00e5 servrar och utrustning som hanteras av Ansible?<\/p>\n<p>Det mesta av s\u00e5dana fr\u00e5gor l\u00f6ses av Red Hat <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ansible.com\/products\/tower\">Ansible Tower<\/a><\/noindex>, eller dess open-source upstream-projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ansible\/awx\">Ansible AWX<\/a><\/noindex>. D\u00e4rf\u00f6r f\u00f6redrog vi det f\u00f6r kunden. <\/p>\n<p>Och ytterligare en detalj om v\u00e5r CMS-system. Ansible playbook m\u00e5ste lagras i kodhanteringssystem. I v\u00e5rt fall \u00e4r det <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/\">GitLab CE<\/a><\/noindex>.<\/p>\n<p>S\u00e5 konfigurationerna hanteras av en kombination av Ansible\/Ansible AWX\/GitLab (se Fig. 3). Naturligtvis \u00e4r AWX\/GitLab integrerade med ett enhetligt autentiseringssystem, och Ansible playbook \u00e4r kopplad till HashiCorp Vault. Konfigurationerna g\u00e5r in i produktionsmilj\u00f6n endast genom Ansible AWX, d\u00e4r alla \"spelregler\" anges: vem som kan konfigurera vad, varifr\u00e5n man tar kod f\u00f6r konfigurationerna f\u00f6r CMS osv.<\/p>\n<p><img decoding=\"async\" alt=\"En thriller om serverkonfiguration utan mirakel med Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f4f5b3904a2145d7283cd52f921bca89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 3. Konfigurationhantering.<\/i><\/p>\n<h1>Testhantering<\/h1>\n<p>\nV\u00e5r konfiguration representeras som kod. D\u00e4rf\u00f6r tvingas vi spela efter samma regler som programvaruutvecklarna. Vi beh\u00f6vde organisera processer f\u00f6r utveckling, kontinuerlig testning, leverans och till\u00e4mpning av konfigurationskod p\u00e5 produktionsservrar.<\/p>\n<p>Om detta inte g\u00f6rs direkt, slutar de skrivna rollerna f\u00f6r konfigurationen antingen att st\u00f6djas och f\u00f6r\u00e4ndras, eller s\u00e5 slutar de att k\u00f6ras i produktion. Botemedlet f\u00f6r denna sm\u00e4rta \u00e4r v\u00e4lk\u00e4nt, och det har visat sig framg\u00e5ngsrikt i detta projekt:<\/p>\n<ul>\n<li>varje roll \u00e4r t\u00e4ckt av modul\u00e4ra tester;<\/li>\n<li>testerna k\u00f6rs automatiskt vid varje \u00e4ndring i koden som hanterar konfigurationerna;<\/li>\n<li>\u00e4ndringar i koden som hanterar konfigurationer g\u00e5r i produktion endast efter att alla tester och code review har genomf\u00f6rts med framg\u00e5ng.<\/li>\n<\/ul>\n<p>\nUtvecklingen av kod och hantering av konfigurationer har blivit lugnare och mer f\u00f6ruts\u00e4gbar. F\u00f6r att organisera kontinuerlig testning anv\u00e4nde vi GitLab CI\/CD-verktyg, och som ramverk f\u00f6r att organisera tester valde vi <noindex><a rel=\"nofollow\" href=\"https:\/\/molecule.readthedocs.io\/en\/latest\/\">Ansible Molecule<\/a><\/noindex>.<\/p>\n<p>Vid varje \u00e4ndring i koden som hanterar konfigurationer anropar GitLab CI\/CD Molecule: <\/p>\n<ul>\n<li>den kontrollerar syntaxen i koden, <\/li>\n<li>startar en Docker-beh\u00e5llare, <\/li>\n<li>till\u00e4mpa den \u00e4ndrade koden i den skapade beh\u00e5llaren, <\/li>\n<li>kontrollerar rollen f\u00f6r idempotens och k\u00f6r tester f\u00f6r denna kod (granularitet h\u00e4r \u00e4r p\u00e5 niv\u00e5n ansible-roll, se Fig. 4).<\/li>\n<\/ul>\n<p>\nVi levererade konfigurationer till produktion med hj\u00e4lp av Ansible AWX. Ansvarsfulla ingenj\u00f6rer f\u00f6r drift till\u00e4mpade \u00e4ndringar i konfigurationen genom p\u00e5 f\u00f6rhand best\u00e4mda mallar. AWX beg\u00e4rde automatiskt den senaste versionen av koden fr\u00e5n master-grenen i GitLab vid varje till\u00e4mpning. S\u00e5 utesl\u00f6t vi anv\u00e4ndningen av icke-kontrollerad eller f\u00f6r\u00e5ldrad kod i produktion. Naturligtvis kom koden till master-grenen endast efter testning, granskning och godk\u00e4nnande.<\/p>\n<p><img decoding=\"async\" alt=\"En thriller om serverkonfiguration utan mirakel med Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/aa8f6205f05792a6a1120ad7360ab102.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 4. Automatiserad testning av roller i GitLab CI\/CD.<\/i><\/p>\n<p>Det finns ocks\u00e5 ett problem relaterat till driften av produktionssystem. I verkliga livet \u00e4r det mycket sv\u00e5rt att g\u00f6ra \u00e4ndringar i konfigurationen endast genom CMS-kod. Det uppst\u00e5r n\u00f6dsituationer d\u00e4r ingenj\u00f6ren m\u00e5ste \u00e4ndra konfigurationen \"h\u00e4r och nu\", utan att v\u00e4nta p\u00e5 kod\u00e4ndringar, testning, godk\u00e4nnande osv.<\/p>\n<p>Som ett resultat av manuella f\u00f6r\u00e4ndringar uppst\u00e5r skillnader i konfigurationen p\u00e5 liknande utrustning (till exempel har noderna i HA-klustret olika sysctl-konfigurationer). Eller s\u00e5 skiljer sig den verkliga konfigurationen p\u00e5 utrustningen fr\u00e5n den som anges i CMS-koden. <\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u043c\u0443 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c production-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439. \u0412\u044b\u0431\u0440\u0430\u043b\u0438 \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442: \u0437\u0430\u043f\u0443\u0441\u043a \u043a\u043e\u0434\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0421MS \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u00abdry run\u00bb, \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0435\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u043e \u0441 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f\u0445 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439. \u041c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432 \u0432\u0441\u0435\u0445 Ansible playbook \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 \u00ab&#8212;check\u00bb \u043d\u0430 production-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u0417\u0430 \u0437\u0430\u043f\u0443\u0441\u043a \u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c playbook, \u043a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 Ansible AWX (\u0441\u043c. \u0420\u0438\u0441. 5):<\/p>\n<p><img decoding=\"async\" alt=\"En thriller om serverkonfiguration utan mirakel med Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/108a5a473f60ab76ee15f9334ebcbab7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 5. Kontroller f\u00f6r konfigurationsavvikelser i Ansible AWX.<\/i><\/p>\n<p>Efter kontrollerna skickar AWX en rapport om avvikelser till administrat\u00f6rerna. De granskar den problematiska konfigurationen och r\u00e4ttar sedan till den via justerade playbooks. P\u00e5 s\u00e5 s\u00e4tt h\u00e5ller vi konfigurationen i produktionsmilj\u00f6n och CMS \u00e4r alltid i ett aktuellt och synkroniserat tillst\u00e5nd. Detta f\u00f6rhindrar obehagliga \"under\" n\u00e4r CMS-kod till\u00e4mpas p\u00e5 \"live\"-servrar.<\/p>\n<p>Nu har vi f\u00e5tt en viktig niv\u00e5 av testning best\u00e5ende av Ansible AWX\/GitLab\/Molecule (Fig. 6).<\/p>\n<p><img decoding=\"async\" alt=\"En thriller om serverkonfiguration utan mirakel med Configuration Management\" src=\"\/wp-content\/uploads\/2020\/07\/f487f5603e90b0c753fb9decf9018b11.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Fig. 6. Hantering av testning.<\/i><\/p>\n<p>Sv\u00e5rt? Jag h\u00e5ller med. Men en s\u00e5dan sammanst\u00e4llning av konfigurationshantering har blivit ett utt\u00f6mmande svar p\u00e5 m\u00e5nga fr\u00e5gor relaterade till automatisering av serverkonfigurering. Nu har \u00e5terf\u00f6rs\u00e4ljaren alltid en strikt definierad konfiguration f\u00f6r typiska servrar. Till skillnad fr\u00e5n en ingenj\u00f6r kommer CMS inte att gl\u00f6mma att l\u00e4gga till n\u00f6dv\u00e4ndiga inst\u00e4llningar, skapa anv\u00e4ndare och utf\u00f6ra dussintals eller hundratals erforderliga inst\u00e4llningar.<\/p>\n<p>I inst\u00e4llningarna f\u00f6r servrar och milj\u00f6er finns det i dag inga \"hemliga kunskaper\". Alla n\u00f6dv\u00e4ndiga detaljer \u00e5terspeglas i playbooks. Ingen mer kreativitet och oklara instruktioner: \"<i>st\u00e4ll som en vanlig Oracle, men d\u00e4r m\u00e5ste ett par sysctl-inst\u00e4llningar skrivas in, och anv\u00e4ndare med r\u00e4tt UID l\u00e4ggas till. Fr\u00e5ga killarna fr\u00e5n driften, de vet.<\/i>\u00bb. <\/p>\n<p>M\u00f6jligheten att uppt\u00e4cka konfigurationsavvikelser och \u00e5tg\u00e4rda dem i f\u00f6rv\u00e4g ger trygghet. Utan system f\u00f6r konfigurationshantering ser det vanligtvis annorlunda ut. Problem samlas p\u00e5 h\u00f6g tills de pl\u00f6tsligt \"exploderar\" i produktionen. Sedan g\u00f6rs en utredning, konfigurationerna kontrolleras och r\u00e4ttas. Och cykeln upprepas igen. <\/p>\n<p>Och vi har sj\u00e4lvklart p\u00e5skyndat lanseringen av servrar i drift fr\u00e5n flera dagar till timmar.<\/p>\n<p>Men p\u00e5 sj\u00e4lva ny\u00e5rsnatten, n\u00e4r barnen gl\u00e4djefullt rev upp sina presenter och de vuxna \u00f6nskade sig saker under klockslaget, migrerade v\u00e5ra ingenj\u00f6rer SAP-systemet till nya servrar. Till och med Jultomten skulle s\u00e4ga att de b\u00e4sta miraklen \u00e4r v\u00e4l f\u00f6rberedda. <\/p>\n<p>P.S. V\u00e5rt team st\u00f6ter ofta p\u00e5 att kunderna vill l\u00f6sa hanteringen av konfigurationer s\u00e5 enkelt som m\u00f6jligt. Helst som om det vore magi \u2014 med ett enda verktyg. Men i verkligheten \u00e4r det mer komplicerat (ja, de har inte skickat n\u00e5gra silverkulor igen): det blir n\u00f6dv\u00e4ndigt att skapa en hel process med hj\u00e4lp av verktyg som \u00e4r bekv\u00e4ma f\u00f6r kundens team.<\/p>\n<p><i>F\u00f6rfattare: Sergey Artemov, avdelningsarkitekt <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/portal.jet.su\/about\/company\/structure\/?set_filter_structure=Y&amp;structure_UF_DEPARTMENT=56656\"><i>DevOps-l\u00f6sningar<\/i><\/a><\/noindex><i> \u00abInfosytemer Jet\u00bb<\/i><br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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 om serverinst\u00e4llningar utan mirakel med Configuration Management | ProHoster","description":"\u00c5ret n\u00e4rmade sig ny\u00e5r. Barn i hela landet hade redan skickat brev till Jultomten eller \u00f6nskat sig presenter, och den huvudsakliga akt\u00f6ren \u2014 en av de stora \u00e5terf\u00f6rs\u00e4ljarna \u2014 f\u00f6rberedde sig f\u00f6r f\u00f6rs\u00e4ljningens apoteos.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/triller-o-nastrojke-serverov-bez-chudes-s-configuration-management","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/90386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=90386"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/90386\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/90387"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=90386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=90386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=90386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}