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 |