phpMyAdmin „token mismatch“

Ich schreibe den Artikel nur, weil mich das Thema knapp 2 Wochen verfolgt hat und ich im Internet einfach keine Lösung finden konnte …

Zum Hintergrund: Im Zuge einer voll-Automatisierung mit Puppet bin ich dabei alle Server mit Puppet und Debian 11 neu aufzubauen.

Warum zum Teufel, bekommt man bei einer FRISCHEN Installation von phpmyadmin 5.1.3 (neueste zum Zeitpunkt des Artikels) und einer FRISCHEN Installation von MariaDB einen „Token mismatch“? Anmeldung klappt 1A aber benutzbar ist die Installation nicht …

Ich habe „tolle“ Tipps gefunden wie:

  • Festplatte voll
  • Cookies löschen (okay lass ich durchgehen)
  • session.save_path nach /tmp legen (Stand 2009!)
  • von Cookie-Auth auf http-Auth umzustellen – das hatte ich von Anfang an gemacht

Ihr werdet lachen – dass war es alles nicht! Dass Problem sitzt – zumindest bei mir – viel tiefer in der Infrastruktur! In meinem Fall war es der Apache-Reverse Proxy! SSL wird hier terminiert, dahinter wird http gesprochen…

Es gibt 2 Lösungsmöglichkeiten:

1.) Die Elegantere:
Im vHost hart mitgeben, dass https benutzt wird
RequestHeader set X-Forwarded-Proto „https“

2.) PmaAbsoluteUri in der config.inc.php von phpMyAdmin deklarieren
$cfg[‚PmaAbsoluteUri‘] = ‚https://www.ichalsroot.de:2000/phpmyadmin‘;

WiiU perfekt hacken

Einleitung

Im Zuge des Lockdowns hat sich mein Neffe (10) eine „neue“ WiiU zugelegt. Klar da musste ich meine alte Wii einmotten und auch auf die WiiU updaten.

Aber natürlich möchte ich meine alten – liebgewonnenen – Wii-Spiele ebenfalls weiter nutzen. Diese hatte ich schon vor Jahren digitalisiert und im wbfs-Format auf einer USB-Platte betrieben…

Daher war ein wenig Bastelarbeit notwendig. Eine perfekte Konstellation konnte ich zwar nicht finden aber eine brauchbare!

Rechtliche Hinweise

Ich schreibe hier explizit KEINE Anleitung für Raupkopierer!
Anfragen wie „wo bekomme ich Wii-Spiele zum downloaden“ werden nicht toleriert und umgehend gelöscht.

Die Anleitung bezieht sich auf die Virtualisierung seiner Spielesammlung und der optimalen Nutzung (die 90er haben angerufen, sie wollen ihre runden Speichermedien zurück)

Anleitungen

Es gibt etliche Anleitungen im Netz, diese hier fand ich persönlich Klasse: https://wiiu.hacks.guide/


Grundbegriffe

BegriffErklärung
vWiivirtueller Wii Modus, im Grunde die alte Wii-Ansicht aber virtualisiert
CFWCustom Firmware, Details siehe unten
brickenZu Hochdeutsch „Deine WiiU ist ein Briefbeschwerer“ weil sie nicht mehr startet.
NANDInterner Speicher der WiiU
WiiVCWii-Virtual-Console-Titel, oder anders gesagt: „Wii-Spiele werden als WiiU-Spiele erkannt“, zumindest erkennt die WiiU den Unterschied nicht. Werden im WiiU-Menu gelistet
HomebrewIch übersetze das schlicht mit „App“, also Anwendungen für die WiiU/vWii

Eigentlich ist Homebrew ist ein Paketmanager, ähnlich wie apt/yum/zypper, und die Anwendungen haben nur Homebrew vorangestellt 😉

CFW Übersicht

Es gibt eine ganze Reihe an CFW, hier hat man die freie Auswahl. Ich versuche die Vor- und Nachteile zusammenzuschreiben, verweise aber darauf das ich selbst eher Laie in dem Gebiet bin. Ich dokumentiere hier meine persönliche Erfahrung!

Eine sehr schöne Übersicht findet man hier:
https://wiiu.hacks.guide/#/cfw-choice

CFWBeschreibung
MochaFür mich die „Einsteiger“-CFW, da diese sehr unkompliziert, ohne große Vorkenntnisse und kostenfrei „getestet“ werden kann. Für den regelmäßigen Einsatz empfehle ich aber eher Haxchi.

