Uživatelské nástroje

Nástroje pro tento web


navody:vps:vpsadminos:nixops

Rozdíly

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

Odkaz na výstup diff

Následující verze
Předchozí verze
navody:vps:vpsadminos:nixops [2018/09/03 17:32] – vytvořeno rmarkonavody:vps:vpsadminos:nixops [2023/07/31 19:45] (aktuální) – ponechany jen dulezite informace Aither
Řádek 1: Řádek 1:
-====== nixops ======+====== NixOps ======
  
-  * nixops manual https://nixos.org/nixops/manual/ +NixOps je nástroj pro správu [[navody:distribuce:nixos|NixOS]] systémů. Umožnuje konfigurovat 
-  * příklad deploymentu https://gitub.com/vpsfreecz/example-nixops-deployment/+vícero strojů (např. VPS) z jednoho místa. Více informací viz [[https://nixos.org/nixops/manual/|NixOps manuál]].
  
-Pro konfiguraci kontejnerů běžících na vpsFree je také možné použít nástroj nixops. nixops rozšiřuje možnosti deklarativní konfigurace NixOS pro deploy clusteru NixOS mašin.+===== Ukázková konfigurace =====
  
-''nixops'' je možné nainstalovat mezi systemový balíky pomocí:+  * https://github.com/vpsfreecz/example-nixops-deployment/
  
-<code> 
-  environment.systemPackages = with pkgs; [ 
-    nixops 
-  ]; 
-</code> 
  
-nebo do uživatelského profilu pomocí ''nix-env -i nixops''+===== Uživatelské konfigurace =====
  
