A nevznikl přesně takhle Debian? :)
NixOS tady je 20 let. Ve skupině na githubu nás je skoro tisíc (debian má stejný počet členů), jen za poslední týden do projektům kolem nixu přispělo skoro 500 lidí bezmála 2 tisíce commitů, což je více než u balíčků do debianu.
A proč to používat? Proč debian posledních 10 let pracuje na reproducible builds? Proč tady lidi z debianu udělali FAI? Není náhodou celá open source komunita založena na tom, že si každý dělá co chce a občas něco se uchytí a občas něco prostě ne?
Třeba protože až budete instalovat a konfigurovat 20. balíček na debianu, já budu už instalovat 20. server na Nixu... Jednou si "deklaruju" jak takový server má vypadat a pak už jen dělám nixos-install ;-) ... Nemám to zaplevelený různýma pokusama atd.
Samozřejmně, můžete použít puppet, ansible. Ale proč nepoužít něco co je v systému a na čem je takový systém postavený? Navíc třeba takový puppet(ansible whatever) má nevýhodu že ačkoli se tváří deklarativně, moc deklarativní nakonec při vývojových iteracích není a vede to k zaplevelenému systému. Tj. např. při instalaci balíku puppetem ho (až ho přestanete používat) musíte deklarovat jako ensure => absent. Nicméně osobně bych si představoval že pokud "deklaruju" nějaký systém tak na něm nebude nic krom toho co jsem deklaroval (a ne že pak půlka puppet file kvůli tomu bude časem zaplevelená ensure => absent a stejně se nikdy pravděpodobně nedostanu ke stejné instalaci jako na čistém stroji).
to je ale problém všech těch imperativních nástrojů, prostě jen automatizují změny a jsou nedetermistické. Pokud chci s chef/ansible/puppet nějakou kontrolu, musím je vždy spouštět ze stejného bodu (generovat nový image, generovat overlay nad prázdný fs atd.).
U nixu je za mě občas složité vědět, kdy mám přestat nixovat a kdy z toho udělat samostatnou aplikaci, při složitých deploymentech to umí rekurze a miliony nixpkgs instancí celé zabít.
nemusí to být problém, jen člověk musí být více pečlivý. Trochu to je nešikovné, když se má projekt předat nebo se zaučuje nový kolega do týmu, nadělá pak dost nepřesností, po pár interacích už nevíš v jakém stavu máš systém.
V ansiblu ale strašně moc bojuji s jakýmkliv refaktorem, ať už změna distribuce, změna prostřecí (vm, hw, container) nebo dokonce taková maličkost jako je centrální řízení přístupů (cyberark, hashicorp, webseal).
Další velká slabina jsou testy a samotný vývoj, v ansiblu to je často pokus omyl a zpravidla tím rozboříš systém, zejména, když se dělá něco nového. V nixu to je úplná lahoda, neznám žádný podobný deployment nástroj, kde by šly tak pohodlně psát kód, testy a ověřovat výstup.
Dobrý den vespolek,
máte někdo zkušenosti s instalací NixOS na dedicated server u Hetznera? Našel jsem nějaké články, ale rád bych se případně inspiroval z více zdrojů :)
https://nixos.wiki/wiki/Install_NixOS_on_Hetzner_Online
https://mhu.dev/posts/2024-01-06-nixos-on-hetzner/
https://xeiaso.net/blog/paranoid-nixos-2021-07-18/
používám https://github.com/nix-community/nixos-anywhere, tím si spustím nix live in-memory systém a pak už mohu udělat deploy a format disků jak potřebuji, vyhnu se pak ručně spouštět rescue mode.
IP adresy mám nastavené staticky přímo v nixu.