Schritte (bei jedem WiiU-Neustart!):
1.) Webseite aufrufen über den Wii-Browser (WiiU hängt sich manchmal auf, HardReset notwenig)
2.) im Homebrew Channel Mocha auswählen

Pro:
– kostenlos
– keine Änderung an der WiiU durch die CFW
Contra:
– WiiU hängt sich beim starten gelegentlich auf
– bis die CFW geladen ist dauert es ~2min mit viel Klickerei
– Homebrew Channel Launcher startet nicht (zumindest bei mir, mit haxchi kein Problem)
haxchiMeine Empfehlung! Setzt aber ein original gekauftes Spiel aus dem eShop voraus (Siehe Liste auf Herstellerseite). Über eine Bug der Emulation dieses Spiels wird die CFW gestartet.

Pro:
– wenig Fehleranfällig
– kann direkt über einen eigenen Launcher aus dem WiiU-Menu gestartet werden
– Leicht zu entfernen (Spiel löschen)
Contra
– Muss bei jedem Laden der WiiU-Oberfläche erneut ausgeführt werden (gilt im vWii Modus und bei „emulierten“ Wii-Spielen )
– Das Spiel muss installiert bleiben (vorzugsweise auf dem internen Speicher der WiiU)
Coldboot Haxchi (CBHC)Lädt Haxchi automatisch, kein manueller Aufruf mehr notwenig. Etwas für Faule.

Fehleranfällig! Löscht man das für Haxchi benutzte Spiel ist die WiiU gebrickt!

Hier Details -> den großen roten Kasten beachten!
https://wiiu.hacks.guide/#/cfw-choice?id=cbhc
wuphaxNur für vWii!

Setzt – nach meinem Kenntnisstand – eine CFW für die WiiU voraus. Bei mir im Einsatz um SingIt-Spiele vom USB-Stick zu laden.

Nur notwendig wenn man USB-Erweiterungen im vWii-Modus benutzen möchte!
weiterees mag weitere geben, ich habe mich auf die gelisteten Konzentriert

Aufbau

Folgende Speichergeräte habe ich nun im Einsatz:

  • 64GB (micro) SD-Karte mit Adapter
    • Fat32
  • 1TB HDD, verschlüsselt von der WiiU selbst
    • Die HDD kann somit nicht mehr am PC ausgelesen werden!
    • Die HDD steht nicht im vWii-Modus zur Verfügung
    • Die HDD enthält sowohl WiiU, als auch Wii-Spiele
  • 32GB USB-Stick der SingItStar Spiele enthält
    • NTFS (muss wegen Dateigrößen > 3GB!)

Details zu der Hardware

Viel davon setze ich ein weil ich es noch rumliegen hatte …
Die Quelle ist KEINE Kaufempfehlung sondern eine Verlinkung auf das genaue Produkt – ihr könnt das auch gerne beim freundlichen Krämer von nebenan kaufen.

HardwareHerstellerQuelleKommentar
SD-CardSanDisk Ultra 64GB microSDXC Class 10AmazonHatte ich noch rumliegen, die Größe ist nur wegen den Installationsdateien relevant, im Betrieb reicht auch 1GB

Es kann natürlich auch eine normale SD
HDDebayIch habe eine alte 2.5 Zoll Notebookplatte in ein Billiggehäuse gepackt.

ACHTUNG! Die WiiU hat nur USB 2, da reicht der Strom nicht aus! ein Y-Kabel ist zusätzlich notwendig.

Ich konnte genau eines finden: DeLOCK 82769
——-
Alternativ kann auch eine USB-HDD mit eigener Stromversorgung benutzt werden, dann spart man sich das Y-Kabel.
USB-StickSanDiskAmazonSollte völlig egal sein was für einer benutzt wird. Wichtig nur dass er mit NTFS formiert wird, da FAT32 ein Dateigrößenlimit hat ~3GB

Ich VERMUTE dass die WiiU ab einer gewissen Größe Probleme bekommen könnte. 32Gb klappen, 64GB sollten ebenfalls kein Problem sein.
MikrofonLioncastAmazonWer auf die Idee kommt PS2-Mikrophone nutzen zu wollen – Nöö.
USB-HubConceptronicAmazonFür die Mikrophone, klappt – mit 2 Mikrophonen – auch auf USB2-Port. Zusätzlich den USB-Stick über den HUB anschließen klappt aber nicht.

