FreeBSD Jails mit CBSD und Bridged Networking

CoMo

Commander
Registriert
Dez. 2015
Beiträge
2.980
Ahoi,

Ich habe mir hier mal ein FreeBSD 14 installiert mit dem Ziel, ein paar meiner Dienste von Proxmox LXC-Containern in Jails umzuziehen.

Nach einiger Recherche bin ich somit jetzt bei CBSD gelandet. Das Erstellen und Starten von Jails funktioniert super, aber ich verstehe das Networking noch nicht wirklich.

Ich möchte im Grunde eine Netzwerkbrücke über die primäre NIC haben. Soll bedeuten, jede Jail soll sich per DHCP eine IP-Adresse von meinem Router holen, eine ULA konfigurieren etc. So wie ein normales Gerät im Netzwerk halt.

Kann mir da mal jemand auf die Sprünge helfen, wie ich das anstelle? Muss ich händisch eine Bridge im Hostsystem erstellen? Wie bekomme ich die dann an die Jail? Brauche ich eine VTNET Jail? Muss ich CBSD den ganzen NAT Kram konfigurieren lassen? Und so weiter :)

Perspektivisch soll da dann später auch die eine oder andere bhyve VM drauf laufen. Aber erst mal haben die Jails Priorität.
 
Habe ich so noch nie hingekriegt. Ich habe immer einfach einen static block benutzt, z.B. 192.168.1.200 - 192.168.1.255, die dann bei dem DHCP server ausgeklammert damit die kein anderer bekommen kann, und dann aliases konfiguriert um auf transparente Weise ip rules zu erstellen, um z.B. einen Plex server in einem jail von außen (WAN) erreichen zu können.
 
CoMo schrieb:
Kenn' ich zwar, habs aber noch nie benutzt.


CoMo schrieb:
Muss ich händisch eine Bridge im Hostsystem erstellen?
Im Prinzip schon.

CoMo schrieb:
Brauche ich eine VTNET Jail?
Nicht zwingend. Es sei denn, die Jail soll selber DHCP machen. Weil normales Jail-Networking funktioniert rein auf IP-Ebene. DHCP benötigt die OSI-Schicht darunter.

CoMo schrieb:
den ganzen NAT Kram konfigurieren lassen?
Wie jetzt? NAT?
An der Stelle bin ich mir unsicher, was Du überhaupt machen willst. Vielleicht solltest Du das noch mal klar stellen.
Der normale Weg wäre so, das man virtuelle Interfaces erstellt und via Bridge mit dem richtigen Ethernet-Interface verbindet. Du hast pro Jail dann ein virtuelles Interface, das Du dann der jeweiligen Jail zuweist.
NAT brauchst Du dabei gar nicht, weil das macht ja Dein Router?!
Oder willst Du eher ein virtuelles Private-Network machen? Aber dann brauchst Du auch ein lokalen DHCP-Server oder weißt die IP-Adressen gleich selbst zu.
 
Ja genau, das läuft hier bei mir Zuhause und NAT macht mein Router. Das Ziel ist, wie beschrieben, dass sich die Jails einfach eine IP-Adresse von meinem Router holen. So wie wenn ich hier ein neues Gerät ins Netzwerk hänge.

CBSD wollte bei der initialen Konfiguration ganz viel NAT-Krams konfigurieren und auch ein internes Netzwerk (10.0.0.1). Das brauche ich aber eigentlich ja alles gar nicht. In Proxmox hänge ich alle Container einfach an vmbr0 und fertig.
 
Wie gesagt, ich kenne jetzt CBSD nicht und es ist i.d.R. nicht gut etwas an solchen Tools vorbei zu konfigurieren, aber gibts denn da keine Option wie man eine Jail mit eigenem (gebrückten) Netzwerkinterface erzeugen kann?
Und falls nicht, kann man dem beibringen händische Konfiguration zu akzeptieren bzw. berücksichtigt die der ohnehin?
Wenn man nicht den Weg über DHCP geht, kann man sich auch überlegen mit Standard-Jails zu arbeiten. Die sind simpler zu konfigurieren. Wenn man denn noch eine zentrale Verwaltung der IP-Adressen haben will, kann man einfach den Hostnamen nebst zugehöriger IP-Adresse im DNS-Server hinterlegen und den automatisiert durch die Jail-Konfig. holen lassen.

