Hauptprogramme / Configs
Konfigurationen
Zeit Synchronisation mit NTP
Das rc.conf haben wir ja bereits bei der Grundinstallation konfiguriert. Hier einfach nocheinmal die Settings im Überblick:
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"
Jetzt müssen wir nur noch den Cronjob anpassen, damit es immer wieder mal aktualisiert wird:
# crontab -e
# Help File # # minute 0-59 The exact minute that the command sequence executes # hour 0-23 The hour of the day that the command sequence executes # day 1-31 The day of the month that the command sequence executes # month 1-12 The month of the year that the command sequence executes # weekday 0-6 The day of the week that the command sequence executes. # Sunday=0, Monday = 1, Tuesday = 2, and so forth. # command Special The complete sequence of commands to be executed. # The command string must conform to Bourne shell syntax. # Commands, executables (such as scripts), or combinations are acceptable. # # #m h d m w 59 01 * * * /usr/sbin/ntpdate -b swisstime.ethz.ch 0.ch.pool.ntp.org 1.ch.pool.ntp.org 2.ch.pool.ntp.org > /dev/null 2>&1
Note: den NTP Server braucht man nicht zu starten. Sonst ist der Port zu und die Zeit zu ungenau, da nur bei grösseren Abweichungen angepasst wird [FreeBSD Handbuch: Die Uhrzeit mit NTP synchronisieren] Weitere Informationen unter:
System Status Emails
Die „daily run output“ Emails können je nach Logfiles riesig ausfallen. Daher ist es sinnvoll, die Logs, die nicht so wichtig sind, auszublenden. z.b. die Logs über Mails, die versucht worden sind über unsere server zu verschicken (rejected mail hosts) Dazu einfach das Config wie folgt anpassen:
vi /etc/defaults/periodic.conf # 460.status-mail-rejects
daily_status_mail_rejects_enable="NO" # Check mail rejects
daily_status_mail_rejects_logs=3 # How many logs to check
Basis Programme
Folgendes darf nicht fehlen:
Anmerkung: IPFW (Firewall) gehört natürlich auch auf jeden Server. Jedoch werde ich die pro Server konfigurieren – da auf jedem Server andere Services aktiviert sind und es so keine globale Firewall Config gibt. Sind alle Hauptprogramme installiert, mache ich ein Image von meiner „Server Vorlage“. Von hier aus baue ich nun meine einzelnen Server nach den speziellen Bedürfnissen. Ab hier gehts nun weiter zu meiner Software Collection .
Weitere Server erstellen
Server klonen
So, ab hier ist der Basis Server fertig und wir können daraus die „echten“ Server bauen. Dazu den Basis Server runterfahren und klonen. Hierbei ist es sehr wichtig NICHT DEN SERVER sondern die DRIVES zu klonen! Die Server Instanzen werden von den Drives komplett unabhängig behandelt. Wenn man einen Server klont werden nur die Server-Settings geklont (CPU, RAMs, Links zu den Drives, etc). Die verbundenen Laufwerke werden jedoch NICHT mitgeklont. Um keinen Flüchtigkeitsfehler zu machen ist es daher besser, die Drives zu klonen und in einem neu erstellen Server einzubauen.
Zusätzliche HDDs einbauen
Beim neuen Server nun die zusätzlich(en) HDDs einbauen. In meinem Fall füge ich nun eine HDD für die Datenbank hinzu sowie eine globale Disk, welche für alle Server Instanzen zugänglich sein wird. Nun den neuen Server starten und nachschauen, ob der Server die neuen HDDs auch erkannt hat:
# dmesg
ada0 at ata0 bus 0 scbus0 target 0 lun 0 ada0: ATA-7 device ada0: 16.700MB/s transfers (WDMA2, PIO 8192bytes) ada0: 10752MB (22020096 512 byte sectors: 16H 63S/T 16383C) ada0: Previously was known as ad0 ada1 at ata0 bus 0 scbus0 target 1 lun 0 ada1: ATA-7 device ada1: 16.700MB/s transfers (WDMA2, PIO 8192bytes) ada1: 10240MB (20971520 512 byte sectors: 16H 63S/T 16383C) ada1: Previously was known as ad1 ada2 at ata1 bus 0 scbus1 target 0 lun 0 ada2: ATA-7 device ada2: 16.700MB/s transfers (WDMA2, PIO 8192bytes) ada2: 20480MB (41943040 512 byte sectors: 16H 63S/T 16383C) ada2: Previously was known as ad2 ada3 at ata1 bus 0 scbus1 target 1 lun 0 ada3: ATA-7 device ada3: 16.700MB/s transfers (WDMA2, PIO 8192bytes) ada3: 153600MB (314572800 512 byte sectors: 16H 63S/T 16383C) ada3: Previously was known as ad3
Disks partitionieren
Soweit alles Bestens! Wenn es komplett neue Disks sind, müssen wir die jetzt noch partitionieren. Falls die HDDs bereits partitioniert sind oder Daten drauf haben, geht es mit dem nächsten Kapitel /etc/fstab weiter. Ich mache das einfachheitshalber mit sysinstall . Du kannst es aber auch direkt über die Shell machen. Hier die offizielle Anleitung vom FreeBSD Handbuch .
# sysinstall
Hier ins Configure Menü rein.
Configure Do post-install configuration of FreeBSD
Danach Fdisk aufrufen
Fdisk The disk slice (PC-style partition) editor
Meine neuen Disks sind ada2 und ada3 . Zuerst wähle ich ada2 . Das gibt meine Datenbank HDD. Hierfür nehme ich die gesamte Disk ( Option A ). Nun sieht es so aus:
Offset Size(ST) End Name PType Desc Subtype Flags 0 63 62 - 12 unused 0 63 41942817 41942879 ada2s1 8 freebsd 165 41942880 160 41943039 - 12 unused 0
- Nun die Änderungen speichern mit W (Write Changes)
- Das Warning Popup einfach mit YES bestätigen.
- Bei der Frage nach der Installation des Boot Managers None wählen.
- Nun wurde Partition geschrieben. Mit OK bestätigen.
- Nun beenden mit Q
- Jetzt die nächste Platte auswählen ( ada3 ) und das selbe nochmal machen.
- Dies ist eine Globale Platte wo ich zwei Partitionen drauf machen werde. Die eine ist für Monitoring Daten, der Rest für Backups. Also:
- C für Create -> 10G -> type 165 (FreeBSD)
- C für Create -> Rest Das sieht nun so aus:
Offset Size(ST) End Name PType Desc Subtype Flags 0 63 62 - 12 unused 0 63 20971377 20971439 ada3s1 8 freebsd 165 20971440 293601168 314572607 ada3s2 8 freebsd 165
Nun wieder wie vorher:
- W für Write changes
- Popup bestätigen mit YES
- Boot Manager: None
- Bestätigen mit OK
- Nun fdisk beenden mit Q
- Nun über OK fdisk beenden (mit Tab zum OK button gehen) und Sysinstall ebenfall beenden.
Nun muss man sysinstallerneut starten.
# sysinstall
- Configure
- Label
- ada2 mit Leertaste aktivieren
- Q für Beenden
- Nun ada3 auswählen -> jetzt sind alle 3 Partitionen ausgewählt.
- Nun bei der ersten Disk (ada2)
- C für Create -> gesamte Disk (default) -> FS -> /database
- Zweite Disk, erste Partition (10GB) auswählen und
- C für Create -> gesamte Disk (default) -> FS -> /monitoring
- Die zweite Partition auswählen (139 GB)
- C für Create -> gesamte Disk (default) -> FS -> /backup
nun sieht es so aus:
Part Mount Size Newfs Part Mount Size Newfs ---- ----- ---- ----- ---- ----- ---- ----- ada2s1d /database 20479MB UFS2+S Y ada3s1d /monitori 10239MB UFS2+S Y ada3s2d /backup 139GB UFS2+S Y
- W für Write
- Popup Warning bestätigen mit Yes
/etc/fstab
Nun muss man die neuen Partitionen in /etc/fstab eintragen. Das macht sysinstall nicht selber…
# vi /etc/fstab
folgende Zeilen hinzufügen
/dev/ada2s1d /database ufs rw 2 2 /dev/ada3s1d /monitoring ufs rw 2 2 /dev/ada3s2d /backup ufs rw 2 2
So, nun sind die Disks ready und können benutzt werden:
#df
Filesystem 1024-blocks Used Avail Capacity Mounted on /dev/ada0p2 1547804 625112 798868 44% / devfs 1 1 0 100% /dev /dev/ada0p3 1031708 8292 940880 1% /tmp /dev/ada0p4 6184220 80004 5609480 1% /var /dev/ada1p1 10318968 5563072 3930380 59% /usr /dev/ada2s1d 20307084 8 18682512 0% /database /dev/ada3s1d 10143412 8 9331932 0% /monitoring /dev/ada3s2d 142191172 8 130815872 0% /backup
Hostname ändern
Als nächstes erhält der Server seine eigene Identität…
# vi /etc/rc.conf
Hostname in den neuen Servernamen ändern
hostname="NeuerName"
beim nächsten booten wird automatisch der neue Name gesetzt. Im laufenden Betrieb können wir das nun auch noch ändern:
hostname NeuerName
Setup Monitoring Directories
Für die Monitoring Scripts müssen jetzt noch die Directories erstellt werden:
mkdir -p /monitoring/mrtg/NeuerName chown -R mrtg:mrtg /monitoring/mrtg
und natürlich auch das mrtg Config entsprechend den Diensten / Bedürfnissen des Servers anpassen.
vi /usr/local/etc/mrtg/mrtg.cfg
Hier ist nun die Grundconfig für diesen Server abgeschlossen. Nun kann man die gewünschte Software installieren.
Server Setup
MySQL Server
Dieser Server wird ausschliesslich als Datenbankserver verwendet. Daher fällt die Software Installation sehr übersichtlich aus 😉
Web Server
- Installation Apache Worker
- Installation PHP