Alternativ kann ein aktiver USB-Hub mit eigener Stromversorgung genutzt werden.

Die Struktur meiner SD-Karte:

├── apps
│   ├── d2x-cios-installer
│   ├── IOS236 Installer MOD v8 Special vWii Edition
│   ├── usbloader_gx
│   └── YAWMM_DE
├── haxchi
├── install
│   ├── LEGO Indiana Jones 2 [00050002524C3450]
│   ├── LEGO Star Wars [00050002524C4750]
│   ├── Wii Party [0005000253555050]
│   └── Wii Sports [0005000252535050]
├── wad
└── wiiu
  ├── games
  │ └── Mario Kart 64 [NALE01]
  └── apps
    ├── appstore
    ├── disc2app
    ├── ftpiiu_everywhere
    ├── haxchi
    ├── homebrew_launcher
    ├── loadiine_gx2
    ├── menu_sort
    ├── mocha
    ├── nanddumper
    ├── wuphax
    └── wup_installer_gx2

Ordnerstruktur

OrdnerBeschreibung
/appsEnthält Apps für den vWii-Modus
/haxchiStandart-Verzeichnis der CFW haxchi.
/installhier werden Spiele für wup_installer_gx2 abgelegt
/wadWAD-Dateien für den vWii-Modus, werden über YAWMM_DE installiert
/wiiu/games(optinal) Enthält n64-Spiele, können über loadiine_gx2 gestartet werden
/wiiu/appsEnthält Apps für den WiiU-Modus

WiiU-Apps

OrdnerApp-NameBeschreibung
appstoreHomebrew App StoreInstalliert neue Homebrews (Apps) aus dem Internet direkt auf die SD-Karte
disc2appdisc2appDumpt eine eingelegte Disk auf SD-Karte/ein FAT32 USB-Gerät
ftpiiu_everywhereftpiiu everywhereFTP mit Vollzugriff auf die WiiU
homebrew_launcherWii U Homebrew LauncherHomebrew Launcher, wer den nicht kennt sollte diese Anleitung schnell schließen und die Grundlagen durchlesen.

Tipp: Zusätzlich den Homebrew-Launcher-Kanal für das WiiU-Menu installieren. Darauf achten das es auch einen anderen Kanal für vWii gibt
loadiine_gx2Loadiine GX2(optional)
Darüber können N64 Spiele von der SD-Karte gestartet werden
mochaSiehe CFW Übersicht

Kann theoretisch gelöscht werden sobald Haxchi läuft, stört aber nicht
haxchiSiehe CFW Übersicht
wuphaxSiehe CFW Übersicht


Von der Idee her, werden WiiU & Wii-Spiele über die WiiU-Oberfläche gestartet. Dafür musste ich die Wii-Spiele vom wbfs-Format umwandeln.

Dafür habe ich TeconMoon’s WiiVC Injector Mod benutzt, das hat 1A geklappt. Vereinfacht ausgedrückt wandeln wir Wii-Spiele in WiiVC-Spiele um, welche dann mit wup_installer_gx2 installiert werden können. Die Wii-Spiele werden dann in einer vWii-Virtualisierung gestartet, den Unterschied zu WiiU-Spielen merkt man nicht.

Vorteil von diesem Vorgehen:

  • Alle Spiele unter einer Ansicht
  • Kein Wechsel in den vWii-Modus notwendig
  • Die Spiele werden zusammen mit den WiiU-Spielen auf der HDD installiert

Nachteile:

  • Keine Spiele-Manager wie WiiFlow oder usbloader_gx
  • USB-Mikrophone funktionieren nicht
    • Daher auch der USB-Stick, explizit für Sing-Spiele

vWii-Apps

Nur notwendig wenn man SingIt Spiele mit Mikrophon spielen möchte

OrdnerApp-NameBeschreibung
usbloader_gxUSB Loader GXEin Klasse Backup-Loader
IOS236 Installer MOD v8 Special vWii EditionIOS 236 Installer (vWii)Der IOS 236 Installer installiert ein gepatchtes IOS 36 in den Slot 236

Grundvoraussetzung für die Installation der d2x-cIOS.
d2x-cios-installerd2x-cIOS (vWii)Installiert Custom IOS
YAWMM_DEYet Another WAD Manager Mod Deutsche VersionWAD Installer um Forward Channel im WiiU-Modus zu installieren

