Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou
… více »Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
VKD3D-Proton byl vydán ve verzi 3.0. Jedná se fork knihovny vkd3d z projektu Wine pro Proton. Knihovna slouží pro překlad volání Direct3D 12 na Vulkan. V přehledu novinek je vypíchnuta podpora AMD FSR 4 (AMD FidelityFX Super Resolution 4).
Poštovní klient Thunderbird byl vydán v nové verzi 145.0. Podporuje DNS přes HTTPS nebo Microsoft Exchange skrze Exchange Web Services. Ukončena byla podpora 32bitového Thunderbirdu pro Linux.
U příležitosti státního svátku 17. listopadu probíhá na Steamu i GOG.com již šestý ročník Czech & Slovak Games Week aneb týdenní oslava a také slevová akce českých a slovenských počítačových her.
Byla vydána nová verze 9.19 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček BirdNET-Go, tj. AI řešení pro nepřetržité monitorování a identifikaci ptáků.
Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
Je tomu něco přes rok, co jsem tady publikoval blogpost na téma Puppet a konfigurační nástroj Augeas. Čas trhnul oponou, a já během toho roku začal používat další vymoženosti Puppetu o kterých vám chci, prostřednictvím tohoto čtení na neděli, potlachat. Chronologicky shrnuto budu psát o:
Pupet je výborná pomůcka při údržbě systému počítače. Hrabe jen na to, na co hrabat má a díky tomu lze přes něj uspokojivě udržovat i stroje, na kterých hospodaří více administrátorů, aniž by tím někomu hatil jeho práci.
Pěkná je jeho symbióza s utilitou etckeeper. V diskuzi - která proběhla před nějakými dvěma měsíci pod blogpostem Franty Kučery, který tam uvádí prakticky téměř vše proč jsem vlastně začal před dvěma lety Pupet používat já - o něm napsal Pavel Píša. K tomu lze jen dodat, že Puppet tuto utilitu v žádném případě nenahradil.
Součástí standardní instalace Puppetu jsou "háčky", které se starají o to, aby agent - pokud udělá v konfiguraci nějakou změnu, uložil přes etckeeper změny do gitu. Díky tomu lze v případě potřeby na produkčních strojích zpětně vysledovat kdo, kdy, za jakých okolností a jakou změnu udělal.
I na modelových strojích, kde tato utilita není, ale využívám možností gitu při psaní manifestů. Na stroji master je git pro zachování historie změn v konfiguraci puppetu a jeho modulů přímo ideální.
Původně jsem Puppet využíval pouze k popisu cílové konfigurace systému, aby bylo možné - v případě potřeby - s jeho pomocí rychle a od nuly nainstalovat nový stroj, tak aby měl stejnou konfigurací jako ten původní. Proto jsem nepovažoval za nutné, aby běžel agent trvale jako démon.
Situace se ale změnila zhruba před půl rokem, když jsem upravoval agenta pro Pacemaker. To se náramně hodilo, že jsou všechny nody clusteru spravované přes Puppet. Stačilo spustit agenta, dopsat do manifestu zdroj, kterým se na ty nody distribuoval agent pro Pacemaker a interval spouštění agenta zkrátit zhruba na dvě minuty.
Pak už jsem mohl pohodlně upravovat kód agenta na stroji kde běží master a jenom po očku sledovat kontrolní výpisy v logu nodu, který měl zdroj Pacemakeru, pro který jsem psal toho agenta, aktivní.
Generování grafů jsem "objevil" relativně nedávno. Je to v podstatě úplně triviální věc, kterou uměla už starší verze Puppetu, než je aktuální 3.6.2
Grafy se generují v DOT formátu na straně agenta, ale lze je bez problémů překonvertovat do SVG nástroji z balíku graphviz. Hodí se to, především u komplexnějších manifestů, ke zmapování deklarovaných zdrojů a jejich závislostí.
Co mne dřív nenapadlo využívat a dnes považuji za naprosto skvělou funkcionalitu, je posílání reportů prostřednictvím e-mailu. O rozesílání reportů se stará master a to pouze tehdy, pokud agent na klientském nodu realizoval, nebo se chystá realizovat, nějakou změnu. Výhoda je především v tom, že pro klientskou stanici nemusí být vůbec povoleno odesílání e-mailů, protože je na základě hlášení agenta sestavuje master. V subjektu hlášení je identifikace klientské stanice a v obsahu zpráva od agenta. Komu a jakou zprávy odesílat lze filtrovat pomocí konfiguračního souboru tagmail.conf
Velice elegantně a přitom způsobem který neotravuje, tak lze registrovat nežádoucí zásahy do konfigurace, co by jinak mohly uniknout pozornosti.
Údržba dokumentace je achilovou patou většiny administrátorů. Není problém stroje spravovat, ale dokumentovat co, jak a kde má být. Je naprosto fuk, je-li stroj jeden, nebo jich je stovka. Řekl bych, že nejvíc se na dokumentaci kašle tam, kde je těch strojů málo.
Údržba dokumentace je téma, při kterém se u nás v práci prakticky vždy poštěkáme. Pro Petra je totiž velice těžko zkousnutelný fakt, že dokumentace a její údržba zabírá většinu mého pracovního času.
Aby totiž bylo možné něco kvalitně popsat, je třeba spoustu věcí teprve zjistit a otestovat. U začínajících administrátorů, co se s problematikou teprve seznamují sežere hodně času učení a samotná práce. Na dokumentaci jim pak už moc času nezbývá.
Prakticky všude kam jsem přišel, jsem tedy začínal tím, že jsem si musel sám zmapovat prostředí, abych věděl co kde je. Pokud možno takovým způsobem, aby jednou - až natáhnu brka, nebo zblbnu - na tom nebyl můj nástupce jako já, když jsem nastoupil na katedře. Jako v té pohádce o kohoutkovi a slepičce jsem před těmi šesti lety sbíral informace co kde vlastně běží. Proto vůbec první věc, kterou jsem na katedře rozjel, byla naše wiki, u které jsem si obhájil, aby byla veřejně přístupná všem bez rozdílu a její použití nebylo nijak omezováno. Původně na mne totiž tlačili, aby byla přístupná pouze lidem z naší katedry. Dnes ji využívají k k interní dokumentaci IT infrastruktury našeho baráku i kolegové z jiných kateder a já doufám, že i mé manuály občas někomu pomohly.
Nevím, jestli uvažujete někdy nad tím, v jakém stavu je práce kterou opouštíte. Může se kdykoliv stát, že vás ráno cestou do práce skolí auto. Bude vědět, ten co vás nahradí, co kde běží, jak se to má nastavit, rozšířit, opravit nebo změnit? Mě trvalo skoro rok, než jsem se vůbec dozvěděl (a to ještě náhodou) administrátorské heslo stroje, kde běžel web katedry, který jsem měl spravovat! Nikdo ani pořádně nevěděl, na kterém fyzickém stroji vlastně běží a co tam kromě toho webu je. Můj předchůdce mi věnoval asi zhruba deset minut svého času, aby mi ukázal jak vypadá konzole xenu, který jsem nikdy předtím nepoužíval, a zmizel.
Trvalo skoro pět let, než se mi, později již ve spolupráci s kolegy, podařilo opravdu dobře zmapovat a především konsolidovat naše IT prostředí - z hlediska síťařiny není zcela triviální a pokud jde o stroje a jejich instalace, tak zde před mým příchodem panovala naprostá anarchie. Ovšem před těmi šesti lety to byla ještě sranda, protože se spoustou věcí se teprve začínalo. Dnes si všichni na vysoký komfort služeb, které jim moje infrastruktura poskytuje, zvykli do té míry, že jim vůbec nedochází cena obdobných služeb v komerční sféře, kde za nimi stojí celé týmy administrátorů, kterým se platí velké peníze.
To však ale nebyl můj problém. Mě trápilo to, jak zdokumentovat tuto infrastrukturu - která je čistě mojí doménou - tak aby se můj případný nástupce byl schopen zorientovat co nejrychleji, neboť je z ní zajišťována především výuka. Wiki je fajn věc, ale pro popis instalace konkrétních strojů se zrovna moc nehodí - obzvláště, když se situace průběžně mění a je třeba dělat i jiné věci, než psát dokumentaci. A tak mě napadlo využít možností formátování dokumentace v rámci Puppetu.
Puppet umožňuje psát dokumentaci ke kódu manifestů rovnou do nich a text formátovat pomocí textových značek, podobně jako se to dělá u wiki. Z takto dokumentovaného kódu pak lze velice jednoduše vygenerovat statické webové stránky, které lze zkopírovat třebas na flashku.
Součástí vygenerovaného kódu ale nejsou žádné citlivé informace, které by mohly nějakým způsobem ohrožovat bezpečnost spravovaných klientských stanic, takže jej lze bez problémů veřejně publikovat prostřednictvím webu. Tak jako to do dělám já pro svůj testovací master.
Osoba s administrátorským přístupem, případně s přístupem ke sdílenému git repozitáři, kde se změny archivují má ale přístup i k poznámkám přímo v kódu, které nejsou součástí vygenerovaného html kódu. A stejně tak i k dalším nastavením, které jsou klíčové z hlediska bezpečnosti. V případě nutnosti tak mému potencionálnímu nástupci stačí získat přístup k tomuto kódu, aby získal všechny informace potřebné k seznámení s celou infrastrukturou. Výchozím předpokladem ovšem je, že nemá v hlavě piliny a je alespoň v základu seznámen s tím, jak se píšou manifesty puppetu. Proto ostatně také sepisuji ten svůj manuál k Puppetu - aby se jednou, až mě to už fakt přestane bavit, vůbec našel někdo, kdo místo mne nastoupil a táhnul tu káru dál.
Opět zde píšu z vlastní zkušenosti. Všichni měli pocit, když jsem končil na úřadě, že budou zájemců o místo celé davy. Jaksi pozapoměli, že za těch pět let co jsem tam byl už ani zdaleka nešlo jen o správu webu. Nakonec byli rádi, že to za mě vzal můj kámoš, se kterým jsme na něm spolupracovali.
Tenhle poslední odstavec už se pokusím vzít velice stručně.
Původně jsem měl na starosti pouze jeden master. Postupem času se ale ukázalo, že pro věci, které nesouvisí až tak s katedrou bude lepší mít ještě jiný. Některé moduly však byly napsané tak, že se na něm nedaly univerzálně použít. Začal jsem je proto postupně přepisovat.
Cílem je mít sadu univerzálních modulů, které by bylo možné veřejně sdílet přes Puppet Forge a data specifická pro určitá konkrétní prostředí mít udržovaná v privátních modulech.
Všechny svoje git repozitáře i textové poznámky jsem soustředil do jednoho superprojektu, aby mě nevykousla ztráta notebooku a konečně se začal blížit ideálnímu stavu klidu a míru duše
Závěrem doufám, že vám tento blogpost přišel dostatečně výživný a neotrávil v půli čtení. Pokud jste dočetli až sem, tak díky za vaši pozornost a pěkný víkend.
Tiskni
Sdílej: