Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
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.