cIOS (vWii)

Wer sich schonmal mit dem Hacken der alten Wii beschäftigt hat wird unweigerlich mit IOS bzw cIOS in Berührung gekommen sein. Ich habe das – für mich – immer mit mit Treibern übersetzt.

Ich habe mit für die Unterstützung von 2 USB-Mikrophonen im vWii-Modus die d2x-v10-beta53-alt-vWii gemäß der Anleitung von wiidatabase.de installiert

SELECT CIOS BASESELECT CIOS SLOT
56249
57250
58251
Quelle: wiidatabase.de

Ich habe auch andere Kombinationen ausprobiert, zb d2x-v10-beta52-vWii und WiiFlow etc … Startet die Spiele aber die USB-Mikrofone laufen nicht. Ich habe auch „Tipps“ in Foren gefunden Slot 250 in 58 Base und Slot 251 in 57 Base zu installieren, damit lief dann gar nichts mehr.

[Klappt nicht!] SingIt-Spiele von SD-Karte starten

Das wir die SingIT-Spiele von USB starten hat mehrer Nachteile:

  • wir brauchen einen extra-USB Stick
  • Die WiiU will ihn immer formatieren (man kann ihn „ghosten“, aber dann wird er am PC nicht mehr gefunden)
  • Man blockiert einen USB-Port, für 2 Mikrofone braucht man einen USB-Hub

Ich habe mich ca 6 Stunden durch Foren gekämpft, CIOs ausgetauscht und unterschiedliche Backuploader ausgetestet.

Fazit: Bezogen auf den Start von SD-Karte (ohne USB!)

BackuploaderVersionEigene Erfahrung
Configurable USB-Loader Modr78.11Spiele auf der SD-Karte werden gefunden.

Aber beim Starten des Spiels immer dieser Fehler:
„Aufsetzen der Fragmente -2 3
ID Unterschied: [GameID]“

Ich konnte keine Lösung finden 🙁
WiiFlow Light5.4.8Scheint Probleme mit d2x-v10-beta53-alt-vWii zu haben, mit d2x-v10-beta52-vWii konnte ich das Spiel problemlos starten, aber die USB-Mikrophone wurden nicht erkannt (beide USB-Ports). Laut wiidatabase braucht man aber die d2x-alt um beide USB-Ports benutzen zu können.

Ich habe einen Kommentar im Bezug auf die 64GB-Größe der SD gefunden, aber das Thema nicht verfolgt ….
USB Loader GX3.0 r1272Startet keine Wii-Spiele von SD. USB klappt dafür 1A auch mit d2x-v10-beta53-alt-vWii und 2 Mikrophone über USB-Hub

vWii SingSpiele und USB-Mikrophone

Meine Frau und ich haben einen Leidensweg mit unseren USB-Mikrophonen hinter uns.

  • Mikrophon wird nicht erkannt
  • Mikrophon wird erkannt aber kein Sound (temporäres Problem!)
  • Heftiger Delay (Verzögerung zwischen Bild+Ton vom Spiel selbst)
    • Trat nur bei We Sing auf
    • In den Einstellungen des Spiels gibt es eine Option dafür (letzter Punkt), bekanntes Problem, liegt am Fernseher

In Kombination mit USB Loader GX 3.0 r1272 und d2x-v10-beta53-alt-vWii klappten diese Einstellungen (Wir haben nicht alle Konstellationen getestet…)

Alle Spiele wurden auch mit 2 Mikrofonen über USB-Hub getestet.

SpielnamecIO 249cIO 250cIO 251
Disney Sing It *
We Sing *
Let’s Sing *

Tipp: Wir haben im USB Loader GX das Game cIO’s global auf 250 gestellt und dann für die Disney Sing It * das Game-cIO wieder auf 249. Der Default müsste cIO 249 sein.

LetsEncrypt-Wildcard SSL-Zertifikate mit Domain-Offensive

ACHTUNG NOCH IM AUFBAU

Noch als Azubi im Jahre 2010 hatte ich den Auftrag bekommen einen günstigen und guten Anbieter für Domains zu suchen. Ich bin bei Domain-Offensive gelandet, mittlerweile habe ich selbst mehrere Domains dort.

