FreeBSD 14.0 Installation auf einem Cloud Server bei Cloudsigma

Basis System installieren

Installation planen

Als erstes „bauen“ wir uns einen Server.

Das Basis System soll so aufgeteilt werden:

  1. 1. SSD: 18 GB
  2. 2. SSD: 30 GB

Mein gesamtes Basis System wird also 48 GB gross.

Server Bauen

Unter „Compute“ erstellen wir den Server mit der gewünschten Anzahl RAM/CPU etc. Du kannst auch den Assistenten nutzen für einen default Server.

Danach im Tab „Laufwerke“ die gewünschten Laufwerke anfügen:

 

  • Als erstes aus der Library die FreeBSD 14.0 Install CD anhängen
  • Danach die beiden geplanten SSD Laufwerke hinzufügen (Neues Laufwerk)

 

Server & Installation Starten

Starte den Server und connecte per VNC um die Installation zu beginnen. 

 

So, Server ist nun mit der Boot-DVD gestartet! Die Installation kann beginnen 🙂 

  • Install
  • Keymap Selection -> Yes
  • Choose your keyboard language -> In meinem Fall: Swiss-German ISO-8859-1 (accent keys)
    -> beachte: Per VNC stimmt meist das Tastaturlayout nicht.
    Im Cloudsigma eignen VNC Browser Viewer wird immer das US Tastatur Layout verwendet, was die Administration natürlich schwierig macht. Ich nutze daher einen eigenen remote Client (Vinagre) – hier funktioniert bei mir das CH Tastaturlayout. Ansonsten kann man jederzeit auch die virtuelle Bildschirmtastatur von Ubuntu nutzen, falls mal ein Sonderzeichen nicht wie erwartet funktionieren sollte (einfach „onboard“ im Terminal eingeben)
  • Set Hostname -> Wie soll Deine Maschine im Netz heissen? Ich nenne sie mal Violet-New
  • Distribution Select -> Alles deaktivieren bis auf:
    • lib32
    • ports
    • src

Partitionieren

Es ist sinnvoll die Platten zu partitionieren. Jede Partition hat im Betrieb unterschiedliche Eigenschaften und die Trennung der Partitionen erlaubt es, die Dateisysteme an diese Eigenschaften anzupassen. Die Root- und /usr-Partitionen weisen meist nur lesende Zugriffe auf, während /var und /var/tmp hauptsächlich beschrieben werden. (weitere Infos: FreeBSD Handbuch)

