Dle plánu certifikační autorita Let's Encrypt nově vydává také certifikáty s šestidenní platností (160 hodin) s možností vystavit je na IP adresu.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 14.0 (Mastodon). Forgejo je fork Gitei.
Just the Browser je projekt, 'který vám pomůže v internetovém prohlížeči deaktivovat funkce umělé inteligence, telemetrii, sponzorovaný obsah, integraci produktů a další nepříjemnosti' (repozitář na GitHubu). Využívá k tomu skrytá nastavení ve webových prohlížečích, určená původně pro firmy a organizace ('enterprise policies'). Pod linuxem je skriptem pro automatickou úpravu nastavení prozatím podporován pouze prohlížeč Firefox.
Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.
Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.
Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny
… více »D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.
CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.
Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.
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.