Da ich zig Sub-Domains im Einsatz habe (Stichwort „name-based virtual hosts“) bin ich irgendwann auf Wildcards Zertifikate gewechselt. Diese benutze ich sowohl für meine Webserver, als auch für meinen eMail-Server.

Domain-Offensive bietet mittlerweile selbst eine API für LetsEncrypt an.
Doku: https://www.do.de/wiki/LetsEncrypt_-_Entwickler

Ich habe hierfür simple Bash-Scripte erstellt, mit welchen man – über die API – Wildcard-Zertifikate anlegen und aktualisieren kann. Der Trick hierbei ist, dass temporäre _acme-challenge.* DNS-Einträge erstellt werden.

Certbot installieren

Ich möchte hier nicht im Detail auf die Installation von Certbot eingehen, nur der Tipp am Rande, das eine aktuelle Version von Certbot benötigt wird. Ganz alte Versionen unterstützen noch keine Wildcard Zertifikate

Zum Zeitpunkt des Artikels setze ich Certbot 1.8.0 aus dem sid-Repo ein.

DomainOffensive-API-Key

Zuerst erstellen wir einen API-Key, Details siehe API-Doku.
https://www.do.de/account/letsencrypt/

Der API-Key gilt pro Account, nicht pro Domain!

Anlegen der Ordner+Scripte

Hier kommt nun mein customizing…

## Ordnerstruktur anlegen
mkdir -p /opt/letsencrypt/{hooks,logs,scripts}

/opt/letsencrypt/scripts/new_domain.sh

#!/bin/bash
## Script für neue Domains

for domain in "$@"
do
        echo $DOMAINS
        [ -n "${DOMAINS}" ] && DOMAINS="${DOMAINS},"
        DOMAINS="${DOMAINS}${domain}"
done

[ -z ${DOMAINS} ] && { echo "No domain given"; exit 1; }

certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --manual-auth-hook "/opt/letsencrypt/hooks/authenticator.sh" --manual-cleanup-hook "/opt/letsencrypt/hooks/cleanup.sh" -d "${DOMAINS}"

/opt/letsencrypt/hooks/authenticator.sh

#!/bin/bash
## https://certbot.eff.org/docs/using.html

## Token from do.de
APITOKEN="<YourDOApiTokenHere>"

DOMAIN="_acme-challenge.$CERTBOT_DOMAIN"

echo "$(date +'%Y-%m-%d %T') curl-XPUT \"https://www.do.de/api/letsencrypt?token=${APITEKEN}&domain=${DOMAIN}&value=${CERTBOT_VALIDATION}"\" >> /opt/letsencrypt/logs/hook_authenticator.log

curl -XPUT "https://www.do.de/api/letsencrypt?token=${APITOKEN}&domain=${DOMAIN}&value=${CERTBOT_VALIDATION}" >> /opt/letsencrypt/logs/hook_authenticator.log 2>&1

/opt/letsencrypt/hooks/cleanup.sh

#!/bin/bash
## https://certbot.eff.org/docs/using.html

## Token from do.de
APITOKEN="<YourDOApiTokenHere>"

DOMAIN="_acme-challenge.${CERTBOT_DOMAIN}"

curl -XPUT "https://www.do.de/api/letsencrypt?token=${APITOKEN}&domain=${DOMAIN}&action=delete"

Proxmox/LXC Mount lokale Ordner in Unprivileged Container

Es gibt mehrere Gründe, warum man lokale Ordner in einen LXC Container mounten muss. Zb:

  • Im Backup ausschließen
  • zwischen LXC teilen

Ich habe keine offizielle oder inoffizielle Dokumentation gefunden welche meinen Vorgehensweise dokumentiert (Stand: 09/2019), daher unter Vorbehalt behandeln!

Umsetzung

Proxmox # pct stop 100

Proxmox # mkdir /opt/mountdir
Proxmox # pct set 100 -mp0 /opt/lxc/100/mountdir,mp=/opt/mountdir
Proxmox # pct start 100

LXC # ls -la /opt/mountdir
      drwxr-xr-x  9 nobody nogroup  4096 Sep 20 20:01 /opt/mountdir

Proxmox # chown -R 100000:100000 /opt/lxc/100/mountdir/

LXC # ls -la /opt/mountdir
      drwxr-xr-x  9 root root  4096 Sep 20 20:01 /opt/mountdir

