Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| navody:distribuce:guix [2023/08/29 19:27] – vytvořeno Aither | navody:distribuce:guix [2026/08/19 14:43] (aktuální) – Aktualizace dědění kontejnerové konfigurace Guixu a příkladu nasazení aither | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| < | < | ||
| - | ====== GNU Guix Distribution | + | < |
| - | Viz https://kb.vpsfree.org/manuals/distributions/guix. | + | source=" |
| + | test=" | ||
| + | /> | ||
| + | |||
| + | ====== GNU Guix System | ||
| + | |||
| + | [[https://guix.gnu.org/|GNU Guix System]] je distribuce, ve které se systém, | ||
| + | služby a balíčky popisují deklarativně v jazyce Guile Scheme. Podobně jako | ||
| + | [[navody: | ||
| + | kterým se můžeš vrátit. | ||
| + | |||
| + | ===== Jak funguje šablona ===== | ||
| + | |||
| + | Šablona vpsFree obsahuje minimální Guix System s OpenSSH a dvěma soubory: | ||
| + | |||
| + | * '' | ||
| + | * ''/ | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | zachovej: základ obsahuje kontejnerový bootloader, souborové systémy, zástupný | ||
| + | kernel, balíčky, služby a síťovou integraci. Aktuální podobu obou souborů najdeš | ||
| + | v | ||
| + | [[https:// | ||
| + | |||
| + | Jádro spravuje vpsAdminOS, proto do konfigurace nepřidávej vlastní linuxový | ||
| + | kernel ani běžný bootloader pro fyzický stroj. | ||
| + | |||
| + | ===== Úprava konfigurace ===== | ||
| + | |||
| + | Nejdřív uprav ''/ | ||
| + | pásmo a locale, které můžeš změnit. Můžeš přidat také přímo vyhodnocovaná pole, | ||
| + | například '' | ||
| + | '' | ||
| + | platformu. | ||
| + | |||
| + | Při změně služeb nejdřív odvoď seznam služeb mimo záznam | ||
| + | '' | ||
| + | Stejný postup používá příklad nasazení níže. Guix vyhodnocuje pole služeb až po | ||
| + | načtení konfigurace, | ||
| + | modulu. | ||
| + | |||
| + | Konfiguraci aktivuj jako '' | ||
| + | |||
| + | <code bash> | ||
| + | # | ||
| + | set -eo pipefail | ||
| + | |||
| + | # Použij revizi Guixu, která sestavila aktivní systémovou generaci. | ||
| + | export GUIX_PROFILE=/ | ||
| + | # shellcheck disable=SC1091 | ||
| + | . " | ||
| + | hash guix | ||
| + | |||
| + | test -r / | ||
| + | test -r / | ||
| + | test -r / | ||
| + | guix time-machine -C / | ||
| + | system reconfigure -L /etc/config / | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | reconfigure nezávisí na pozdějších změnách historie kanálů. Přepínač | ||
| + | '' | ||
| + | aktivuje novou generaci. Před odhlášením ověř, že běží SSH a služby, které | ||
| + | potřebuješ. Podrobnosti popisují manuály k | ||
| + | [[https:// | ||
| + | a [[https:// | ||
| + | |||
| + | ===== Aktualizace Guixu ===== | ||
| + | |||
| + | Ukázka výše vybere revizi Guixu a kanály, které sestavily právě aktivní | ||
| + | systémovou generaci. Reconfigure proto nevyžaduje před každou změnou | ||
| + | '' | ||
| + | |||
| + | Když chceš Guix záměrně aktualizovat, | ||
| + | zaznamenej současné kanály. Potom spusť '' | ||
| + | podle pokynů příkazu a znovu proveď reconfigure. Před změnou si přečti novinky a | ||
| + | počítej s tím, že sestavení může trvat déle a potřebovat více paměti a místa. | ||
| + | Práci s kanály a připnutými revizemi vysvětluje | ||
| + | [[https:// | ||
| + | |||
| + | ===== Síť a SSH ===== | ||
| + | |||
| + | Síť nenastavuj pomocí '' | ||
| + | každém startu vytvoří ''/ | ||
| + | '' | ||
| + | tuto vrstvu. | ||
| + | |||
| + | Výchozí šablona kvůli pohodlnému prvnímu přihlášení povoluje SSH pro '' | ||
| + | Po zprovoznění klíčů můžeš přihlášení zpřísnit podle návodu | ||
| + | [[navody: | ||
| + | |||
| + | ===== Nasazení pomocí guix deploy ===== | ||
| + | |||
| + | Pokud spravuješ více Guix VPS, můžeš jejich konfigurace držet na jednom | ||
| + | řídicím Guix systému a nasazovat je pomocí | ||
| + | [[https:// | ||
| + | Následující úplná konfigurace je výchozí bod pro jednu VPS. Ty spravuješ jen | ||
| + | '' | ||
| + | ''/ | ||
| + | |||
| + | Na řídicím systému potřebuješ SSH klíč | ||
| + | ''/ | ||
| + | přidat uživateli '' | ||
| + | Na cílové VPS spusť '' | ||
| + | klíče ověř podle [[navody: | ||
| + | řádek začínající '' | ||
| + | |||
| + | Ulož tuto konfiguraci jako ''/ | ||
| + | nahraď adresu a hostitelský klíč cílové VPS: | ||
| + | |||
| + | <code scheme> | ||
| + | ;; Načti udržovanou integraci kontejnerů vpsAdminOS. | ||
| + | (add-to-load-path "/ | ||
| + | (use-modules (gnu) | ||
| + | (gnu machine) | ||
| + | (gnu machine ssh) | ||
| + | (gnu services base)) | ||
| + | (use-service-modules ssh) | ||
| + | |||
| + | (let* ((platform-system | ||
| + | (module-ref (resolve-interface ' | ||
| + | ' | ||
| + | ;; Tyto soubory jsou na stroji, ze kterého spouštíš guix deploy. | ||
| + | | ||
| + | (local-file "/ | ||
| + | | ||
| + | (local-file "/ | ||
| + | ;; Sestav seznam služeb dříve, než jej přiřadíš zpožděně vyhodnocovanému poli. | ||
| + | | ||
| + | (cons | ||
| + | | ||
| + | | ||
| + | | ||
| + | (authorized-keys | ||
| + | (list controller-signing-key)))) | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | (inherit config) | ||
| + | (permit-root-login ' | ||
| + | (password-authentication? | ||
| + | (authorized-keys | ||
| + | | ||
| + | | ||
| + | (operating-system | ||
| + | (inherit platform-system) | ||
| + | (host-name " | ||
| + | (timezone " | ||
| + | (locale " | ||
| + | (services user-services))) | ||
| + | | ||
| + | (machine | ||
| + | (operating-system system) | ||
| + | (environment managed-host-environment-type) | ||
| + | (configuration | ||
| + | | ||
| + | ;; Nahraď adresu a hostitelský klíč údaji cílové VPS. | ||
| + | (host-name " | ||
| + | (system " | ||
| + | (user " | ||
| + | (identity "/ | ||
| + | (host-key " | ||
| + | (authorize? #t) | ||
| + | (allow-downgrades? | ||
| + | ;; vpsAdminOS poskytuje jádro a používá zástupný kořen / | ||
| + | ;; Guix proto nemůže provést kontroly souborového systému a initrd určené pro fyzický stroj. | ||
| + | (safety-checks? | ||
| + | (list target-machine)) | ||
| + | </ | ||
| + | |||
| + | Nejdřív konfiguraci načti bez nasazení příkazem '' | ||
| + | / | ||
| + | / | ||
| + | '' | ||
| + | systému na cíli a deklarace jej zachová i v nové generaci. | ||
| + | |||
| + | Konfigurace úmyslně povoluje pro '' | ||
| + | hostitelský klíč cíle. Nastavení '' | ||
| + | souborových systémů a modulů initrd, které v kontejneru nedávají smysl: | ||
| + | vpsAdminOS poskytuje jádro a integrační modul používá pomocný kořenový systém | ||
| + | ''/ | ||
| + | zůstává zapnutá. Pokud nasazení selže, oprav jeho příčinu místo povolení | ||
| + | '' | ||
| + | |||
| + | ===== Generace a obnova ===== | ||
| + | |||
| + | Generace zobrazíš příkazem '' | ||
| + | starých generací ověř, že je nový systém funkční. Příkazy pro návrat a práci | ||
| + | s generacemi popisuje | ||
| + | [[https:// | ||
| + | |||
| + | Pokud nová konfigurace nenaběhne nebo ztratíš SSH, postupuj podle návodu pro | ||
| + | [[navody: | ||
| + | popisuje návod ke [[navody: | ||
| + | pak oprav a znovu spusť reconfigure. | ||