-Je také možné nainstalovat unstable verzi použitím ''nixopsUnstable''+  * https://github.com/otevrenamesta/otevrenamesta-cz-configuration
- +
-''nixops'' umožňuje použití různých backendů a taky ich mixovaní. Tenhle návod dále obsahujě popis +
-použití ''libvirt'' backendu pro rychlý deploy do ''qemu'' pomocí ''libvirtd'' a ''none'' backendu pro deploy vopřed připravených instancí přes ''SSH''+
- +
-===== Příklad ===== +
- +
-Začneme vyklonováním repozitáře se vzorovým deploymentem: +
- +
-<code> +
-git clone https://gitub.com/vpsfreecz/example-nixops-deployment/ +
-</code> +
- +
-Deployment v ''network.nix'' definuje dva stroje s názvy ''hello'' a ''world'', které použivají ''include'' pro import konfigurace z adresáře ''machines''. Konfigurace ''machines/hello.nix'' ukazuje nasazení webservru ''nginx'' a konfigurace ''machines/world.nix'' zapnutí ''PostgreSQL''+
- +
-==== libvirt backend ==== +
- +
-Vzorový deployment je možný otestovat pomocí ''libvirt'' backendu. Pomocí ''nixops create'' vyvoříme nový deployment s názvem ''virt'', který su bude skládat z ''network.nix'' (logická konfigurace) a ''network-libvirt.nix'' (fyzická konfigurace, specifická pro ''libvirt''). +
- +
-Takto vytvořenej deployment můžeme nasadit pomocí přikazu ''deploy''. Deploy v případě ''libvirt'' backendu vyrobí definované virtualní stroje a nahrá na ně novou konfiguraci. +
- +
-V připadě, že nespecifikujeme proměnnou prostředí ''NIXOPS_DEPLOYMENT'' je potřeba použít parametr ''-d'' a určit název deploymentu. +
- +
-<code bash> +
-nixops create -d virt network.nix network-libvirt.nix +
-nixops deploy -d virt +
-</code> +
- +
-Nyní zbýva zjistit IP adresu stroje ''hello'' pomocí +
-<code bash> +
-nixops info -d virt +
-</code> +
- +
-a otestovat nově nahozený webserver pomocí ''curl IP''+
- +
-Deployment je možný měnit a znovu re-deploynout pomocí ''nixops deploy''+
- +
-==== none backend ==== +
- +
-Pro deploy fyzických strojů nebo kontejnerů je možné použít ''none'' backend, který žádne stroje nevytváří ale používa SSH k nahrání nové konfigurace. Obdobně ako pro virtualizovaný deployment, vytvoříme nový deployment s názvem ''none'', který bude jako fyzickou část konfigurace používat ''network-none.nix''+
- +
-Před samotným ''deploy'' je potrebné vytvořit cílove stroje (VPSky) a změnit IP adresy v ''network-none.nix''+
- +
-<note> +
-None backend při prvním spustení ''deploy'' vygeneruje nový pár SSH klíčů a zeptá se na heslo ke stroji/VPS - přikaz ''deploy'' byl proto doplněn o ''--include hello'' aby nejdřív došlo k instalaci prvního stroje. Pokud deploy pustíme bez parametru, SSH sa zeptá na heslo ke všem strojím najednou a dojde z zahlcení konzole - pro tento případ je lepší použít "dumb" backend pospaný v nasledujíci sekci. +
-</note> +
- +
-<code bash> +
-nixops create -d none network.nix network-none.nix +
-nixops deploy -d none --include hello +
-</code> +
- +
-==== dumb backend ==== +
- +
-''dumb'' podobně ako ''none'' backend funguje po SSH ale nevytváří páry klíčů pro stroje. Místo toho používá standardnou konfiguraci SSH přes ''~/.ssh/config'' kde je možné vybrat správný SSH klíč pro použití pro deploy. V případě nastavěných SSH klíčů ve ''vpsAdminu'' tak není potřebný sahat před samotným deploy na cílovy stroj. +
- +
-<note> +
-Dumb backend je dostupný ve [[navody:vps:vpsadminos:nixops#vpsfree_fork|vpsFree forku nixops]] +
-</note> +
- +
-<code bash> +
-nixops create -d dumb network.nix network-dumb.nix +
-nixops deploy -d dumb +
-</code> +
- +
-===== FAQ ===== +
- +
-<code bash> +
-- preco musim opakovat -d /o\ +
-- pinning (see activation) +
-- ruzne verze nixpkgs +
-- ct.nix +
-</code> +
- +
-===== vpsFree fork ===== +
- +
-Pro instalaci stačí uložit následující konfig do ''/etc/nixos'' například pod názvem ''vpsfreeNixops.nix'' +
-a použít ''import ./vpsfreeNixops.nix''+
- +
-<code> +
-{ config, lib, pkgs, ... }: +
-let +
-  nixopsRepo = pkgs.fetchFromGitHub { +
-    owner = "vpsfreecz"; +
-    repo = "nixops"; +
-    rev = "510485dee43cc959eb758ce61b38fc94c3e9a29e"; +
-    sha256 = "1sn4j3wyz5y1s0nnk5ahwym3qppqm03ygd78cixwdbic0kij6p1i"; +
-  }; +
-in +
-+
-  nixpkgs.overlays = [ +
-    (self: super: +
-      { +
-        nixops = (import "${nixopsRepo}/release.nix" {}).build.x86_64-linux; +
-      } +
-    ) +
-  ]; +
- +
-  environment.systemPackages = with pkgs; [ +
-    screen +
-    nixops +
-    git +
-  ]; +
-+
-</code> +
- +
- +
-===== vpsFree fork (libvirt verze) ===== +
- +
-Tato verze je určena pro běh nixops v kontejneru, v kterém zaroveň běží ''libvirt''. ''libvirt'' je nutno nakonfigurovat se statickou síti a vlastným bridge + DHCP, se kterým nefunguje oficialní verze ''nixops''. Tato verze přidáva podporu pro ''qemu-agent'' a zjištuje IP z bežícího virtualního stroje. +
- +
-Příklad konfigurace ''libvirt'': +
-  modul (libvirt + DHCP + NAT) https://github.com/sorki/48-io-configuration/blob/master/modules/libvirt.nix +
-  * konfigurace (nixops overlay) https://github.com/sorki/48-io-configuration/blob/master/machines/lvirt.nix +
- +
-Pro instalaci stačí uložit následující konfig do ''/etc/nixos'' například pod názvem ''vpsfreeNixops.nix'' +
-a použít ''import ./vpsfreeNixops.nix''+
- +
-<code> +
-{ config, lib, pkgs, ... }: +
-let +
-  nixopsRepo = pkgs.fetchFromGitHub { +
-    owner = "vpsfreecz"; +
-    repo = "nixops"; +
-    rev = "668a0f9de10c04dbb7df8c1e4f2be7b064834432"; +
-    sha256 = "05ahx1snrddb715r1pdbjk1ywfqa829c6wys9icawxygh2ngspki"; +
-  }; +
-in +
-+
-  nixpkgs.overlays = [ +
-    (self: super: +
-      { +
-        nixops = (import "${nixopsRepo}/release.nix" {}).build.x86_64-linux; +
-      } +
-    ) +
-  ]; +
- +
-  environment.systemPackages = with pkgs; [ +
-    screen +
-    nixops +
-    git +
-  ]; +
-+
-</code>+
  
navody/vps/vpsadminos/nixops.1535995954.txt.gz · Poslední úprava: 2018/09/03 17:32 autor: rmarko