vCenter – VCSA – auf einem Mac/VMware-Fusion installieren

Auf einem Mac lässt sich für Test- und Lernzwecke eine Mini-Virtualisierungsumgebung einrichten die aus einem vCenter und x beliebigen ESXi Servern besteht. Hoch-Verfügbarkeit wäre auch denkbar aber dazu später eventuell was.

Vorab sollte man sich paar Gedanken über die IP-Adresse, Hostname und Domain-Name machen. Es ist relativ kompliziert diese Parameter nach der Installation anzupassen da einige interne Zertifikate geändert werden müssen und das ist eine Geschichte für sich.

  • Zuerst muss das runtergeladene VCSA ISO File gemountet werden.
  • Mit dem Finder in den Ordner VSCA des gemounteten Images wechseln und das *.ova File lokal auf die Festplatte kopieren:
  • In Fusion unter Ablage auf Importieren klicken

Hier muss jetzt das OVA-File eingebunden werden und auf weiter klicken:

  • Eine der angebotenen Ausführungen auswählen. Da das alles nur zum Spielen ist wählen wir Tiny vCenter with embaded PSC
  • Im nächsten Schritt zusätzliche Einstellungen eingetragen. Hier die Network Configuration

  • Den Ablageort der VM auswählen und den Importvorgang starten
  • Nun kann die neu erstellte VM gestartet werden. Nachdem die VM erstmalig gebootet wurde werden im Hintergrund Einstellungen vorgenommen. Nach kurzer Zeit rebootet die VM.
  • Nachdem die VCSA neu gebootet wurde muss in der Konsole das Passwort gesetzt werden. Dazu F2 drücken, es erscheint das Dialog zum Ändern des PWs

  • Der Rest der Installation erfolgt im Browser. Dazu die IP-Adresse der VCSA und den Port 5480 über https aufrufen:

https://<VCSA Name>:5480/

Setup starten

  • Nachdem alles installiert ist kann die vCenter GUI im Browser unter der Adresse des vCenters geöffnet werden:

https://<vcsa-hostname>/ui

Apache Tomcat 10 installieren auf Rocky Linux 8

(1) Java installieren
dnf install java-17-openjdk -y

(2) tomcat Benutzer anlegen
mkdir /opt/tomcat
groupadd tomcat
useradd -g tomcat -c „Tomcat User“ –d /opt/tomcat -s /sbin/nologin tomcat

(3) Tomcat herunterladen und entpacken
wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.16/bin/apache-tomcat-10.0.16.tar.gz
tar xzf apache-tomcat-10.0.16.tar.gz -C /opt/tomcat –strip-components=1
chown -R tomcat: /opt/tomcat/

(4) Tomcat Admin Benutzerrolle definieren
nano /opt/tomcat/conf/tomcat-users.xml

....
<role rolename="manager-gui"/>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

(5) Tomcat für den remote Zugriff konfigurieren
nano /opt/tomcat/webapps/manager/META-INF/context.xml

remove :

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

remove:

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

(6) Eine Steuerdatei (Unit File) für systemd anlegen für Apache Tomcat
Ermitteln des JAVA-Pfad mit sudo alternatives –list | grep ^java und Verwendung in der Unit-Datei als JAVA_HOME Umgebungsvariable

nano /etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Server
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.2.0.8-4.el8_5.x86_64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat

ExecStart=/opt/tomcat/bin/catalina.sh start
ExecStop=/opt/tomcat/bin/catalina.sh stop

RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

systemctl daemon-reload

systemctl start tomcat

systemctl enable tomcat

systemctl status tomcat

● tomcat.service - Apache Tomcat Server 10
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-02-07 17:16:13 CET; 36s ago
 Main PID: 49244 (java)
    Tasks: 30 (limit: 4770)
   Memory: 105.7M
   CGroup: /system.slice/tomcat.service
           └─49244 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org>

Feb 07 17:16:13 Rocky8 systemd[1]: Starting Apache Tomcat Server 10...
Feb 07 17:16:13 Rocky8 systemd[1]: Started Apache Tomcat Server 10.

(7) Firewall freischalten für den Port 8080
Standardmäßig wird die öffentliche Zone (public) verwendet. Andernfalls mit dem Parameter –zone=internal wie hier die interne Zone spezifizieren.

sudo firewall-cmd --add-port=8080/tcp --permanent
success
sudo firewall-cmd --reload
Success
sudo firewall-cmd --info-zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 8080/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
Startseite des Tomcat, Aufruf mit http:/<servername>:8080

