Oracle Linux 8 Installation und Inbetriebnahme (Teil 2)

Oracle Enterrise Linux 8.1

Im ersten Teil des Artikels wurde eine virtuelle Maschine mit Oracle Linux 8 erstellt, die als Grundlage für weitere Server dienen soll. Diese Maschine ist jedoch noch nicht weiter konfiguriert und kann daher noch nicht als vollständiger Ausgangspunkt für Clons dienen. In diesem zweiten Teil werden wir die Konfiguration vervollständigen und die Maschine für weitere Zwecke betriebsbereit machen.

Startoptionen

Grafischer Bootvorgang

Während des Startvorgangs wird normalerweise eine grapfische Anzeige eingeblendet, die die Logmeldungen verdeckt. Diese kann zwar mit ESC beendet werden, allerdings sehe ich dennoch beim Booten des Systems gerne, was gerade vor sich geht. Aus diesem Grund schalten wir die Anzeige wieder in den Modus, bei dem Logmeldungen sichtbar sind.

In physikalischen Servern sorgt dies für etwas längere Bootzeiten, im virtuellen Umfeld fällt dies jedoch nicht ins Gewicht. Daher wird den aus der Defaulteinstellung in /etc/default/grub die Einstellung “rhgb” (Red Hat graphical boot) aus der Zeile GRUB_CMDLINE_LINUX entfernt. Wenn zusätzlich noch “quiet” entfernt wird, erhält man zusätzlich noch Kernel-Logmeldungen.

Allerdings mit dem kleinen Schönheitsfehler, dass auch im laufenden Betrieb die Meldungen auf der Konsole ausgegeben werden, was hier nicht wollen. “quiet” bleibt deshalb in der Konfiguration stehen.
Danach wird die Grundkonfiguration wie folgendes neu geschrieben:

grub2-mkconfig -o /boot/EFI/redhat/grub.cfg

Bei einem BIOS-basierten System muss die Datei /boot/grub2/grub.cfg verwendet werden. Beim Neustarten des Systems sollten nun die Meldungen wieder sichtbar sein.

Huge Pages

Da dieser Server als Grundlage u.a. für einen Oracle Datenbankserver genutzt werden soll, wollen wir die standardmäßig eingestellten anonymen Huge Pages ausschalten. Dies geschieht durch das Ergänzen der Zeile GRUB_CMDLINE_LINUX um den Parameter “transparent_hugepage=never”. Danach wird die Konfiguration in die Grub-Konfiguration übernommen (siehe oben, grub2-mkconfig).
Nach einem Neustart des Systems kann die Einstellung überprüft werden.

cat /sys/kernel/mm/transparent_hugepage/enabled


Auf das Thema Huge Pages gehen wir detaillierter in einem anderen Artikel ein.

Systempakete vorbereiten

SELinux deaktivieren

SELinux erhöht die Sicherheit in einem Linux-System durch Zugriffskontrollen. Jedoch handelt man sich u.a. in Verbindung mit der Oracle Datenbank Probleme ein, so dass dort der Einsatz nicht empfohlen wird und SELinux ausgeschaltet werden muss. An dieser Stelle schalten wir für dieses Basissystem diesen Mechanismus aus. Zum Deaktivieren setzen wir in der Datei /etc/selinux/config den Schalter SELINUX von enforcing auf disabled. Nachfolgend ist ein Reboot notwendig.
Zum Überprüfung wird das Kommando getenforce verwendet, das nun Disabled ausgeben muss.

Firewall deaktivieren

Eine Firewall auf dem Server ist zwar grundsätzlich eine gute Variante, um die Zugriffe auf den Server einzuschränken, jedoch verzichten wir bei diesem Basissystem vollständig auf den Einsatz des Firewall-Daemons. In einem anderen Artikel werden wir jedoch zeigen, wie man die lokale Firewall in Betrieb nimmt und konfiguriert.

systemctl disable --now firewalld


Um die Firewall auszuschalten, stoppen und deaktivieren wir im System den Dienst firewalld.

Vorbereiten von YUM

Für spätere Kernelupdates bietet es sich an, die Anzahl der vorgehaltenen alten Kernel zu begrenzen. Hierzu wird in der Datei /etc/yum.conf installonly_limit auf den Wert 2 gesetzt.

Damit voller Zugriff auf benötigte Pakete besteht, sollten wir ein paar Einstellungen bei yum ändern und beispielsweise zusätzliche Repositories einbinden. In der Datei /etc/yum.repos.d/oracle-linux-ol8.repo werden folgende Sektionen aktiviert, indem jeweils “enable=1” gesetzt wird.

