Uživatelské nástroje

Nástroje pro tento web


navody:vps:userdata

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
navody:vps:userdata [2025/03/13 13:50] aithernavody:vps:userdata [2026/07/12 20:27] (aktuální) – Označení navigačních cest a aktualizace názvů ve vpsAdminu aither
Řádek 1: Řádek 1:
 +<page>manuals:vps:userdata</page>
 ====== 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://cloud-init.io/|cloud-init]]. Tento skript nebo konfigurace se aplikuje při prvním pro [[https://cloud-init.io/|cloud-init]]. Tento skript nebo konfigurace se aplikuje při prvním
-spuštění VPS. Podporujeme tři formáty prvotní konfigurace:+spuštění VPS. Podporujeme tyto formáty prvotní konfigurace:
  
   * [[#script|script]]   * [[#script|script]]
   * [[#cloud-init_config|cloud-init config]]   * [[#cloud-init_config|cloud-init config]]
   * [[#cloud-init_script|cloud-init script]]   * [[#cloud-init_script|cloud-init script]]
 +  * [[#nixos_configuration|NixOS konfigurace]]
 +  * [[#nixos_flake_configuration|NixOS flake konfigurace]]
 +  * [[#nixos_flake_uri|NixOS flake URI]]
  
 Skripty a konfigurace je možné si do vpsAdminu uložit a při vytvoření/reinstalaci VPS Skripty a konfigurace je možné si do vpsAdminu uložit a při vytvoření/reinstalaci VPS
-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 <vpsadmin-nav id="userdata.manage-vps.open">**VPS** -> **User data**</vpsadmin-nav>
-popř. **Edit profile** -> **User data**. Při vytvoření/reinstalaci VPS lze konfiguraci vložit i přímo+popř. <vpsadmin-nav id="userdata.manage-profile.open">**Upravit profil** -> **User data**</vpsadmin-nav>. Při vytvoření/reinstalaci VPS lze konfiguraci vložit i přímo
 bez ukládání do vpsAdminu. Konfiguraci do vpsAdminu není nutné ukládat, jen vám to ulehčí opakované bez ukládání do vpsAdminu. Konfiguraci do vpsAdminu není nutné ukládat, jen vám to ulehčí opakované
 použítí konfigurací, které se nemění. použítí konfigurací, které se nemění.
  
 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-nav id="userdata.deploy.open">**vpsAdmin** -> **VPS** -> **User data** -> Upravit položku ze seznamu a poté formulář **Nasadit do VPS**</vpsadmin-nav>
 +Tato akce pouze zapíše skript/konfiguraci na disk VPS, k jejímu spuštění dojde až při restartu VPS.
  
 ===== Formáty konfigurace ===== ===== Formáty konfigurace =====
Řádek 75: Řádek 80:
  
 Výstup cloud-init je vidět v kernel logu a je uložen v souboru ''/var/log/cloud-init-output.log''. Výstup cloud-init je vidět v kernel logu a je uložen v souboru ''/var/log/cloud-init-output.log''.
 +
 +==== NixOS configuration ====
 +Vložená konfigurace se uloží do ''/etc/vpsadmin-nixos/configuration.nix''
 +a po startu VPS se provede ''nixos-rebuild switch''. Mějte na paměti, že vložená
 +konfigurace musí importovat ''vpsadminos.nix'', nebo jej rovnou zahrnovat.
 +
 +Příklad konfigurace:
 +
 +<code nix>
 +{ config, pkgs, lib, ... }:
 +{
 +  imports = [
 +    /etc/nixos/vpsadminos.nix
 +  ];
 +
 +  environment.systemPackages = with pkgs; [
 +    vim
 +  ];
 +
 +  services.openssh.enable = true;
 +  services.openssh.settings.PermitRootLogin = "yes";
 +  #users.extraUsers.root.openssh.authorizedKeys.keys =
 +  #  [ "..." ];
 +
 +  systemd.extraConfig = ''
 +    DefaultTimeoutStartSec=900s
 +  '';
 +
 +  time.timeZone = "Europe/Amsterdam";
 +
 +  system.stateVersion = "24.11";
 +}
 +</code>
 +
 +Výstup příkazu ''nixos-rebuild'' je uložen do ''/var/log/vpsadmin-nixos-output.log''.
 +
 +==== NixOS flake configuration ====
 +Konfigurace se uloží do souboru ''/etc/vpsadmin-nixos/flake.nix'' a spustí se příkaz ''nixos-rebuild switch --flake /etc/vpsadmin-nixos#vps''. Konfigurace pro systém ''vps'' musí být součástí vloženého ''flake.nix''.
 +
 +Příklad konfigurace:
 +
 +<code nix>
 +{
 +  inputs = {
 +    nixpkgs.url = github:NixOS/nixpkgs/nixos-24.11;
 +    vpsadminos.url = github:vpsfreecz/vpsadminos/staging;
 +  };
 +  
 +  outputs = { self, nixpkgs, vpsadminos }: {
 +    # Zde musí být konfigurace s názvem "vps"
 +    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 = "yes";
 +          #users.extraUsers.root.openssh.authorizedKeys.keys =
 +          #  [ "..." ];
 +
 +          systemd.extraConfig = ''
 +            DefaultTimeoutStartSec=900s
 +          '';
 +
 +          time.timeZone = "Europe/Amsterdam";
 +
 +          nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
 +
 +          system.stateVersion = "24.11";
 +        })
 +      ];
 +    };
 +  };
 +}
 +</code>
 +
 +Výstup příkazu ''nixos-rebuild'' je uložen do ''/var/log/vpsadmin-nixos-output.log''.
 +
 +==== NixOS flake URI ====
 +Po startu VPS se spustí příkaz ''nixos-rebuild switch --flake $flake_uri''. Tímto způsobem můžete
 +jednoduše nasadit konfiguraci, kterou máte veřejně k dispozici třeba na GitHubu.
 +
 +Ukázka použití:
 +
 +<code nix>
 +github:vpsfreecz/example-vps-flake#vps
 +</code>
 +
 +Tuto konfiguraci najdete na https://github.com/vpsfreecz/example-vps-flake.
 +
 +Výstup příkazu ''nixos-rebuild'' je uložen do ''/var/log/vpsadmin-nixos-output.log''.
  
 ===== Použítí s vpsfreectl ===== ===== Použítí s vpsfreectl =====
Řádek 106: Řádek 209:
 vpsfreectl vps reinstall 123 -- --user-data-format script --user-data-content @my-script.sh vpsfreectl vps reinstall 123 -- --user-data-format script --user-data-content @my-script.sh
 </code> </code>
 +
 +===== 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
navody/vps/userdata.1741873853.txt.gz · Poslední úprava: autor: aither