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. SSD: 18 GB
- /root Partition: 1.5 GB
- /tmp 1GB
- /var 10GB (später erweiterbar, nachdem SWAP zuerst gelöscht)
- SWAP 5.5GB (später erweiterbar)
- 2. SSD: 30 GB
- /usr 30GB (später erweiterbar – lass genug Platz für Ports)
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„
- Die 1. Disk (vtbd0) selecten für root
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