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:vps:userdata [2025/03/12 20:40] – vytvořeno 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 tyto formáty prvotní konfigurace: | ||
* [[# | * [[# | ||
* [[# | * [[# | ||
* [[# | * [[# | ||
+ | * [[# | ||
+ | * [[# | ||
+ | * [[# | ||
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í/ | ||
vyberete způsob konfigurace. Správu uložených konfigurací najdeme ve vpsAdminu menu **VPS** -> **User data**, | vyberete způsob konfigurace. Správu uložených konfigurací najdeme ve vpsAdminu menu **VPS** -> **User data**, | ||
popř. **Edit profile** -> **User data**. Při vytvoření/ | popř. **Edit profile** -> **User data**. Při vytvoření/ | ||
- | bez ukládání do vpsAdminu. | + | bez ukládání do vpsAdminu. Konfiguraci do vpsAdminu není nutné ukládat, jen vám to ulehčí opakované |
+ | použítí konfigurací, | ||
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/ | ||
===== Formáty konfigurace ===== | ===== Formáty konfigurace ===== | ||
Řádek 43: | Řádek 50: | ||
service vpsadmin-script start | service vpsadmin-script start | ||
</ | </ | ||
+ | === Proměnné prostředí === | ||
+ | Spuštěný skript má k dispozici tyto proměnné prostředí: | ||
+ | |||
+ | * '' | ||
==== cloud-init config === | ==== cloud-init config === | ||
Řádek 69: | Řá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 |