VMware ESXi 5.5 mit Embedded Host Client

Ab VMware ESXi 5.5 wird der VMware vShere Client für Windows eingestellt. Als Alternative gibt es einen Web-Oberfläche (HTML5 ohne Flash).

In VMware ESXi 5.5 kann man diesen ESXi Embedded Host Client nachträglich installieren. Aber ESXi 6.5 gehört er mit zum Lieferumfang.

Zuerst laden wir uns den ESXi Embedded Host Client als Datei esxui-offline-bundle-5.x-8122819.zip auf unseren PC und übertragen Ihn mit dem vSphere Client auf den Server.

Per SSH melden wir uns am Server an und verschieben die Datei esxui-offline-bundle-5.x-8122819.zip in das Temp Verzeichnis.

mv /vmfs/volumes/datastore1/esxui-offline-bundle-5.x-8122819.zip /tmp

oder per Download direkt auf den Server.

wget http://download3.vmware.com/software/vmw-tools/esxui/esxui-offline-bundle-5.x-8122819.zip

Jetzt können wir die Installation durchführen.

esxcli software vib install -d /tmp/esxui-offline-bundle-5.x-8122819.zip

Die Seite ist jetzt im Browser zu erreichen unter der Url https://hostname/ui/.

VMware ESXi Client für Linux

Wer noch VMware ESXi 5.x verwendet konnte bisher nur auf den VMware vSphere Client für Windows zurück greifen. Die VMware Remote Console ist eine Alternative für Linux und MacOS.

Ab VMware ESXi 6.0 U3 gibt es den ESXi Embedded Host Client der mit jedem aktuellen Browser (IE, Firefox, Chrome) zusammen arbeitet.

In diesem Beispiel will ich auf ein VMware ESXi 5.1 von Linux zugreifen.

Dafür laden wir die Datei VMware-Remote-Console-10.0.2-7096020.x86_64.bundle für die VMware Remote Console 10.0.2 für Linux herrunter.

Dieser Datei müssen wie Ausführungsrechte geben.

chmod +x VMware-Remote-Console-10.0.2-7096020.x86_64.bundle

Jetzt können wir die Installation starten.

sudo ./VMware-Remote-Console-10.0.2-7096020.x86_64.bundle

Die Verbindung zum VMware Server stellen wir mit VMRC her.

vmrc -h hostname -u root -p passwort123

Kommt es zu dieser Fehlermeldung, so müssen die Einstellungen für SSL verändert werden. ESXi 5.1 unterstützt nur Verbindungen bis TLS 1.0

Verbindung zu mks kann nicht hergestellt werden.
Could not locate vmware-authd executable.

Dazu fügen wir diese Zeite in die Confiuguration von VMware Remote Console ein.

sudo vim /etc/vmware/config

tls.protocols=tls1.0

PowerDNS als Secondary DNS mit SQLite

Wir möchten einen Secondary DNS auf Basis von PowerDNS und SQLite als Backend installieren. Wir verwenden Ubuntu Server 18.04 (bionic) mit PowerDNS 4.1 aus dem Repository.

Die Installation ist sehr einfach. Die Abhängigkeiten werden automatisch mit installiert.

sudo apt install pdns-backend-sqlite3

Bei der Einrichtung antworten wir mit „YES“. Damit wird die Einrichtung zu 90% durchgeführt. Wer die Frage mit „NO“ beantwortet muss selber Hand anlegen. Weitere Informationen am Ende von dem Artikel.

Der Start von dem Dienst „PDNS“ ist fehlgeschlagen.

Systemd enthält einen DNS Resolver für die Namensauflösung. Der Dienst läuft auch auf Port 53 und auf der IP Adresse 127.0.0.1.

Deshalb müssten wir PowerDNS auf die richtig IP Adresse des Server legen und nicht auf alle IP Adessen (0.0.0.0).

sudo vim /etc/powerdns/pdns.d/pdns.local.conf

local-address=123.123.123.123
local-ipv6=2a0:1:2:3:ff::1
local-port=53
version-string=anonymous
 
master=no
slave=yes
 
disable-axfr=yes
disable-tcp=no
slave-cycle-interval=60

Nach der Änderung sollten die Dienste PowerDNS und Resolver ohne Fehler starten.

sudo systemctl restart systemd-resolved pdns

