FreeBSD 9.0 Installation auf einem Cloud Server

Basis System installieren

Installation vorbereiten

Zuerst muss das ISO File der Install DVD in die Cloud geschoben werden. Da ich keine so schnelle Internetverbindung habe und vorallem auch keine Lust, dass meine Leitung während des Datentransfers komplett blockiert ist (sind immerhin 2.5GB), schieb ich die das File von Server zu Server. Ich weiss nicht, ob es möglich ist, von einem FTP Server externe Daten zu fetchen (also wie fetch http:// oder wget…) – auf jedenfall hab ich das nicht rausgekriegt. Daher hab ich das ISO File zuerst auf einen meiner Server geladen (ohne Traffic kosten *g*) und von dort aus in die Cloud geladen. Ps. wenn Du Deinen Server mit dem FreeBSD-9.0-RELEASE-amd64-dvd1.iso Image bauen möchtest, kannst Du den FTP Upload überspringen. Ich habe dieses ISO File bereits in die öffentliche Laufwerk-Library von CloudSigma kopiert und ist dort für alle CloudSigma Kunden sofort verwendbar.
Also zuerst auf den eigenen Server gehen und das ISO File downloaden:
 $ fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-amd64-dvd1.iso
Nun auf den FTP Server (in meinem Fall von CloudSigma) connecten und File hochladen.
$ ftp ftp.cloudsigma.com
Connected to ftp.zrh.cloudsigma.com.
220 Cloudsigma FTP Physical-to-Virtual (P2V) gateway
Name (ftp.cloudsigma.com:teslina): meine@email.com
331 Username ok, send password.
Password: ********
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering extended passive mode (|||64236|).
150 File status okay. About to open data connection.
drwx--x--x 0 info@shoeinternational.net users 0 Jan 18 15:27 CDIMAGES
drwx--x--x 0 info@shoeinternational.net users 0 Jan 18 15:27 DRIVEIMAGES
226 Transfer complete.
ftp> cd CDIMAGES
250 "/CDIMAGES" is the current directory.
ftp> put FreeBSD-9.0-RELEASE-amd64-dvd1.iso
local: FreeBSD-9.0-RELEASE-amd64-dvd1.iso remote: FreeBSD-9.0-RELEASE-amd64-dvd1.iso
229 Entering extended passive mode (|||60584|).
150 File status okay. About to open data connection.
100% |*****************************************************************************************| 2277 MB 649.48 KB/s 00:00 ETA
226 Transfer complete.
2388531200 bytes sent in 59:51 (649.44 KB/s)
ftp> quit
So, nun ist die DVD in meinen Laufwerken in der Cloud verfügbar und ich kann sie zum Booten verwenden. dvd image upload

Server in der Cloud „bauen“

Jetzt bauen wir uns unseren Basis Server. Wenn die Grundconfig abgeschlossen ist, klonen wir diesen Server und können damit unendlich viele zusätzliche weitere Server innert wenigen Minuten bauen. Für den ersten Server, den ich baue, verwende ich gleich alle Ressourcen (CPU, RAM) die mir zur Verfügung stehen, damit die Installation so schnell wie möglich abgeschlossen werden kann. Ganz wichtig ist, dass man die CPU Cores nicht automatisch zuweisen lässt, sondern selber definiert. Aktuell werden 2.2Ghz Prozessoren bei CloudSigma verwendet. Also wähle ich 8.8Ghz im total auf 4 Kerne aufgeteilt. (unter Erweitert -> „zu Simulierende CPU-Kerne“) Beachte, dieser Absatz ist auf ein FreeBSD Hosting bei CloudSigma ausgerichtet. Hier noch das offizielle Tutorial Video, wie man einen neuen Server mit Hilfe einer Installations-CD erstellt. Nun werden wir unseren Server erstellen. Klick auf:
  • Meine Server
  • Tab „Erstellen“
  • Gib dem Server einen Namen
  • Wähle die gewünschte Anzahl CPUs und RAM.
  • Füge das CD-ROM aus der eigenen Library (MyDrives) hinzu.
Bevor wir das Laufwerk erstellen, müssen wir uns überlegen, wie Festplatten organisiert sein sollen. Da man mit FreeBSD das UFS oder ZFS Dateisystem verwenden kann, muss man sich erst überlegen, welches man einsetzen möchte. ZFS hat unter anderem den Vorteil, dass man die Partitionsgrössen im Nachhinein einfach verändern kann. Allerdings sollte man ZFS nur auf Systemen verwenden mit mind. 4GB RAM. Bei UFS ist der einzige Nachteil, dass das Umpartitionieren nicht so einfach ist. Wenn man aber das System von Grund auf so aufbaut, damit man später die UFS Partitionen bei Bedarf etwas einfacher vergrössern kann, ist dies auch kein Nachteil mehr. Da ich ein Basis System haben möchte, auf welchem ich nachher alle Server weiter aufbaue, mit unterschiedlichen RAM und CPU Konfigurationen, wähle ich UFS. Damit sich die Partitionen später einfacher vergrössern lassen, baue ich gleich zu Beginn mehrere Festplatten ein. Das System soll später so aussehen:
  1. HDD: 10 GB
  2. HDD: 10GB
Mein gesamtes Basis System wird also 20GB gross.
  • Bei der Festplatte klickst Du auf „Leeres Laufwerk erstellen.“
    • Typ: HDD
    • beim Namen etwas passendes auswählen
    • Grösse: 10GB
    • Bei der Verschlüsselung wählen wir aus Gründen der Performance „Nein“ da es sich hier um das Basis System handelt. Daten speichern wir dann auf eine andere HDD, die verschlüsselt ist.
    • Nun auf „erstellen“ klicken.
Nun erstellen wir den Server. Sobald er erstellt wurde, fügen wir noch die weiteren Disks hinzu. Bei allen ist wie vorher für eine bessere Performance die Verschlüsselung deaktiviert. Nach dem Hinzufügen der Laufwerke, nicht vergessen die Änderungen zu speichern! Nun ist der Server bereit. Wir können ihn nun starten (Klick auf Zusammenfassung und „START“) und mit der Installation beginnen. 🙂 Um auf den Server connecten zu können, benötigst Du einen VNC Client. Da gibt es zum Beispiel unter anderem den UltraVNC, RealVNC Free Edition Viewer oder den TightVNC Client (Windows). Beim VNC Client kann es noch zum Problem des Tastaturlayouts kommen. Die meisten VNC Viewer sind auf die US Tastatur eingerichtet. Und das Tastatur Layout lässt sich im VNC Client nicht ändern. Unter Windows gibt es nun folgende Lösung: (source)
  • (Windows) Einstellungen -> System Steuerung -> Region und Sprache
  • Tab Tastaturen und Sprachen -> Tastaturen ändern
  • Tab Allgemein -> Hinzufügen -> Englisch (USA, International)
  • Um den Sprach-Switch besser sehen zu können, im Tab Sprachenleiste „Auf Taskleiste fixieren“ aktivieren.
  • So, nun das VNC Viewer Fenster aktivieren und die linke ALT + Shift Taste drücken. In der Taskleiste kannst Du nun sehen, dass sich DE zu EN gewechselt hat. Klickst Du nun auf ein anderes Fenster, erscheint wieder DE. Das bedeutet, Dein Tastaturlayout wird jetzt nur beim VNC Viewer ins Amerikanische Layout übersetzt. Bei allen anderen Windows Programmen gilt weiterhin das Default Tastaturlayout. Und das $-Zeichen auf Deiner Tastatur erscheint nun auch über VNC als $-Zeichen.
Es ist sehr wichtig, dass das Tastaturlayout für den VNC Viewer vor der Installation korrekt eingestellt ist. Denn sonst könnte es sein, dass Du später Dein root Passwort nicht kennen wirst.😉

Installation

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)
  • Set Hostname -> Wie soll Deine Maschine im Netz heissen? Ich nenne sie mal FreeBSD9
  • 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)
  • Partitioning -> Guided -> Die 1. Disk (ada0) Selecten für root -> Entire Disk
  • Partitionen nun einrichten. Beim SWAP gilt: Als Faustregel gilt, 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.
    • Nun zur root Partition („/“) runterscrollen und löschen („D„)
    • Nun zur SWAP Partion scrollen auch auch diese löschen („D„)
    • Nun zu ada0 gehen und:
    • 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: 6GB, Mountpoint: /var
    • C“ für Create -> Type:freebsd-swap, Size: 2GB (bzw. einfach der Rest der Platte, wie vorgegeben), Mountpoint: none Beim SWAP sind es in unserem default System nur 2GB. 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 zu ada1 gehen und (GPT als Partitionsschema wählen):
    • C“ für Create-> Type: freebsd-ufs, Size: 10GB (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 Passwortein.
  • 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 -> 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="swissgerman.iso.acc.kbd"
ifconfig_em0="DHCP"
ifconfig_em0_ipv6="inet6 accept_rtadv"
sshd_enable="YES"
ntpd_enable="YES"
# 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-without-gui
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
  • *

    Du kannst diese HTML tags verwenden: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Kommentar-Feed für diesen Beitrag
nach oben