Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních
… více »Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.
Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.
VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.
Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).
Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.
Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.
Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.
Původně jsem měl pro tento blogpost vymyšlený titul "S pimprlaty do Kalkaty aneb vymetání chlévu s Augiášovou pomocí", ale pak mě napadlo, že potenciálního zoufalce, který bude hledat nějaké informace, by asi stěží napadlo pod tímto titulem hledat něco o centralizované údržbě systémové konfigurace počítačů.
Puppet, je systém typu klient/server, navržený pro centralizovanou údržbu operačních systémů. Přičemž i operační systém stroje, na kterém běží serverová část (master), může být jeho klientskou částí (agent) spravován jako u jiných strojů.
Puppet funguje tak, že na stroji master, se vygeneruje pro agenta tzv. manifest, což je soubor, v němž je popsáno jak má systém na klientském nodu vypadat. Na jeho základě pak agent realizuje veškeré operace potřebné k tomu aby dostal systém do příslušného stavu. Instaluje chybějící balíky, odebírá ty co tam být nemají. Nahrazuje či aktualizuje příslušné konfigurační soubory. Aj.
K popisu stavu operačního systému používá Puppet specifický programovací jazyk. Ten je z hlediska syntaxe podobný jazykům s podporou objektového programování. Pod "kapotou" je programovací jazyk Ruby, který lze využít i při zpracování šablon.
Při sestavení manifestu pro klienta se pracuje s tzv. "typy", sestavenými do tříd. Tyto třídy definují stav objektu, jak má vypadat, a pomocí "typů" se realizují konkrétní operace, které je do tohoto stavu dostanou.
Kromě vestavěných "typů" lze vytvářet a používat i vlastní "definované" typy, které se chovají podobně jako funkce. A od verze 2.6 Puppet podporuje také parametrizované třídy. Ačkoliv použití parametrizované třídy vypadá podobně jako použití definovaného typu, je rozdíl především v jejich použití. Zatím co parametrizovanou třídu lze se stejným parametrem použít na různých místech popisu opakovaně, v případě definovaného typu by agent oznámil chybu.
Augeas je konfigurační nástroj, který umí zpracovat nativní formát konfiguračních souborů v systému do editovatelné stromové struktury a jejich modifikovaný obsah uložit zpět tam kam patří. Lze s ním pracovat prostřednictvím nástroje augtool
přímo na příkazovém řádku, ale má k dispozici také API, dostupné přes knihovnu napsanou v C. To umí využít Puppet.
Přes Puppet lze udržovat konfigurační soubory i jiným způsobem - kopírovat z centrálního úložiště, nebo generovat pomocí šablon. Ale proč udržovat šablony, nebo soubory v úložišti, když lze konfiguraci ošetřit pouze dílčí úpravou výchozích konfiguračních souborů prostřednictvím Augeasu?
Pokud vás toto téma zaujalo, tak se s ním můžete seznámit víc přes manuál Puppet v naší wiki. Jak se můžete z jeho obsahu přesvědčit, nejde ani zdaleka o uzavřený materiál. Věnuji se Puppetu zhruba rok a stále objevuji jak se přes něj dá vytvořit výsledný popis konfigurace lépe a jednodušeji.
Tenhle blogpost jsem napsal proto, že na spoustu užitečných věcí člověk narazí mnohdy úplnou náhodou. Nebýt kolegy v práci, který mne s Puppetem seznámil, tak bych si jej nejspíš nevšimnul. A nebýt Puppetu, asi bych mi uniknul i tak pěkný nástroj, jakým je Augeas.
Tiskni
Sdílej:
já si přes to spravuji strojů asi pět
aby jej bylo možné automaticky nainstalovat "jedním tahem"
Zaobírám se Puppetem průběžně asi rok
Mno.
My těch strojů máme asi tak pár desítek krát víc a udržujeme je ručně (ano ručně, ssh a příkazy na řádce). Je to nejefektivnější. Puppet, Chef a Foreman a co ja vím co ještě mi mnoho lidí mnohokrát nabízelo jako "nejlepší řešení" problému, který ani nemáme. Proč? 5 strojů a rok (neprioritní průběžné práce?). To si děláš srandu? Tím neříkám, že tyhle nástroje jsou k ničemu. Vůbec ne. Pokud má někdo (deseti)tisíce serverů, tak je ruční práce už mimo reálné možnosti, ale na malé počty je to (podle mě) značně neefektivní.
Nevím, jak by se taková situace řešila u vás, ale pro puppetizované stroje stačí pouze přidat, nebo změnit autorizační klíč v centrálním úložišti.
Úplně jednoduše. useradd a authorized keys. Případně s další pomocí standardních nástrojů GNU.
dojde k přenastavení na původní hodnotyTo jako že něco nastavím na serveru (protože to tak má být nastavené) a puppet mi to za odměnu potom změní pod rukama? To by byla poslední minuta jeho života. Tohle svého času dělaly nějaký "taky security" skripty na mandrivě, nastavil jsem si co jsem potřeboval a za 10minut (nebo jak často se ta mrdka z cronu spouštěla), jsem se na ten server už nedostal (pro rejpaly, samozřejmně dostal, člověk si vždycky poradí).
To jako že něco nastavím na serveru (protože to tak má být nastavené) a puppet mi to za odměnu potom změní pod rukama?Puppet je nástroj pro centralizovanou správu, takže pokud takovým způsobem nějaké zdroje spravuješ, tak ano. Logika věci je totiž taková, že takové věci řešíš nastavením na stroji master, nikoliv na jednotlivých klientech. Ovšem jak už jsem zmínil - Puppet se stará jen o to co má v popisu práce. Pokud se má starat pouze o uživatele A, tak si ostatních uživatelů nevšímá. Pokud mu ale předepíšeš, že uživatel, nebo skupina na klientovi existovat nemá, tak se o to prostě postará. To je snad žádoucí, ne? A pokud nechceš aby se to dělo automaticky, pak není nic snazšího, než pouštět agenta ručně. Já to tak dělám u testovacího prostředí (viz odkazovaný manuál)
Puppet je nástroj pro centralizovanou správu, takže pokud takovým způsobem nějaké zdroje spravuješ, tak ano. Logika věci je totiž taková, že takové věci řešíš nastavením na stroji master, nikoliv na jednotlivých klientech.
Jenže to ale vede právě k té duplicitě, kterou jsem zmínil. Co jde řešit přes Puppet, řešilo by se přes Puppet. Ale co nejde, tak by se řešilo ručně -- jinými slovy, musel by ses stejně učit jak ruční konfiguraci, tak i Puppet. To jsem sám, komu tahle duplicita práce vadí?
personality { 'moula': uid => 1023, gid => 100, managehome => true, home => '/home/moula', shell => '/bin/bash', }Pokud budu chtít tohoto uživatele zrušit, tak mu jenom přidám parametr absent a při dalším průchodu bude ze všech klientů, kterých se to týká odstraněn. Totéž platí pro změnu kteréhokoliv jiného parametru tohoto uživatele. Nemusím tedy řešit jednotlivé příkazy na každém stroji zvlášť, byť i s využitím paralelního ssh přístupu. V rámci personality se totiž v případě změny UID či GID provede změna také u všech souborů uživatele, kterých se to týká. Ano. Mohl bych totéž udělat i pomocí standardních nástrojů, ale musel bych řešit jednotlivé příkazy a především si pohlídat, abych někde na něco nezapoměl. Takhle má ten uživatel existující záznam a nikdo nezaloží jiného uživatele se stejným UID, i kdyby byl deaktivován, protože by Puppet ihned oznámil chybu. Konfigurace Puppetu na stroji master je udržována v gitu, takže lze zpětně zjistit, kdo a kdy kterého uživatele přidal, ev. kdy jej odstranil. Z hlediska přehlednosti a srozumitelnosti mi přijde zápis v manifestu jasnější, už jen proto že každý argumet v personality je popsaný a má svůj komentář. Což mi přijde lepší než nějaké extra poznámky, uložené bůhví kde.
K popisu stavu operačního systému používá Puppet specifický programovací jazyk.spíš bych to nazval DSL Ale jinak zkoušel jsi i Chef?
Pokud byste chtěli slyšet něco o Puppetu a Puppet Labs přímo od zakladatele Luka Kaniese, případně se ho na něco zeptat, můžete se zastavit v Plzni na semináři ZČU - Seminář Puppet Labs na ZČU.