Die Tabellen von PowerDNS wurden mit der Installation automatisch angelegt. Jetzt müssen noch weitere Einstellung hinterlegt werden.

Für den Primary DNS wird in der Tabelle „supermasters“ der Hostname und die IP Adresse von dem Haupserver eingetragen.

sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 "insert into supermasters values ('123.123.123.123', 'ns1.domain.com', 'admin');"

Sollten Sie bei der Einrichtung die Frage mit „NO“ beantwortet haben, fehlt die Tabelle. Dann müssen Sie die Datenbank selbst anlegen.

wget -O /tmp/schema.sqlite3.sql https://raw.githubusercontent.com/PowerDNS/pdns/master/modules/gsqlite3backend/schema.sqlite3.sql
sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 < /tmp/schema.sqlite3.sql

Der Import ist auch mit der Command Line Shell so möglich.

sudo sqlite3 /var/lib/powerdns/pdns.sqlite3
.read schema.sqlite3.sql
.quit

Die Datenbank braucht auch die richtig Rechte.

sudo chown pdns:pdns /var/lib/powerdns/pdns.sqlite3

Die Datenbank muß manuell für das PowerDNS Backend konfiguriert werden.

sudo vim /etc/powerdns/pdns.d/pdns.local.gsqlite3.conf

launch+=gsqlite3
 
# Database location
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
gsqlite3-dnssec=on

Hier noch einige Hinweise zur Fehlersuche.

Sollte es nicht auf Anhieb funktionieren, kann man PowerDNS aus als Anwendung starten und sieht auf der Konsole die Fehlermeldungen.

sudo /usr/sbin/pdns_server

Mit dem Tool „dig“ kann man die Funktion und Erreichbarkeit des Primary und Secondary DNS überprüfen.

dig @ns2.domain.com meinname.info AXFR

Quellen: Powerdns Backend Sqlite

AVM Fritzbox Paketmitschnitt

Die AVM Fritzbox ermöglicht es den Netzwerkverkehr der IP Pakete zu erfassen und später zu Analysieren.

Zuerst gehen wir mit dem Browser auf die Fritzbox unter http://fritz.box.

Jetzt müssen wir im linken Menü auf „Assistenten“ klicken. Unterhalt von dem Menü „Assistenten“ befindet sich ein Link mit der Aufschrift „Inhalt“. Nach der Auswahl wird einem die Seite „Inhalt“ mit allen Links der Fritzbox angezeigt.

In der linken unteren Ecke befindet sich der Link zum „FRITZ!Box Support“. Diese Seite ist für die Fehleranalyse gedacht.

Wir brauchen auf der Support-Seite den Abschnitt „Paketmitschnitt“. Jetzt kann man einen Mitschnitt an unterschiedlichen Schnittstellen erstellen und später mit dem Tool Wireshark auswerten.

Ubuntu Desktop 18.04 mit xRDP und Sound

In Ubuntu 18.04 ist die xRDP Version 0.9.5 enthalten. Mit dieser Version ist es möglich auch Sound per RDP zu übertragen.

Als Desktop wird bei mir Ubuntu Mate verwendet. Natürlich können Sie auch andere Manager verwenden, aber Wayland ist zur Zeit noch nicht möglich.

Die Installation von XRDP erfolgt mit APT.

sudo apt install xrdp xorgxrdp xrdp-pulseaudio-installer

Für die Wiedergabe des Sound wird Plusaudio verwendet. Leider muss man für XRDP zwei Module selbst compilieren. Dafür brauchen wir die Quellen von Pulseaudio aus dem Archiv.

cd /tmp
apt source pulseaudio
cd pulseaudio-11.1
./configure

Nach erfolgreichem Kompilieren von Pulseaudio, kann man die XRDP Module für Pulseaudio kompilieren und installieren. Das Ubuntu Paket xrdp-pulseaudio-installer enthält die Quellen von
Github.

cd /usr/src/xrdp-pulseaudio-installer/
sudo make PULSE_DIR="/tmp/pulseaudio-11.1"
sudo install -s -m 644 module-xrdp-sink.so /usr/lib/pulse-11.1/modules
sudo install -s -m 644 module-xrdp-source.so /usr/lib/pulse-11.1/modules