Hinweise

  • Das Ganze funktioniert auch mit anderen UID/GID. Im Grunde 100000+UID/GID. Also UID 1001 wäre dann 101001.
  • Die UID/GID müssen nicht im Host-System vorhanden sein! LXC mappt die intern korrekt.
  • Ab diesem Moment kann man die Berechtigung auch innerhalb der VM korrekt setzen!

Relevante Host Konfiguration

Die folgenden Einstellungen im Proxmox-Linux dürften relevant sein, diese sollten aber von Proxmox bei der Installation vorgenommen worden sein!

cat /etc/subuid<br>root:100000:65536<br><br>cat /etc/subgid<br>root:100000:65536

Weiterführende Literatur

Die Lösungsansätze sind anders wie bei mir!
Aber als weiterführende Literatur hilfreich.

https://wiki.archlinux.org/index.php/Linux_Containers#Enable_support_to_run_unprivileged_containers_(optional)

https://pve.proxmox.com/wiki/Unprivileged_LXC_containers

[ansible] Mit dictonaries arbeiten

Wichtig: getestet mit Ansible 2.4.2.0

Wenn man in Ansible Variablen deklarieren möchte, kann es der Übersichtlichkeit halber interessant sein, diese in Dictionaries anzulegen. Beispielsweise wenn man mit mehreren Umgebungen arbeitet  – Test/vProd/Prod – und Fachanwendungen auf Server „taggen“ möchte. Sprich eine List wo steht auf welchen Server die einzelnen Fachanwendungen installiert sind.

Deklaration

Ort der „vars“-Datei

wir deklarieren eine neue Variablen-Datei
<ansible-root>/vars/main.yml
oder mit Rollen
<ansible-root>/roles/<role-name>/vars/main.yml

Alternativ:

## include <meinVarName> 2 host vars (host tagging)
- name: include <meinVarName> vars
  include_vars: "vars/<meinVarName>.yml"

Inhalt der Datei

anwendung_a:
&nbsp;- port: 8563
   hosts:
   - host_a
   - host_b
   - host_c

anwendung_b:
&nbsp;- port: 8565
   hosts:
   - host_a
   - host_c
   - host_d

Auf diese Weise kann man ein „Host-Tagging“ bewerkstelligen.
Sprich man deklariert, auf welchen Servern eine bestimmte Anwendung installiert ist, und führt hier entsprechende Task’s aus.

Anwendung

Einen Parameter abfragen

- shell: echo "{{ item.port }}" > /tmp/test
  with_items:
  - "{{ anwendung_a }}"

Ergebnis:

cat /tmp/test
8563

Parameter und Host abfragen

Jetzt wird es ein wenig komplizierter, wir wollen einen Parameter und einen bestimmten Server abfragen.
Achtung! Eignet sich nur wenn man einen bestimmten Server sucht! Nicht für eine Gruppe von Servern.

- shell: echo "{{ item.hosts | select("match", "dbserver01") | first }} {{ item.port }}" > /tmp/test 
  with_items: 
  - "{{ anwendung_a }}"

Tipp: Variablen werden ohne Klammern deklariert

- vars:
  - mysearchstring: dbserver0

- shell: echo "{{ item.hosts | select("match", mysearchstring.*) | first }} {{ item.port }}" > /tmp/test 
  with_items: 
  - "{{ anwendung_a }}"

Alle hosts ausgeben

- shell: echo "{{ item.1 }}" >> /tmp/test
  with_subelements:
  - "{{ anwendung_a }}"
  - hosts

Ergebnis:

cat /tmp/test
host_a 
host_b
host_c

 

Loop over dictonary

Um mit allen Werten zu arbeiten bietet sich folgende Vorgehensweise an:

- shell: echo "{{ item.1 }} {{ item.0.port }}" >> /tmp/test
  with_subelements:
  - "{{ anwendung_a }}"
  - hosts

Ergebnis:

cat /tmp/test
host_a 8563 
host_b 8563
host_c 8563

 

Task auf host „taggen“

Auf diese Weise kann man deklarieren, dass ein Task auf dem aktuellem Server nur ausgeführt wird, wenn er in einer entsprechenden Liste deklariert wurde.

Oder auf Klardeutsch:
Wenn host_a NICHT in den hosts von anwendung_a aufgelistet ist, würde der Task nicht auf diesem Host ausgeführt werden.

