Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| navody:vps:userdata [2025/03/13 13:48] – aither | navody:vps:userdata [2025/03/22 17:29] (aktuální) – aither | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| + | < | ||
| ====== User data ======= | ====== User data ======= | ||
| Při vytvoření nebo reinstalaci VPS může vpsAdmin do VPS nahrát skript nebo konfiguraci | Při vytvoření nebo reinstalaci VPS může vpsAdmin do VPS nahrát skript nebo konfiguraci | ||
| pro [[https:// | pro [[https:// | ||
| - | spuštění VPS. Podporujeme | + | spuštění VPS. Podporujeme |
| * [[# | * [[# | ||
| * [[# | * [[# | ||
| * [[# | * [[# | ||
| + | * [[# | ||
| + | * [[# | ||
| + | * [[# | ||
| Skripty a konfigurace je možné si do vpsAdminu uložit a při vytvoření/ | Skripty a konfigurace je možné si do vpsAdminu uložit a při vytvoření/ | ||
| Řádek 16: | Řádek 20: | ||
| Pro vývoj a testování je možné uloženou konfiguraci nahrát do VPS kdykoliv, | Pro vývoj a testování je možné uloženou konfiguraci nahrát do VPS kdykoliv, | ||
| **vpsAdmin** -> **VPS** -> **User data** -> Upravit položku ze seznamu a poté formulář **Deploy to VPS**. | **vpsAdmin** -> **VPS** -> **User data** -> Upravit položku ze seznamu a poté formulář **Deploy to VPS**. | ||
| - | + | Tato akce pouze zapíše skript/konfiguraci | |
| - | ===== Použítí s vpsfreectl ===== | + | |
| - | Prvotní | + | |
| - | Nejdříve si připravíme soubor se skriptem: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | cat <<EOF > my-script.sh | + | |
| - | #!/bin/sh | + | |
| - | + | ||
| - | apt install -y nginx | + | |
| - | echo "Hello from VPS $VPSADMIN_VPS_ID" | + | |
| - | EOF | + | |
| - | </ | + | |
| - | + | ||
| - | Nyní vytvoříme novou VPS: | + | |
| - | + | ||
| - | <code bash> | + | |
| - | vpsfreectl vps create -- \ | + | |
| - | --hostname vps \ | + | |
| - | --os-template 168 \ | + | |
| - | --location 7 \ | + | |
| - | --user-data-format script \ | + | |
| - | --user-data-content @my-script.sh | + | |
| - | </ | + | |
| - | + | ||
| - | Hodnota parametru '' | + | |
| - | nahrát | + | |
| - | + | ||
| - | <code bash> | + | |
| - | vpsfreectl vps reinstall 123 -- --user-data-format script --user-data-content @my-script.sh | + | |
| - | </ | + | |
| ===== Formáty konfigurace ===== | ===== Formáty konfigurace ===== | ||
| Řádek 106: | Řádek 80: | ||
| Výstup cloud-init je vidět v kernel logu a je uložen v souboru ''/ | Výstup cloud-init je vidět v kernel logu a je uložen v souboru ''/ | ||
| + | |||
| + | ==== NixOS configuration ==== | ||
| + | Vložená konfigurace se uloží do ''/ | ||
| + | a po startu VPS se provede '' | ||
| + | konfigurace musí importovat '' | ||
| + | |||
| + | Příklad konfigurace: | ||
| + | |||
| + | <code nix> | ||
| + | { config, pkgs, lib, ... }: | ||
| + | { | ||
| + | imports = [ | ||
| + | / | ||
| + | ]; | ||
| + | |||
| + | environment.systemPackages = with pkgs; [ | ||
| + | vim | ||
| + | ]; | ||
| + | |||
| + | services.openssh.enable = true; | ||
| + | services.openssh.settings.PermitRootLogin = " | ||
| + | # | ||
| + | # [ " | ||
| + | |||
| + | systemd.extraConfig = '' | ||
| + | DefaultTimeoutStartSec=900s | ||
| + | ''; | ||
| + | |||
| + | time.timeZone = " | ||
| + | |||
| + | system.stateVersion = " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Výstup příkazu '' | ||
| + | |||
| + | ==== NixOS flake configuration ==== | ||
| + | Konfigurace se uloží do souboru ''/ | ||
| + | |||
| + | Příklad konfigurace: | ||
| + | |||
| + | <code nix> | ||
| + | { | ||
| + | inputs = { | ||
| + | nixpkgs.url = github: | ||
| + | vpsadminos.url = github: | ||
| + | }; | ||
| + | | ||
| + | outputs = { self, nixpkgs, vpsadminos }: { | ||
| + | # Zde musí být konfigurace s názvem " | ||
| + | nixosConfigurations.vps = nixpkgs.lib.nixosSystem { | ||
| + | modules = [ | ||
| + | ({ config, pkgs, lib, ... }: | ||
| + | { | ||
| + | imports = [ | ||
| + | vpsadminos.nixosConfigurations.container | ||
| + | ]; | ||
| + | |||
| + | environment.systemPackages = with pkgs; [ | ||
| + | vim | ||
| + | ]; | ||
| + | |||
| + | services.openssh.enable = true; | ||
| + | services.openssh.settings.PermitRootLogin = " | ||
| + | # | ||
| + | # [ " | ||
| + | |||
| + | systemd.extraConfig = '' | ||
| + | DefaultTimeoutStartSec=900s | ||
| + | ''; | ||
| + | |||
| + | time.timeZone = " | ||
| + | |||
| + | nixpkgs.hostPlatform = lib.mkDefault " | ||
| + | |||
| + | system.stateVersion = " | ||
| + | }) | ||
| + | ]; | ||
| + | }; | ||
| + | }; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Výstup příkazu '' | ||
| + | |||
| + | ==== NixOS flake URI ==== | ||
| + | Po startu VPS se spustí příkaz '' | ||
| + | jednoduše nasadit konfiguraci, | ||
| + | |||
| + | Ukázka použití: | ||
| + | |||
| + | <code nix> | ||
| + | github: | ||
| + | </ | ||
| + | |||
| + | Tuto konfiguraci najdete na https:// | ||
| + | |||
| + | Výstup příkazu '' | ||
| + | |||
| + | ===== Použítí s vpsfreectl ===== | ||
| + | Prvotní konfiguraci je možné do VPS nahrát také pomocí [[navody: | ||
| + | Nejdříve si připravíme soubor se skriptem: | ||
| + | |||
| + | <code bash> | ||
| + | cat <<EOF > my-script.sh | ||
| + | #!/bin/sh | ||
| + | |||
| + | apt install -y nginx | ||
| + | echo "Hello from VPS $VPSADMIN_VPS_ID" | ||
| + | EOF | ||
| + | </ | ||
| + | |||
| + | Nyní vytvoříme novou VPS: | ||
| + | |||
| + | <code bash> | ||
| + | vpsfreectl vps create -- \ | ||
| + | --hostname vps \ | ||
| + | --os-template 168 \ | ||
| + | --location 7 \ | ||
| + | --user-data-format script \ | ||
| + | --user-data-content @my-script.sh | ||
| + | </ | ||
| + | |||
| + | Hodnota parametru '' | ||
| + | nahrát při reinstalaci VPS: | ||
| + | |||
| + | <code bash> | ||
| + | vpsfreectl vps reinstall 123 -- --user-data-format script --user-data-content @my-script.sh | ||
| + | </ | ||
| + | |||
| + | ===== Podporované distribuce ===== | ||
| + | |||
| + | Všechny kromě následujících výjimek: | ||
| + | |||
| + | * script není podporován na Guix, NixOS a Slackware | ||
| + | * cloud-init není podporován na Guix, NixOS, Slackware a Void Linuxu | ||