Ein wichtiger Hinweis befand sich auf Github. Scheinbar funktioniert die Soundausgabe nur, wenn das Host-System eine reale Soundkarte verbaut hat. Server oder virtuelle Umgebung haben eigentlich keine Soundkarte On-Board. Ohne Soundkarte scheitert aber die Wiedergabe mit Pulseaudio und damit auch die Weiterleitung zum Client per RDP Verbindung.

Weitere Anleitungen:
How to set up audio redirection
Audio Output Virtual Channel-support in XRDP

Eintrag im DNS ansehen

Um die Eintragungen im Nameserver (DNS) anzusehen, gibt es unter Linux und Windows das Tool „nslookup“.

In dem Beispeil verwenden wir den Nameserver dns.quad9.net [9.9.9.9]. Sie können aber auch jeden anderen öffentlichen oder privaten Nameserver verwenden.

nslookup - dns.quad9.net
> set q=ANY
> domain.de
> quit

nslookup -q=ANY domain.de dns.quad9.net

Unter Windows sieht die Eingabe so aus.

nslookup -"set q=all" domain.de dns.quad9.net

Ein anderes Tool ist „dig“. Es gehört aber nicht immer zu jedem Linux dazu und muss ggf. später installiert werden.

dig ANY domain @dns.quad9.net

Microsoft SQL Server 2017 in Docker

In diesem Artikel geht es um den neuen Microsoft SQL Server 2017 Linux für Docker.

Natürlich kann man auch MS SQL 2017 direkt unter Ubuntu installieren. Microsoft stellt dafür die Pakete und Docker Images auf dem Docker HUB bereit.

Als minimale Vorraussetzung wird auf der Festplatten rund 4GB Speicherplatz und 4GB RAM benötigt. Eine laufende Docker Installation setzten wir vorraus.

In den allgemeinen Docker Image von Microsoft sind unterschiedliche SQL Editionen verein. Über einen Docker Parameter wird die jeweilige Edition gesetzt.

SQL Developer edition -> MSSQL_PID=Express
SQL Express edition -> MSSQL_PID=Developer

Mit „docker pull“ starten wir den Download von dem Microsoft SQL Server 2017 vom Docker Hub. Im Anschluss erzeugen wir mit „docker run“ eine laufende SQL Express Instanz am Netzwerkport 1433. Unsere Datenbank soll nicht im Docker Container gespeichert werden, sondern im Verzeichnis /my/data/. Das erleichter spätere Updates vom Container. Das Kennword für den Benutzer „SA“ kann natürlich individuell gestalltet werden.

sudo docker pull microsoft/mssql-server-linux
sudo docker run --name mssql1 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=KennW@rt1' -e 'MSSQL_PID=Express' -p 1433:1433 -v /my/data:/var/opt/mssql/data -d microsoft/mssql-server-linux:2017-latest
sudo docker ps -a

Damit ist die Installation schon abgeschlossen. Jetzt können wir uns per Kommandozeile auf die Datenbank verbinden.

sudo docker exec -it mssql1 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'KennW@rt1'

Als Beispiel erzeugen wir die Datenbank „TestDB“ mit der Tabelle „Inventory“ und zwei Datensätzen. Per SQL Kommando kann man auch das Kennwort von Benutzer „SA“ ändern.

CREATE DATABASE TestDB
GO
USE TestDB
CREATE TABLE Inventory(ID INT, Name NVARCHAR(50), Quantity INT)
GO
INSERT INTO Inventory VALUES (1, 'banana', 25);
INSERT INTO Inventory VALUES (2, 'orange', 14);
SELECT * FROM Inventory WHERE quantity > 15;
GO
ALTER LOGIN SA WITH PASSWORD='Neues!Kennwort'
GO
QUIT

Microsoft stellt das SQL Server Management Studio Version 17 für Windows als grafisches Tool bereit. Die IDE ist sehr Umfangreich und setzt viele Resourcen vorraus.

Eine alternative IDE stellt HeidiSQL dar.

USB Festplatte in Standby versetzen

Aufgabe ist es die Lebenszeit einer externen Festplatte zu verlängern, indem wir Sie nach einiger Zeit runter fahren.

Dazu brauchen wir das HDParm Tool, mit dem wir die Werte in der Festplatte setzen können. Ist HDParm noch installiert, so machen wir jetzt.

sudo apt install hdparm

Jetzt können wir die Festplatte sofort in Standby setzt.

sudo hdparm -y /dev/sda