- include_tasks: install_webserver.yml
  with_subelements:
  - "{{ anwendung_a }}"
  - hosts
  when: 'inventory_hostname in item'

Zum nachlesen:

Hier wird das gut erklärt finde ich:
https://stackoverflow.com/questions/31566568/double-loop-ansible

[Ansible] Mehrere Parameter innerhalb einer Datei ändern

Ich habe im Internet ein wirklich schönes Beispiel für einen Ansible-Task gefunden um mehrere Parameter zu setzen.

- name: Configure kernel parameters
 lineinfile:
 dest: /etc/sysctl.conf
 regexp: "^{{ item.property }}="
 line: "{{ item.property }}={{ item.value }}"
 with_items:
 - { property: 'kernel.shmall', value: '2097152' }
 - { property: 'kernel.shmmax', value: '134217728' }
 - { property: 'fs.file-max', value: '65536' }

Quelle: https://stackoverflow.com/questions/24334115/ansible-lineinfile-for-several-lines

systemd-resolved und TLD

Unter einem frisch installiertem Ubuntu 17.04 musste ich feststellen, dass Top-Level-Domain (TLD) nicht nicht im DNS Such Suffix berücksichtigt wurden.

Beispiel:
server1  wurde nicht aufgelöst, obwohl .abc in den DNS Domain’s aufgelistet war.
server1.abc hingegen wurde erkannt

server2 (server2.test.abc) wurde hingegen korrekt aufgelöst.

Die Lösung:

cd /etc
unlink resolv.conf
ln -s /var/run/systemd/resolve/resolv.conf

../run/resolvconf/resolv.conf
auf
/var/run/systemd/resolve/resolv.conf

Die korrekte Konfiguration des Systemd-resolvers kann man hiermit prüfen:

systemd-resolve --status

Hierzu gibt es einen aktuellen Bug:
https://github.com/systemd/systemd/issues/6224

Apache Wartungsseite schalten

Die (perfekte) Wartungsseite zu schalten ist eine Kunst für sich. zB wenn man verhindern möchte, dass die URL umgeschrieben wird oder das der Browser die Wartungsseite cacht.

Hier ein Beispiel, wo per per Datei die Wartungsseite aktiviert/deaktiviert werden kann:

# Wartung
RewriteCond /var/www/maintenance.enable -f
RewriteCond %{REQUEST_URI} !^/(wartung)/
RewriteRule ^.*$ /wartung/index.html [R=503,L]
ErrorDocument 503 /wartung/index.html
Header Set Cache-Control „max-age=0, no-store“

Proxmox: LXC – Container Speicherplatz verkleinern

Wer schon einmal versucht hat, den Speicherplatz eines LXC-Containers unter Proxmox zu verändern, wird überrascht feststellen, dass man zwar Speicherplatz hinzufügen, jedoch nicht entfernen kann.
Beispiel: 50GB root-Partition soll auf 30GB verringert werden ..

Das klappt tatsächlich nur über ein löschen und neu anlegen des Containers!

Hier ein Einzeiler dafür:


pct stop 244 \
; vzdump 244 -storage local -compress lzo \
&& pct destroy 244 \
&& pct restore 244 $(ls -tr /var/lib/vz/dump/vzdump-*-244-*.tar.lzo | tail -n1) --rootfs local:8 \
&& pct start 244

mit „–rootfs local:8“ gibt man die neue Größe in GB an.

Process Management – TicketStateSet

Update:

Admin ->  Ticket Settings -> States
Hier sieht man ebenfalls die existierenden Staten. Und in der URL sieht man die ID …

Ich finde die Datenbank aber dennoch übersichtlicher …

Wer sich in OTRS mit Process Managment auseinandersetzt, stößt irgendwann auf den Punkt „Transition Action“ -> „TicketStateSet“.

Hiermit kann man Tickets mit Status beenden, eröffnen auf Pending setzen, …
Problematik hierbei -> man muss den genauen Namen / ID des Status kennen! Mit hat die offizielle Dokumentation von OTRS leider nicht weitergeholfen, hier war nur dokumentiert wie man den Wert ändert, aber nicht auf welchen Wert … (Stand Mai 2016).

Kurz und knapp, nach einiger Recherche habe ich herausgefunden, dass die Ticket-Staten in der Datenbank – Tabelle „ticket_state“ – abgelegt werden …

Weiterlesen »