btw.: FreeBSD 14.2 ist draußen. Ich würde gleich damit anfangen. Dann erspart man sich das hochziehen.
 
Ich habe zumindest bisher nichts gefunden. Vielleicht werfe ich das tatsächlich noch mal über den Haufen. Ich dachte, mit CBSD wird die ganze Jail-Konfiguration vereinfacht, nicht verkompliziert. Zudem ich ja später auch noch Bhyve VMs damit verwalten wollte.

andy_m4 schrieb:
btw.: FreeBSD 14.2 ist draußen. Ich würde gleich damit anfangen. Dann erspart man sich das hochziehen.

Bei mir gibt es wohl nichts hochzuziehen:

root@freebsd:~ # freebsd-update fetch
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 14.2-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 14.2-RELEASE-p0.
 
CoMo schrieb:
Bei mir gibt es wohl nichts hochzuziehen
Ja ok :-)
Dann bist Du schon auf Stand.

freebsd-update ist übrigens das Standardtool und es tut auch seinen Job. Es ist aber relativ langsam. Das kann insbesondere dann nervig sein, wenn man viele (Full-)Jails hat.
freebsd-rustdate ist da ein ganz netter Ersatz (ist auch über Packages/Ports verfügbar).
Mit ein bisschen Glück wird ja bald PkgBase der neue Default und dann braucht man gar kein extra Update-Tool fürs System mehr. :-)

CoMo schrieb:
mit CBSD wird die ganze Jail-Konfiguration vereinfacht, nicht verkompliziert. Zudem ich ja später auch noch Bhyve VMs damit verwalten wollte.
Vermutlich ist dann die Konfigurationsart dem dann auch geschuldet. Also das man versucht VM-Konfiguration und Jail-Konfiguration ähnlich zu halten.
Und die Grundidee ist ja auch nicht völlig verkehrt. Es gibt ja durchaus Überschneidungen zwischen beidem.

Ich selbst verwende nur Bordmittel für die Jail-Verwaltung und wenn man keine Berührungsängste mit der Kommandozeile hat und auch nur eine überschaubare Anzahl von Jails hat, geht das auch erstaunlich gut.
Für bhyve verwende ich vm-bhyve, welches auch nur ein dünner Layer über 'plain' bhyve darstellt. Also auch eher ein Tool, was einem nicht unabsichtlich im Weg stehen kann. :-)
 
  • Gefällt mir
Reaktionen: Pearl_Jam und CoMo
CoMo schrieb:
FreeBSD 14 installiert mit dem Ziel, ein paar meiner Dienste von Proxmox
Als Ergänzung noch:
Hier gibts ein Blog-Artikel dazu, wie man von Proxmox nach FreeBSD/bhyve kommt:
https://abnml.com/blog/2024/11/26/replacing-proxmox-with-freebsd-and-bhyve/
Da kommt das Thema Container/Jails zwar nicht wirklich drin vor, aber für deine VMs kannst Du es vielleicht gebrauchen.

Zu Jails ist mir noch Bastille eingefallen:
https://bastillebsd.org/
Wobei das kein reines Jail-Managment-Tool ist, sondern nach meinem Verständnis eher in die Richtung geht:
"Das was man mit Docker unter Linux macht, machen wir mit Jails unter FreeBSD".