Soll die Festplatte automatisch nach 50 Sekunden runter fahren, können wir den Parameterwert -S 10 setzen (10 * 5 Sekunden = 50 Sekunden). Möglich Werte sind von 1 bis 240. Die Einstellung sind nicht statisch und müssen nach einem Neustart wieder gesetzt werden.

sudo hdparm -S 10 /dev/sda

Wir können den Status der Festplatte prüfen.

sudo hdparm -C /dev/sda

Mit einer UDev-Regel können wir die Werte für die USB Festplatte nach dem Anstecken automatisch setzen.

sudo vim /etc/udev/rules.d/50-hdparm.rules

ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", RUN+="/usr/bin/hdparm -B 127 -S 120 /dev/%k"

Der Parameter -B 127 aktiviert das Energiemanagement der Festplatte. Der Parameter -S setzt den Timeout-Wert von 10 Minuten (120*5 Sekunden).

Die UDev-Regeln müssen neu geladen werden.

sudo udevadm control --reload-rules
sudo udevadm trigger

HP iLO Einstellung via VMware Host

Wenn wir die Einstellung von HP iLO (Integrated Lights-Out) von einem VMware Host ändern wollen, brauchen wir zuerst SSH Zugang und die HP ESXi Utilities Offline Bundle für VMware.

Das Offline Bundle enthält unterschiedliche Anwendungen für die Konfiguration der HP iLO oder Raid Kontroller.

hpacucli HP Array Configuration Utility CLI
hpbootcfg HP Boot Configuration Utility
hpssacli HP Smart Storage Administrator CLI
hponcfg HP iLO (Integrated Lights-Out) management controller

Man kann die VIB Packete auf den VMware ESXi Host laden und mit dem Tool esxcli installieren.

esxcli software vib install -f -v /tmp/hponcfg-04-00.10.vib

Haben wir das HPE Custom Image für VMware ESX installiert, sind die HP Tools schon vorhanden und müssen nicht per Hand installiert werden.

Um die Einstellung des HP Integrated Lights-Out Board zu ändern verwenden wir das Programm HPonCFG.

Die iLO Werkeinstellung kann man mit der Option „reset“ zurücksetzen.

/opt/hp/tools/hponcfg --reset

Ein Neustart der iLO wird automatisch durchgeführt. Der Server muss nicht extra neu gestartet werden. Eine Downtime ist nicht notwendig.

Mit dem Programm HPonCFG kann man auch die Netzwerk-Einstellung vom HP iLO in eine XML-Datei exportieren.

/opt/hp/tools/hponcfg -w /tmp/ilo.xml

Die Datei ilo.xml enthält die Netzwerk-Einstellung von der iLO Board.

Man kann auch geziehlt Einstellung der iLO ändern. Dazu braucht man spezielle XML-Dateien. Hier ein Beispiel um das iLO Password zu auf den Wert „NEW-PASSWORD“ zu ändern.

<RIBCL VERSION="2.0">
 <LOGIN USER_LOGIN="Administrator" PASSWORD="NEW-PASSWORD">
  <USER_INFO MODE="write">
   <MOD_USER USER_LOGIN="Administrator">
    <PASSWORD value="password"/>
   </MOD_USER>
  </USER_INFO>
 </LOGIN>
</RIBCL>

Mit dem Programm HPonCFG und Option -f kann man die Einstellung zurück in der iLO speichern.

/opt/hp/tools/hponcfg -f /tmp/reset_admin_password.xml

Weitere Beispiele für die XML Einstellungen bekommt man bei HP Lights-Out XML Scripting Sample als Download.

Weitere Informationen zu dem HP Tools befinden sich in der
Dokumentation.

Raspberry Pi als Videorekorder

In diesem Projekt wollen wir mit Hilfe von einem Raspberry Pi und einem DVB Stick einen Videorekorder aufbauen. Ich beschreibe die Installation mit einem Terratec Cinergy HTC USB XS HD, der sich heute noch bei Kabel (DVB-C) eignet. Es gibt viele andere DVB USB Sticks, welche sich auch dafür eignen. Eine externe Festplatte mit USB Anschluss dient als Speichermedium.

Als Betriebssystem verwenden ich Raspbian oder Ubuntu Server für den Raspberry Pi.

TVheadend 4.0.8 Raspbian Light
TVheadend 4.2.3 Ubuntu Classic Server 16.04

