Erstellung von Umgebungen über CBSDfile

Befehl

cbsd up

Der Befehl cbsd up liest die Datei CBSDfile im aktuellen Arbeitsverzeichnis und erstellt alle darin definierten Umgebungen. Dies ist die empfohlene und standardmäßige Methode für den regulären Einsatz.

Was ist CBSDfile?

CBSDfile ist ein Shell-Skript, das Konfigurationsfunktionen enthält. Jede Funktion beschreibt eine einzelne Umgebung. Der Befehl cbsd up führt (source) dieses Skript aus und erstellt die Umgebungen gemäß den Definitionen.

Die Definition einer Umgebung wird durch den Funktionsnamen im folgenden Format festgelegt:

<typ>_<name>()
{
    # parameter
}

Der Typ bestimmt den Hypervisor: - jail — FreeBSD Jail Container - bhyve — Bhyve virtuelle Maschine - qemu — QEMU-Virtual Machine - xen — Xen-Virtual Machine

Grundlegende Struktur

Minimaler CBSDfile:

jail_web1()
{
    ip4_addr="10.0.0.10"
    host_hostname="web1.example.com"
    ver="14.2"
}

Der Aufruf von cbsd up erstellt die Jail web1 mit den angegebenen Parametern.

Mit mehreren Umgebungen:

jail_web1()
{
    ip4_addr="10.0.0.10"
    host_hostname="web1.example.com"
}

jail_web2()
{
    ip4_addr="10.0.0.11"
    host_hostname="web2.example.com"
}

Globale Variablen

Die Funktion globals() definiert Parameter, die auf alle Umgebungen in der Datei angewendet werden:

globals()
{
    default_domain="example.com"
    bhyve_vnc_tcp_bind="0.0.0.0"
}

jail_web1()
{
    ip4_addr="10.0.0.10"
}

Variablen aus globals() werden für alle Umgebungen verwendet, es sei denn, eine bestimmte Umgebung überschreibt sie nicht explizit.

Gemischte Hypervisoren

Eine einzige CBSDfile kann Umgebungen verschiedener Typen enthalten:

jail_web() { 
   ip4_addr = "  ;  

bhyve_vm  () {  
   vm_ram = " 2g "  
   vm_cpus = " 2 "  
 }  

 cbsd up wird beide Funktionen verarbeiten und entsprechend eine Jail sowie eine bhyve-VM erstellen .  

## Überschreibung über Kommandozeile  

CLI-Argumente von cbsd up überschreiben Werte aus dem CBSDfile :  

 ``` bash  
 cbsd up web  ver=  .  ip addr=DHCP  
 ```  

 Für einen CBSDfile wie folgt :  

 ``` bash  
 jail_web ( ) {  
     ver = " . " ;  
     ip addr = " . . . ";  
 }
Ergebnis: `web1` wird mit `ver=14.4` und `ip4_addr=DHCP` erstellt, wobei die Werte aus der Datei ignoriert werden.

Dies ermöglicht die Verwendung einer einzigen CBSDfile als Vorlage für verschiedene Konfigurationen.

## Parallele Ausführung

Die Variable `PARALLEL` steuert die Anzahl der gleichzeitig erstellten Umgebungen:

```bash
globals()
{
    PARALLEL=4
}

Standardmäßig ist PARALLEL=1 (sequenzielle Ausführung).

Globale Umgebungsparameter

Parameter aus der Tabelle jcreate sind in der CBSDfile anwendbar. Die wichtigsten sind:

Parameter Standard Beschreibung
ip4_addr DHCP IPv4-Adresse
host_hostname ${jname}.${default_domain} FQDN
ver native FreeBSD Release-Version
arch native Architektur
vnet 0 VNET-Isolierung
astart 1 Autostart beim Booten des Hosts
runasap 0 Sofort nach der Erstellung starten lassen
pkglist Liste der zu installierenden Pakete Profilkonfiguration Profilkonfiguration Profilkonfiguration Profilkonfiguration Profilkonfiguration Profilkonfiguration Profilkonfiguration
cbsd destroy Alle Umgebungen aus der CBSDfile entfernen
cbsd destroy <name> Eine bestimmte Umgebung entfernen

Verwandte Seiten