Ansonsten, wenn Du noch fragen hast (bzw. offen sind, weil ich die übersehen hab'), dann stell Dich ruhig. Ich versuche nach besten Wissen und ähm ... Gewissen meinen Senf dazu zu geben. :-)
 
  • Gefällt mir
Reaktionen: CoMo
Ich scheitere wohl schon an der Erstellung einer Jail mit Bastille 😩

Ich habe jetzt folgendes gemacht:

Code:
[root@freebsd ~]# cat /etc/rc.conf
hostname="freebsd"
keymap="de.kbd"
ifconfig_re0="DHCP"
ifconfig_re0_ipv6="inet6 accept_rtadv"
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
powerd_enable="YES"
moused_nondefault_enable="NO"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"
zfs_enable="YES"
sshd_dsa_enable="no"
sshd_ecdsa_enable="no"
sshd_ed25519_enable="yes"
sshd_rsa_enable="yes"
#cloned_interfaces="lo1"
#ifconfig_lo1_name="bastille0"
pf_enable="NO"
bastille_enable="YES"
microcode_update_enable="YES"
smartd_enable="YES"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm re0 up"

Code:
re0: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether 90:1b:0e:c4:46:2b
        inet 192.168.100.106 netmask 0xffffff00 broadcast 192.168.100.255
        inet6 fe80::921b:eff:fec4:462b%re0 prefixlen 64 scopeid 0x1
        inet6 2003:a:XXXX:XXXX:921b:eff:fec4:462b prefixlen 64 autoconf pltime 1763 vltime 14363
        inet6 fda6:7d51:ff03:0:921b:eff:fec4:462b prefixlen 64 autoconf
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
        options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        groups: lo
        nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bridge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
        options=0
        ether 58:9c:fc:10:ff:a2
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: re0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 20000
        groups: bridge
        nd6 options=9<PERFORMNUD,IFDISABLED>

Code:
[root@freebsd ~]# grep bastille_network /usr/local/etc/bastille/bastille.conf
bastille_network_loopback=""
bastille_network_pf_ext_if=""
bastille_network_pf_table=""
bastille_network_shared="bridge0"
bastille_network_gateway=""
bastille_network_gateway6=""

Code:
[root@freebsd ~]# bastille bootstrap 14.2-RELEASE
Bootstrapping FreeBSD distfiles...
Bootstrap appears complete.

Bootstrap successful.
See 'bastille --help' for available commands.

Code:
[root@freebsd ~]# bastille create -B bridge0 tor 14.2-RELEASE dhcp
Unknown Release.
Usage: bastille create [option(s)] name release ip [interface]

Warum ist denn 14.2-RELEASE nun ein unknown release?
 
CoMo schrieb:
Warum ist denn 14.2-RELEASE nun ein unknown release?
Gute Frage.
Wie gesagt. Ich verwende keine Jail-Verwaltungstools.
Offenbar ist bastille aber nur ein Shellskript. Man kann also zumindest relativ problemlos reingucken.
Ich würde im ersten Schritt mal in der /usr/local/share/bastille/create.sh die Zeile
error_notify "Unknown Release."
ergänzen zu
error_notify "Unknown Release: ${RELEASE}"
um zu gucken, was an entsprechender Stelle in der Variable steht.
 
  • Gefällt mir
Reaktionen: CoMo
Code:
[root@freebsd ~]# bastille create -B bridge0 tor 14.2-RELEASE dhcp
Unknown Release: tor
Usage: bastille create [option(s)] name release ip [interface]

Ja interessant. Dann ist die ganze angezeigte Syntax nicht korrekt 😵‍💫

Das mit der Bridge funktioniert wohl nicht.

bastille create tor 14.2-RELEASE 10.0.0.1 bridge0

Das funktioniert. Aber so bekomme ich trotzdem keine IP-Adresse via DHCP.
Ergänzung ()

Ha, aber wenn ich der Jail so eine echte IP-Adresse aus meinem Netzwerk gebe, dann funktioniert es. Dann muss ich vielleicht damit arbeiten und mich damit abfinden, dass es mit DHCP nicht geht.
Ergänzung ()

Ach. Ne. Funktioniert nicht. Dann bekommt der Host einfach diese zusätzliche Adresse. Das macht auch keinen Sinn.
 
Zuletzt bearbeitet:
CoMo schrieb:
Dann muss ich vielleicht damit arbeiten und mich damit abfinden, dass es mit DHCP nicht geht.
Ansonsten hat man ja auch immer noch die Möglichkeit, Jails quasi "zu Fuß" zu erstellen.
Und das ist eigentlich auch im Handbuch (Chapter Jails&Containers) gut beschrieben.

Die typische Vorgehensweise ist, das man sich ein ZFS-Dataset für die Jail erzeugt. Ist nicht notwendig, aber praktisch, weil man dann sowas wie Snapshots hat und auch leicht Größenlimits setzen kann usw.
Deswegen machen das auch die meisten Jail-Management-Tools so. Idealerweise noch mit einem übergeordneten Dataset, für gemeinsame (und vererbbare) Eigenschaften.
Code:
zfs mypool/jails
zfs mypool/jails/testjail
Wenn mypool auch der Root-Pool ist, dann hat man jetzt direkt das Verzeichnis /jails/testjail

Typischerweise ist das so, das man chroot-mäßig ein vollständiges Grundsystem in die Jail rein installiert (muss nicht notwendigerweise so sein , da sind verschiedene Vorgehensweisen möglich, von denen einige auch im Handbuch beschrieben sind).
Am leichtesten geht das durch die Benutzung des FreeBSD-Installers bsdinstall:
bsdinstall jail /jails/testjail

Man kann dann gleich gucken, ob das FreeBSD-System in der Jail auf den neusten Stand ist und ggf. updaten:
freebsd-update -b "/jails/testjail" fetch install

Die Jail-Konfiguration selbst liegt i.d.R. in der /etc/jail.conf. Wenn sich das Jail-System selbst via DHCP eine IP-Adresse holen soll, wird das eine VNET-Jail sein müssen. Dadurch kriegt die Jail einen vollwertigen eigenen Netzwerkstack. Außerdem braucht man ein virtuelles Netzwerkinterface (mit eigener MAC-Adresse usw.).
Das macht man unter FreeBSD mit epair. Ein epair kann man sich als virtuelle Netzwerkschnittstellen vorstellen die mit einem Kabel verbunden sind. Man hat zwei Enden. "epair0a" und "epair0b" (die 0 muss nicht zwangsläufig eine 0 sein, sondern kann auch eine beliebige andere Zahl sein). Das eine Ende kommt quasi als Netzwerkschnittstelle in die Jail. Das andere kommt wird zu einer Netzwerkbrücke (die Netzwerkbrücke kann man sich als virtuellen Ethernet-Switch vorstellen) hinzugefügt.

Auch das ist im Handbuch beschrieben (Creating a VNET Jail).
(unter /usr/share/examples/jails/ gibts ein Skript names jib, mit dem man sich das Leben etwas erleichtern kann ; da kann man sich auch semi-automatisch die bridge und epair erstellen lassen)

Wenn wir das von Hand machen wollen, können wir grob so vorgehen wie im Handbuch beschrieben:
Code:
ifconfig bridge create
ifconfig bridge0 addm re0
(wobei für re0 hier für das phyische Netzwerkinterface des Hosts einzutragen ist)

Willst Du die beim Booten automatisch erstellen lassen, füge folgendes der /etc/rc.conf hinzu:
Bash:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm re0 up"

Jedenfalls könnte dann unsere /etc/jail.conf so aussehen:
Bash:
# Globale Parameter, die für alle Jails gelten
exec.start += "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown jail";
exec.consolelog = "/var/log/jail_${name}_console.log";

# Definition der einzelnen Jails:
testjail {
  # ${name} wird durch den Jailnamen ersetzt
  # also hier 'testjail'
  host.hostname = "${name}";
  path = "/jails/${name}";
  mount.devfs;
  devfs_ruleset = "100"; # vnet-devfs Rules + bpf

  allow.set_hostname = 1;
  # allow.sysvipc = 1; # falls benötigt?

  $id=0;  # Diese ID muss eindeutig sein;
          # sprich für jede Jail eine Andere
  $epair = "epair${id}";   # Netzwerkinterfacename für epair
 
  vnet;
  vnet.interface = "${epair}b";

  exec.prestart  = "/sbin/ifconfig ${epair} create up";
  exec.prestart += "/sbin/ifconfig ${epair}a up descr jail:${name}";
  exec.prestart += "/sbin/ifconfig ${bridge} addm ${epair}a up";
  exec.start    +="/sbin/dhclient ${epair}b";
  exec.poststop = "/sbin/ifconfig ${bridge} deletem ${epair}a";
  exec.poststop += "/sbin/ifconfig ${epair}a destroy";
}
(für die Beschreibung der Optionen kannst Du in der Manpage von jail.conf(5) bzw. jail(8) nachschauen ; außerdem haben wie fleißig ifconfig(8) benutzt und natürlich dhclient(8))

Was devfs_ruleset angeht:
das sind Regeln weil die Jail ja auch ihr eigenes /dev Verzeichnis hat. Und über diese Regeln wird geregelt, was dieses /dev Verzeichnis innerhalb der Jail enthalten darf. Es gibt das vordefinierte Ruleset 5 (was auch beim Beispiel im Handbuch benutzt wird). Das ist ok für vnet-Jails. Es reicht aber nicht für DHCP, weil wir dafür noch Zugriff auf
/dev/bpf
brauchen.


Deswegen tragen wir folgendes Ruleset in unser /etc/devfs.rules ein:
Bash:
[devfsrules_jail_vnet_bpf=100]
add include $devfsrules_jail_vnet
add path 'bpf*' unhide
(wir müssen dann ein service devfs restart machen um die Änderungen wirksam werden zu lassen oder natürlich ein Reboot)

Deine Jail starten kannst Du dann mit:
service jail onestart testjail

Sollen die Jails gleich beim booten des Host-Systems mit hoch kommen, kann man das in der /etc/rc.conf vermerken:
sysrc jail_enable="YES"
Willst Du nur bestimmte Jails beim booten starten, kann man die mit Leerzeichen getrennt angeben:
sysrc jail_list="testjail"

Wie Du siehst ist Jail-Konfiguration ganz einfach und man braucht diese Management-Tools eigentlich gar nicht. :-)