Partitionen nun einrichten. Beim SWAP gilt als Faustregel, dass die Swap-Partion doppelt so gross wie das eingebaute RAM sein sollte. Wichtig ist die Reihenfolge der Partitionen. Die Partitionen, bei denen die Möglichkeit zur Vergrösserung bestehen sollte (z.B. /var, /usr, SWAP) müssen am Ende der Partitionstabelle stehen. Sind diese Partitionen von anderen „eingeklemmt“ ist ein resizen nur durch Backup/zurückspielen der Daten nach resizen möglich.

     

    • Partitioning -> Manual 
      • Die 1. Disk (vtbd0) selecten für root
        • C“ für Create-> GPT
        • C“ für Create-> Type: freebsd-ufs, Size: 1536MB, Mountpoint: /
        • C“ für Create-> Type: freebsd-ufs, Size: 1GB, Mountpoint: /tmp
        • C“ für Create-> Type: freebsd-ufs, Size: 10GB, Mountpoint: /var
        • C“ für Create -> Type:freebsd-swap, Size: 5632MB (bzw. einfach der Rest der Platte, wie vorgegeben), Mountpoint: none 
           
          Zusätzliche Swap Partitionen können wir später hinzufügen. Da jeder Server bei uns andere RAM Grössen verwendet, ist auch die Swap Partition variabel.
      • Nun zur 2. Disk (vtbd1) gehen für /usr
        • C“ für Create-> GPT
        • C“ für Create-> Type: freebsd-ufs, Size: 30GB (gesamte Platte), Mountpoint: /usr
        • F“ für Finish -> und „Commit

    Basis Konfiguration

    Nun wird das Basis System installiert. Am Ende der Installation gibt man das gewünschte root Passwort ein.

    • Network Configuration: gwünschtes auswählen und OK (bei mir em0)
    • Configure IPv4? -> YES
    • DHCP? -> YES
    • IPv6 -> YES
    • SLAAC -> YES
    • Resolver Configuration bestätigen.
    • Select local or UTC clock -> NO
    • Time Zone: 8 (Europe), oder was bei Dir zutrifft 😉
    • Countries: 46 (Switzerland)
    • System Configuration -> Folgendes aktivieren:
      • sshd
    • Enable Crash Dumps? -> NO
    • Add User Accounts -> YES(Damit wir uns nachher gleich per SSH einloggen können)
      • Username & Full name eingeben
      • Uid leer lassen für default
      • Login group so lassen
      • Invite user into other groups? wheel
      • Login class – default lassen
      • Shell -> sh
      • Home directory -> so lassen
      • Home directory permissions -> so lassen
      • Use password-based auth? YES
      • Use an empty password? NO
      • Use a random password? NO
      • nun gewünschtes Passwort eingeben
      • Lock out the account after creation? NO
      • Daten prüfen und mit yes abschliessen.
      • Falls gewünscht nun weiteren User hinzufügen oder mit der Install weitermachen.
    • Final Configuration (System Hardening) -> Falls man jetzt noch was ändern möchte, kann man dies hier tun. Ansonsten mit Exit beenden.
    • Would you like to make any final manual modifiactions? NO
    • Reboot

    So, aktuell ist ja immernoch die DVD als boot Laufwerk angegeben. Jetzt müssen wir ins CloudSigmaWebinterface und das DVD Laufwerk entfernen (oder einfach die HDD als Bootlaufwerk angeben.) Um diese Änderung durchführen zu können, muss man den Server kurz herunterfahren. Nun Server wieder hochfahren und mit VNC oder gleich per SSH connecten.

    System Konfigurieren

    Wir können nun bereits per SSH connecten. Beachte, dass das root Login per Default deaktiviert ist. SSH Client Connection Config ist:

    • Protocol: ssh2
    • Username: zusätzlichen User, den Du vorher eingerichtet hast
    • Auth, Primary: Keyboard Interactive

    Also nun machen wir eine SSH Connection, da dies die weiteren Konfigurationen wesentlich vereinfacht. Copy/Paste ist wieder möglich 😉

    /etc/rc.conf

    Im /etc/rc.conf werden Startoptionen definiert. Falls die Datei noch nicht existiert, kann man sie ruhig erstellen – wird aber mit Sicherheit schon existent sein: Defaults

    hostname="FreeBSD9"
    keymap="ch.acc.kbd"
    ifconfig_em0="DHCP"
    ifconfig_em0_ipv6="inet6 accept_rtadv"
    sshd_enable="YES"
    ntpd_enable="NO"
    moused_nondefault_enable="NO" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="NO"

    Falls vorhanden, einfach die bestehenden restlichen Einstellungen von einem alten rc.conf übernehmen. Für’s erste fügen wir mal folgendes hinzu:

    $ vi /etc/rc.conf
    #-----------------------------------------------#
    # Time Server/Client #
    #-----------------------------------------------#
    ntpd_enable="NO"
    ntpdate_enable="YES"
    ntpdate_flags="-b swisstime.ethz.ch 0.ch.pool.ntp.org 1.ch.pool.ntp.org 2.ch.pool.ntp.org"
    
    #-----------------------------------------------#
    # FSCK beim Startup
    # damit er automatisch mit y fsck macht
    #-----------------------------------------------#
    fsck_y_enable="YES"
    background_fsck="NO"

    /etc/make.conf

    Diverse Optimerungen am besten von Anfang an ins /etc/make.confreinpacken. Falls die Datei noch nicht existiert, kann man sie ruhig erstellen. (auch hier einfach altes conf einfügen, falls vorhanden)

    vi /etc/make.conf
    #-----------------------------------------------#
    # Several Informations #
    #-----------------------------------------------#
    USA_RESIDENT=NO
    MAKE_IDEA=YES
    WITH_OPENSSL=yes # z.b. fuer mysql
    WITH_MYSQL=yes # z.b. fuer proftpd
    WITHOUT_X11=yes # man will kein X
    NO_GUI=yes # man will kein X
    
    CFLAGS= -O -pipe
    COPTFLAGS= -O -pipe
    WITH_THREADS=yes
    
    #-----------------------------------------------#
    # CVSUP Informations #
    #-----------------------------------------------#
    SUP_UPDATE= yes
    SUP= /usr/local/bin/cvsup
    SUPFLAGS= -g -L 2
    SUPHOST= cvsup.ch.FreeBSD.org
    SUPFILE= /usr/share/examples/cvsup/stable-supfile
    PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile
    DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile

    /boot/loader.conf

    autoboot_delay="2" # Delay in seconds before autobooting
    loader_color="YES" # color output

    /etc/ssh/sshd_config

    Ich habe keine Lust, dass SSH Connection automatisch nach N Minuten getrennt wird. Wenn Du diese Einstellung beibehalten möchtest, kannst Du diesen Schritt überspringen. Ansonsten die Config wie folgt anpassen:

    vi /etc/ssh/sshd_config

    Folgendes anpassen:

    ClientAliveInterval 30
    ClientAliveCountMax 5
    PermitRootLogin no

    SSHD neu starten:

    /etc/rc.d/sshd restart
    Stopping sshd.
    Waiting for PIDS: 861.
    Starting sshd.

    Ports Collection installieren

    Wenn wir von der CD installieren, installieren wir die Ports Collection immer automatisch. Sollte die Port Collection nicht vorhanden sein, kann man sie manuell runterladen und installieren. Hier die Original Info:

    Man kann die Collection direkt ins /usr Verzeichnit entpacken. Es ist mit ports/security etc. aufgebaut. Man kann es aber vorsichtshalber natürlich auch zuerst in ein anderes Verzeichnis entpacken. Man weiss ja nie 😉 Um sicher zu gehen, dass der Content des Tar Files auch die korrekte Verzeichnisstruktur hat, einfach so testen:

    tar -tvf ports.tar.gz | more

    Denn wenn man das Verzeichnis erst nach dem entpacken moved, dauert das total lange.

    cd /usr
    fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz
    tar zxfv ports.tar.gz
    rm ports.tar.gz
    chown -R root:wheel ports

    So, und das ist GANZ WICHTIG, damit später auch alles richtig läuft:

    cd /usr/ports
    make fetchindex

    So wird der Index der Ports geschrieben. Wenn dieser Fehlt, funktioniert z.b. portdowngrade nicht mehr.

    CVSUP Installieren

    Da wir CVSUP bereits im make.conf vorkonfiguriert haben, können wir nun cvsup-without-gui installieren.

    cd /usr/ports/net/cvsup-static
    make install clean

    Ein Supfile sieht etwa so aus:

    *default host=cvsup.ch.FreeBSD.org 
    *default base=/var/db
    *default prefix=/usr
    *default release=cvs tag=RELENG_5
    *default delete use-rel-suffix
    *default compress src-all

    So, dieser Part dauert nun recht lange… Zeit für einen Kaffee… oder ein Bier 😉

    Weiter mit Portupgrade…

    Und nun gehts weiter mit Portupgrade

    nach oben