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

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
Následující verzeObě strany příští revize
navody:vps:vpsadminos:nixops [2018/09/03 18:05] – kvm tun features rmarkonavody:vps:vpsadminos:nixops [2020/11/30 20:03] – removed outdated stuff Aither
Řádek 2: Řádek 2:
  
   * nixops manual https://nixos.org/nixops/manual/   * nixops manual https://nixos.org/nixops/manual/
-  * příklad deploymentu https://gitub.com/vpsfreecz/example-nixops-deployment/+  * příklad deploymentu https://github.com/vpsfreecz/example-nixops-deployment/
  
 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. 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.
  
-''nixops'' je možné nainstalovat mezi systemový balíky pomocí:+''nixops'' je možné nainstalovat mezi systemové balíky pomocí:
  
 <code> <code>
Řádek 18: Řádek 18:
 Je také možné nainstalovat unstable verzi použitím ''nixopsUnstable''. Je také možné nainstalovat unstable verzi použitím ''nixopsUnstable''.
  
-''nixops'' umožňuje použití různých backendů a taky jejich mixovaní. Tenhle návod dále obsahujě popis +''nixops'' umožňuje použití různých backendů a jejich mixovaní. Tento návod dále obsahuje 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''.+použití ''libvirt'' backendu pro rychlý deploy do ''qemu'' pomocí ''libvirtd'' a ''none'' backendu pro deploy předem připravených VPS přes ''SSH''.
  
 ===== Příklad ===== ===== Příklad =====
  
-Začneme vyklonováním repozitáře se vzorovým deploymentem:+Začneme naklonováním repozitáře se vzorovým deploymentem:
  
 <code> <code>
Řádek 33: Řádek 33:
 ==== libvirt backend ==== ==== 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'').+Vzorový deployment je možné otestovat pomocí ''libvirt'' backendu. Pomocí ''nixops create'' vyvoříme nový deployment s názvem ''virt'', který se 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.+Takto vytvořený deployment můžeme nasadit pomocí příkazu ''deploy''. Deploy v případě ''libvirt'' backendu vyrobí definované virtuální stroje a nahraje 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.+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> <code bash>
Řádek 51: Řádek 51:
 a otestovat nově nahozený webserver pomocí ''curl IP''. a otestovat nově nahozený webserver pomocí ''curl IP''.
  
-Deployment je možný měnit a znovu re-deploynout pomocí ''nixops deploy''.+Deployment je možné měnit a znovu re-deploynout pomocí ''nixops deploy''.
  
 ==== none backend ==== ==== 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''.+Pro deploy fyzických strojů nebo kontejnerů je možné použít ''none'' backend, který žádné stroje nevytváříale používá 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''.+Před samotným ''deploy'' je potřebné vytvořit cílove stroje (VPSky) a změnit IP adresy v ''network-none.nix''.
  
 <note> <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 zahlcení konzole - pro tento případ je lepší použít "dumb" backend pospaný v nasledujíci sekci.+None backend při prvním spuštění ''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 zahlcení konzole - pro tento případ je lepší použít "dumb" backend pospaný v nasledujíci sekci.
 </note> </note>
  
Řádek 70: Řádek 70:
 ==== dumb backend ==== ==== 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.+''dumb'' podobně jako ''none'' backend funguje po SSHale nevytváří páry klíčů pro stroje. Místo toho používá standardní konfiguraci SSH přes ''~/.ssh/config'' kde je možné vybrat správný SSH klíč pro použití pro deploy. V případě nastavených SSH klíčů ve ''vpsAdminu'' tak není nutné sahat před samotným deploy na cílovy stroj.
  
 <note> <note>
Řádek 92: Řádek 92:
 ===== Uživatelské konfigurace ===== ===== Uživatelské konfigurace =====
  
-  * https://github.com/vpsfreecz/vpsfree-cz-configuration 
-  * https://gitea.havefun.cz/aither/havefun-cz-configuration/ 
-  * https://github.com/sorki/48-io-configuration/ 
   * https://github.com/otevrenamesta/otevrenamesta-cz-configuration   * https://github.com/otevrenamesta/otevrenamesta-cz-configuration
   * https://github.com/kriloter/nixos/   * https://github.com/kriloter/nixos/
- 
-===== 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 
- 
-<note> 
-Pro správné fungování ''libvirtd'' je potrebné pro VPS zapnout KVM a TUN features. 
-</note> 
- 
-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.txt · Poslední úprava: 2023/07/31 19:45 autor: Aither