Noch ein wichtiger Hinweis zu epair und bridges. Das funktioniert so in der Form nur zuverlässig, wenn die Maschine ein Ethernet-Interface hat. Auf einem WLAN-Interface wird das eher schwierig, weil man dann ja auch eine eigene MAC-Adresse für die Jail braucht etc. und das dann auf den WLAN-Adapter zu realisieren geht i.d.R. nicht.

Hab ich noch was vergessen? Bestimmt. :-)
Dann ergänze ich noch oder/und Du fragst nach.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: CoMo
Vielen Dank für den ausführlichen Beitrag!

Ich werde mich die Tage da mal ransetzen und versuchen, deine Schritte umzusetzen.

Ich habe das jetzt alles schon wieder so verbastelt, dass ich lieber mit einem frischen FreeBSD 14.2 neu anfange. Aller Anfang ist schwer, so habe ich damals mit Linux auch angefangen. Mittlerweile bin ich zertifizierter RHEL Administrator 😇

Jetzt habe ich auch endlich ein KVM-over-IP Gerät und Kabel sind unterwegs, damit ich mit dem Teil nicht ständig am Fernseher rumhampeln muss, wenn ich neu installiere.
 
CoMo schrieb:
Ich habe das jetzt alles schon wieder so verbastelt, dass ich lieber mit einem frischen FreeBSD 14.2 neu anfange.
Ja. Hier und da kann es Sinn machen für Experimente die ZFS-Snapshot-Funktionalität.
Glücklicherweise hat man ja für viele Konfigurationseinstellungen die zentrale Datei /etc/rc.conf