Nach dem Download sollte das Image entpackt und auf eine SD Karte kopiert werden.
Die SD Karte wird im Raspberry Pi eingesetzt und gestartet. Nach dem Start sollten die aktuellen Updates und Patches installieren werden.

sudo apt update
sudo apt dist-upgrade

Für den Betrieb von dem DVB Stick brauchen wir noch die Firmware und den Kernel 4.4 oder größer.

cd /lib/firmware/
sudo wget https://github.com/OpenELEC/dvb-firmware/raw/master/firmware/dvb-usb-terratec-htc-stick-drxk.fw

Das Update vom Kernel ist schnell gemacht.

sudo apt install rpi-update
sudo rpi-upgrade
sudo reboot
uname -a

Sollte es Probleme geben, dann kann man hiermit die Fehler suchen.

lsusb
dmesg

Unseren Server wollen wir mit eine festen IP Adresse betreiben und nicht per DHCP.

sudo vim /etc/network/interfaces

auto eth0
iface eth0 inet static
  address 192.168.187.100
  netmask 255.255.255.0
  gateway 192.168.187.1
  dns-nameservers 192.168.187.1

Den DHCP Dienst können wir stoppen und deaktivieren.

sudo service dhcpcd stop
sudo systemctl disable dhcpcd

Für den Betrieb als Headless-Server ist SSH notwendig.

sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
sudo touch /boot/ssh

Weitere Einstellung wie Hostname, Ländereinstellung, Tastatur kann man einfach mit dem Konfig-Tool vornehmen.

sudo raspi-config

Diese Tools helfen uns beim Betrieb weiter.

sudo apt install vim htop iotop iftop

Das Swap-File kann man ausschalten und deinstallieren.

sudo dphys-swapfile swapoff
sudo apt purge dphys-swapfile

Wenn die USB Festplatte mit dem NTFS Dateisystem verwendet wird, dann ist die Installation von extra Tools notwendig.

sudo apt install ntfs-3g

Für die Einbingung ist eine Eintragung in der Konfig „fstab“ notwendig.

sudo vim /etc/fstab

/dev/sda1 /media   ntfs  defaults,uid=hts,umask=0022,nosuid,nodev,noexec   0  0

Jetzt erfolgt die Installation von TVheadend.

curl http://apt.tvheadend.org/repo.gpg.key | sudo apt-key add -
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61

sudo apt-get install apt-transport-https

Bei Rasbian wird diese Einstellung verwendet.

sudo sh -c 'echo "deb https://dl.bintray.com/tvheadend/deb jessie release" > /etc/apt/sources.list.d/tvheadend.list'

Bei Ubuntu Server 16.04 wird diese Einstellung verwendet.

sudo sh -c 'echo "deb https://dl.bintray.com/tvheadend/deb xenial release-4.2" > /etc/apt/sources.list.d/tvheadend.list'

sudo apt update
sudo apt install tvheadend

Das Login und Password ist für den Betrieb notwendig.

http://192.168.178.100:9981/

Der Rest der Einrichtung erfolgt per Web-Interface und ist hier beschrieben.

Der Zugriff auf die Kanalliste vom Live Stream mit VLC erfolgt über die Url.

http://login:passwort@192.168.187.100:9981/playlist/channels

Noch ein Hinweis für die Senderlogos. Leider ist die Einrichtung sehr schlecht beschrieben. Hier meine Konfiguration unter dem Menü „Configuration / General / Base / Picon“.

Channel icon path: picon://%C.png
Picon path: file:///home/pi/logos/

Das User Icon lautet dann zum Beispiel „picon://Das_Erste.png“ und „picon“ wird durch den Path ersetzt zu „file:///home/pi/logos/Das_Erste.png“.

Die Senderlogos findet man im Internet.

Als Client Anwendung für den Zugriff auf TVheadend gibt es unterschiedliche Plugins.

Ubuntu enthält im Repository den Kodi Mediaplayer und das Plugin für TVheadend.

sudo apt install kodi kodi-pvr-hts

Die Einstellung der IP-Adresse für Tvheadend ist nicht einfach zu finden.

Add-ons > PVR clients | All > Tvheadend HTSP Client > Enable + Configure

Die Sprache, Tastatur und Zeitzone kann man in Kodi auch ändern.

Settings > Interface settings > Regional > Language, Keyboard layouts, Timezone