[ol8_baseos_latest]
...
enable=1

[ol8_appstream]
...
enable=1

[ol8_codeready_builder]
...
enable=1
[ol8_addons]
...
enable=1


Danach installieren wir EPEL wie folgendes:

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Damit haben wir nun die Grundlage für die nachfolgenden Schritte geschaffen und können uns an die Installation weiterer Pakete machen.

Installation von wichtigen Tools und Bibliotheken

Einige Tools auf die wir nicht verzichten wollen, sind durch die Minimalinstallation noch nicht im System installiert worden. Dies holen wir nun manuell nach.

dnf -y install oracle-epel-release-el8 wget yum-utils drpm vim rsync redhat-lsb-core net-tools nfs-utils unzip bind-utils dos2unix expect lsof lsscsi sg3_utils binutils make mt-st mtx openssl openssl-devel openssl-devel.i686 telnet autofs autoconf automake libtool cifs-utils strace smartmontools mc gcc gcc-c++ glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 openscap unixODBC unixODBC-devel pam-devel readline-devel perl iotop sysstat python3 xterm xdpyinfo libX11-devel libXfixes-devel libXrandr-devel xauth libXi libXi.i686 libXtst libXtst.i686 elfutils-libelf-devel fontconfig-devel motif targetcli librdmacm-devel libnsl libnsl2 bc elfutils-libelf libgcc libX11 libXau libxcb libXrender libXrender-devel python3-configshell python3-rtslib python3-six ftp screen perl-Date-Manip nasm  atop htop rlwrap iftop

Drei weitere Kompatibilitätspakete existieren in OL8 nicht mehr, so dass wir diese aus dem OL7-Repository beziehen:

dnf install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libcap1-1.10-7.el7.x86_64.rpm
dnf install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.i686.rpm
dnf install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

Update des Systems

Als letzten Schritt innerhalb der Paketkonfiguration wollen wir das komplette System auf den neuesten Stand heben.

dnf -y update

Mit diesem Befehl werden nun etliche Pakete ermittelt und aktualisiert.

Da nun evtl. auch weitere Repositories aktiviert wurden, sollte das Update noch einmal durchgeführt werden:

dnf -y --allowerasing update

In meinem Fall kam es sonst zu einem Fehler bei Abhängigkeiten.
Danach sollte noch ein cleanup durchgeführt werden.

yum clean all

An dieser Stelle kann ein Neustart durchgeführt werden, um den aktuellen Kernel zu booten und von den Updates zu profitieren.

Nacharbeiten

Einige Konfigurationseinstellungen sollten noch korrigiert werden:

  • Ergänzen von “allow_root” in /etc/fuse.conf

NTP zur Zeitsynchronisierung

Jedes Serversystem sollte grundsätzlich mit korrekter Zeitinformation betrieben werden. Hierzu wird in Oracle Linux der Dienst chronyd verwendet. In der Datei /etc/chrony.conf sollte überprüft werden, ob die eingetragenen Server verwendet werden sollen.

Standardmäßig werden Pool-Server aus dem Internet verwendet. In der Konfiguration findet sich ein oder mehrere Einträge der Form:

pool pool.ntp.org iburst

Sollen netzinterne NTP-Ressourcen verwendet werden, so kann dies über folgenden Eintrag konfiguriert werden:

server meine.ip.im.netz iburst prefer

iburst sorgt dafür, dass die initiale Synchronisierung schnell durchgeführt wird, prefer benennt eine Zeitquelle zu einer bevorzugten Zeitquelle.
Nach Änderung der Konfiguration wird chronyd aktiviert und gestartet.

 systemctl enable --now chronyd

Um zu überprüfen, ob eine Synchronisation stattfindet, kann chronyc sources verwendet werden. Die Ausgabe erzeugt eine Liste mit verwendeten oder ignorierten NTP-Servern.
Weitere Informationen zu chrony finden sich auf der Webseite https://chrony.tuxfamily.org/.

Abschluss der Arbeiten

Die Schritte aus diesem Artikel haben das System nun in einen Zustand gebracht, mit dem wir prinzipiell schon loslegen können.

Allerdings fehlen noch einige Bestandteil wie das Setzen der korrekten Umgebung, Benutzer und weitere Dienste. In den nächsten Artikeln werden wir uns damit näher befassen.

Have fun!