Übrigens ist das System selbst zwar ein Point-Release. Aber alles was Du über Packages oder Port reinziehst verhält sich anders. Bei Packages gibt es zwei wichtige Zweige. Einmal das quarterly-Repository. Das wird, wie der Name vermuten lässt, vierteljährlich aktualisiert (ggf. kommen da auch mal Security-Fixes). Und dann gibt es noch das latest-Repository, welches kontinuierlich aktualisiert wird und damit quasi eher "rolling" ist.

Standardmäßig ist ein FreeBSD so konfiguriert, das es sich aus dem quarterly-Repository bedient. Will man das Verhalten ändern, muss man das explizit konfigurieren (Switch to latest).

Wenn man was in FreeBSD-Jails reininstallieren will, muss man dazu nicht in die Jail (mit jexec) reingehen. Man kann das pkg vom Hostsystem nehmen und benutzt einfach den Kommandozeilenschalter -j.
Hinweis: Viele Tools unterstützen einen -j Schalter, um Aktionen in Jails durchzuführen.

CoMo schrieb:
Aller Anfang ist schwer, so habe ich damals mit Linux auch angefangen.
Da sagste was.
Ja. Vieles wirkt natürlich erst mal kompliziert, weils eben neu ist.
Aber das Handbuch hilft einem, gerade am Anfang, wirklich gut weiter. Das ist auch immer gut gepflegt und auf dem aktuellsten Stand. Es gibt auch Übersetzungen davon, aber da kann es schnell mal passieren, das das in manchen Sachen hinterher hängt. Die Manpages sind auch relativ gut. Insbesondere im Vergleich zu den Linux-Pendants. Die haben auch fast immer eine Example-Section, womit man häufig auch eine Art Mini-HOWTO hat.