Jetzt ist unser Tomcat über explizite Angabe des Ports 8080 erreichbar. Das kann man so machen. muss man aber nicht. Schöner ist es, die Kommunikation auf Port 80 umzulegen.

sudo iptables -t nat -A PREROUTING -p tcp --dport  80 -j REDIRECT --to-ports 8080

sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080

sudo iptables-save

Anzeige der definierten iptables Einträge:

sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 8080

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 8080

Abspeichern/Backup der iptables-Konfiguration:

sudo iptables-save
sudo iptables-save -c > /etc/iptables.rules

für ein späteres Restore mit folgendem Aufruf:

sudo iptables-restore < /etc/iptables.rules

Weiter oben haben wir in der firewall den Port 8080 freigegeben. Das ist nun nicht mehr notwendig; entfernen des Ports aus der Firewall:

sudo firewall-cmd --remove-port=8080/tcp --permanent
success
sudo firewall-cmd --reload
success

Spickzettel: Telegraf installieren

$ sudo apt-get install apt-transport-https
...
$ wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
 OK
$ source /etc/lsb-release

$ echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
 deb https://repos.influxdata.com/ubuntu focal stable

$ sudo apt-get update && sudo apt-get install telegraf
...
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
   telegraf
0 upgraded, 1 newly installed, 0 to remove and 13 not upgraded.
...
Preparing to unpack …/telegraf_1.19.1-1_arm64.deb …
Unpacking telegraf (1.19.1-1) …
Setting up telegraf (1.19.1-1) …
Created symlink /etc/systemd/system/multi-user.target.wants/telegraf.service → /lib/systemd/system/telegraf.service.
  • Dienst starten
$ systemctl start telegraf
  • Statusabfrage
$ systemctl status telegraf
  telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB
      Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled)
      Active: active (running) since Tue 2021-07-20 22:23:30 CEST; 32min ago
        Docs: https://github.com/influxdata/telegraf
    Main PID: 1686 (telegraf)
       Tasks: 10 (limit: 973)
      CGroup: /system.slice/telegraf.service
              └─1686 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d
  • Telegraf konfigurieren:
    Konfigurationsdatei: /etc/telegraf/telegraf.conf (zunächst als default durch Installation angelegt)
    Anzeige der Konfiguration und schreiben in eine Kopie im aktuellen Verzeichnis
$ telegraf config | tee telegraf.conf

Spickzettel: InfluxDB installieren

Stichpunkte zur Installation InfluxDB V2.0.7 auf Raspberry Pi mit Ubuntu (arm64)

  • Download des entsprechenden Paketes in das aktuelle Verzeichnis
$ wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.7-arm64.deb
 ...
 HTTP request sent, awaiting response… 200 OK
 Length: 112830606 (108M) [application/octet-stream]
 Saving to: ‘influxdb2-2.0.7-arm64.deb’
 ...
$ ls -l
  -rw-rw-r-- 1 ubuntu ubuntu 112830606 Jun  4 21:40 influxdb2-2.0.7-arm64.deb
  • Installieren des Package und Erzeugen der Symlinks für systemd
$ sudo dpkg -i influxdb2-2.0.7-arm64.deb
 Selecting previously unselected package influxdb2.
 (Reading database … 118966 files and directories currently installed.)
 Preparing to unpack influxdb2-2.0.7-arm64.deb …
 Unpacking influxdb2 (2.0.7) …
 Setting up influxdb2 (2.0.7) …
 Created symlink /etc/systemd/system/influxd.service → /lib/systemd/system/influxdb.service.
 Created symlink /etc/systemd/system/multi-user.target.wants/influxdb.service → /lib/systemd/system/influxdb.service.
  • Prüfen ob der influxdb Dienst läuft (ggf. nach reboot)
$ systemctl status influxdb
 ● influxdb.service - InfluxDB is an open-source, distributed, time series database
      Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
      Active: active (running) since Sun 2021-07-18 12:54:56 CEST; 3min ago
        Docs: https://docs.influxdata.com/influxdb/
    Main PID: 1663 (influxd)
       Tasks: 9 (limit: 973)
      CGroup: /system.slice/influxdb.service
              └─1663 /usr/bin/influxd 
  • Konfigurationsdatei für den Dienst ist /lib/systemd/system/influxdb.service:
[Unit]
 Description=InfluxDB is an open-source, distributed, time series database
 Documentation=https://docs.influxdata.com/influxdb/
 After=network-online.target
 [Service]
 User=influxdb
 Group=influxdb
 LimitNOFILE=65536
 EnvironmentFile=-/etc/default/influxdb2
 ExecStart=/usr/bin/influxd
 KillMode=control-group
 Restart=on-failure
 [Install]
 WantedBy=multi-user.target
 Alias=influxd.service
  • Datenverzeichnis für die Zeitreihendaten (time series data) /var/lib/influxdb/engine/
  • Datei für die Schlüsselwerte ( key-value-data ) – /var/lib/influxdb/influxd.bolt
  • Ausführliche Installation mit optionale Varianten https://docs.influxdata.com/influxdb/v2.0/install/
  • Test CLI: Abfrage der Version über die Kommandozeile:
$ influx version
 Influx CLI 2.0.7 (git: 2a45f0c037) build_date: 2021-06-04T19:17:40Z
  • Test UI: Start des User-Interface (UI) mit http://localhost:8086

CentOS auf Raspberry Pi 3 B

Kurzanleitung / Merkzettel

  • Download von http://isoredirect.centos.org/altarch/7/isos/armhfp/ ..
  • Auswahl Mirror z.B. http://ftp.rz.uni-frankfurt.de/pub/mirrors/centos-altarch/7.9.2009/isos/armhfp/
  • ImageDatei: CentOS-Userland-7-armv7hl-RaspberryPI-GNOME-2009-sda.raw
  • SD-Karte mit Image beschreiben z.B mit Win32DiskImager, einstecken und booten
  • Via SSH remote zugreifen
    user: root
    password: centos
  • root-Passwort ändern mit passwd

Gnome – Desktop Session sperrt zu schnell, wie einstellen?

aktuellen Timeout-Wert auslesen:
$ gsettings get org.gnome.desktop.session idle-delay
90

Timeout für den Sperrbilschirm setzen (hier eine Stunde):
$ gsettings set org.gnome.desktop.session idle-delay 3600

Du möchtest, dass der Bildschirm niemals sperrt, so setze idle-delay=0
$ gsettings set org.gnome.desktop.session idle-delay 0

RaspberryPI: Temperatur und Taktüberwachung

Immer wieder wird behauptet, Raspberry-Modele kämen ohne Kühlung aus. Das ist aber nur die halbe Wahrheit. Schon bei Aufgaben wie Videowiedergabe oder umfangreichen Berechnungen steigt die IC/MC-Temperatur deutlich über 60°C an. Folge: Der Raspberry wird deutlich langsamer.

Um dem auf die Spur zu kommen, sollten Sie sich die aktuelle Taktfrequenz und die Temperatur permanent anzeigen lassen. Das geht ganz einfach: Öffnen Sie mit der Tastenkombination Strg,Alt +T ein Terminal-Fenster. In diesem Fenster geben Sie den folgenden Befehl ein (alles in eine Zeile!):

while true; do vcgencmd measure_clock arm; vcgencmd
measure_temp; sleep 10; done &

Die Messwerte werden im angegebenen Zeitintervall, hier 10 Sekunden, in einer Endlosschleife angezeigt.

Vi Editor: Anzeigen und Bearbeiten im hex-Mode mit xxd

Wenn man im vi-Editor arbeitet und die Datei Sonderzeichen enthält, ist die Arbeit im hexadezimal Modus oft sinnvoll und manchmal zwingend.

Es gibt die Möglichkeit in diesen Modus umzuschalten:

:%!xxd

Nun kann man im hex Modus editieren (und nur dort!).

00000000: 5765 6e6e 206d 616e 2069 6d20 7669 2d45 Wenn man im vi-E
00000010: 6469 746f 7220 6172 6265 6974 6574 2075 ditor arbeitet u
00000020: 6e64 2064 6965 2044 6174 6569 2053 6f6e nd die Datei Son
00000030: 6465 727a 6569 6368 656e 2065 6e74 68c3 derzeichen enth.
00000040: a46c 742c 2069 7374 2064 6965 2041 7262 .lt, ist die Arb
00000050: 6569 7420 696d 2068 6578 6164 657a 696d eit im hexadezim
00000060: 616c 204d 6f64 7573 206f 6674 2073 696e al Modus oft sin
00000070: 6e76 6f6c 6c20 756e 6420 6d61 6e63 686d nvoll und manchm
00000080: 616c 207a 7769 6e67 656e 642e 0a        al zwingend..


Allerdings sollte man vor dem Abspeichern, den Buffer wieder zurück (revers) umwandeln. Somit nach der Bearbeitung im hex-Bereich, diesen mit

:%!xxd -r 

verlassen und in den normalen Modus zurückkehren und ggf. speichern.

Was passiert hier? Der vi-Puffer wird durch das externe Kommando xxd gestreamt. Mit dem Parameter -r geht es wieder revers und danach abspeichern.