Und immerhin hat das erworbene Wissen unter FreeBSD ne relativ lange Halbwertzeit. Unter Linux wird ja gefühlt alle paar Jahre das Rad neu erfunden. Unter FreeBSD hat man beispielsweise immer noch dein ifconfig usw. wie schon seit Jahrzehnten.

CoMo schrieb:
Mittlerweile bin ich zertifizierter RHEL Administrator 😇
Ah ok. Nur mal so interessehalber: Setzt das eigentlich viel Know-How voraus?

CoMo schrieb:
damit ich mit dem Teil nicht ständig am Fernseher rumhampeln muss, wenn ich neu installiere.
Der Fernseher wird doch ohnehin für nix Anderes gebraucht. :-)
 
  • Gefällt mir
Reaktionen: CoMo
andy_m4 schrieb:
Ah ok. Nur mal so interessehalber: Setzt das eigentlich viel Know-How voraus?

Siehe https://www.redhat.com/de/services/certification/rhcsa

Die erste Prüfung habe ich verkackt. Warum? 0 Punkte in Networking. Hä?

Die Aufgabe war: Konfigurieren Sie das Netzwerk so. Also habe ich das existierende Netzwerk angepasst.

Aber offenbar war gefordert, dass man ein neues Netzwerk erstellt und das dann entsprechend konfiguriert. Das kann man nicht wissen. Beim zweiten Versuch durch Ausprobieren dann bestanden.

Ja, man muss schon sehr viel aus dem Kopf zusammenbekommen. Du hast eine virtuelle Umgebung mit mehreren VMs und musst dann da Dinge konfigurieren. Du kannst nicht googlen, da kein Internet. Praxisnah ist das nicht. Niemand merkt sich den Scheiß. Das braucht man nur für die Prüfung.

Aber man kann sich als Consultant super für Projekte anbieten, wenn man solche Zetrtifikate hat. Und nur darum geht es ja am Ende.
 
CoMo schrieb:
Aber man kann sich als Consultant super für Projekte anbieten, wenn man solche Zetrtifikate hat. Und nur darum geht es ja am Ende.
Jaja. So dachte ich mir das auch, das es am Ende vor allem um das "Papier" geht, was man anderen unter die Nase halten kann.

CoMo schrieb:
Du kannst nicht googlen, da kein Internet. Praxisnah ist das nicht. Niemand merkt sich den Scheiß.
Ja. Sicher merkt man sich nicht alles und wird in der Praxis natürlich nachschlagen. Trotzdem finde ich so ein stumpfes Auswendiglernen manchmal gar nicht schlecht. Selbst wenn Du in 2 Jahren dann nicht mehr weißt wie der Kommandoschalter hieß und wie er benutzt wird, bleibt zumindest hängen das es diese Funktionalität gab und weißt daher auch, wo Du ungefähr nachschauen musst.

Der wirkliche Nerv-Faktor daran ist, wenn nur ums Papier geht (statt um Ausbildung). Da man dieses Wissen ja hat, weil man das durch jahrelange Erfahrung etc. eh schon aufgesammelt hat und dann noch mal nur um der Prüfung zu genügen was auswendig lernen muss.
 
andy_m4 schrieb:
freebsd-rustdate ist da ein ganz netter Ersatz (ist auch über Packages/Ports verfügbar).
Mit ein bisschen Glück wird ja bald PkgBase der neue Default und dann braucht man gar kein extra Update-Tool fürs System mehr. :-)
Wollte nur mal kurz ein Danke da lassen. Kannte beide Projekte noch nicht. Adressiert eines der wenigen Sachen, die mich an FreeBSD stören: langsames freebsd-update :)
 
Zurück
Oben