Returner & Job-Cache
Seit der Einführung der onedir-Instllation mit Salt 3006 sind Funktionen, welche zusätzliche Python Module benötigen sehr instabil. Die Installation zusätzliche Module gelingt oft nicht. Und bei einem Update von Python Modulen oder vom Salt-Master ist man immer dem Risiko ausgesetzt, dass Funktionen plötzlich nicht mehr funktionieren, weil die Abhängigkeiten der Module nicht aufgelöst werden können.
Die Anbindung des Salt-Masters an eine MySQL Datenbank ist so ein Wackelkandidat.
Die Installation des MySQL Python Modules erfordert das Downgrade der Pip Version. Niemand garantiert, dass zukünftige Versionen des Salt-Master mit einer älteren Version von Pip oder dem dann aktuellen MySQL Modul kompatibel sind.
All Salt Funktionen, welche eine Installation eines Moduls mit salt-pip erfordern, sollten Sie mit äußerster Versicht verwenden.
MySQL Job-Cache auf dem Master installieren
https://docs.saltproject.io/en/latest/topics/jobs/external_cache.html
MariaDB oder MySQL Server auf dem Master installieren
apt install mysql-server
/opt/saltstack/salt/bin/python3 -m pip install pip==24.0
salt-pip install PyMySQLAb MySQL 5.7 oder MariaDB 10.2 wird der Datentyp JSON unterstützt, welcher für Salt sehr nützlich ist.
Benutzer und Datenbank anlegen
cat << EOF | mysql
CREATE USER IF NOT EXISTS 'salt'@'localhost' IDENTIFIED WITH mysql_native_password BY 'salt';
GRANT ALL ON salt.* TO 'salt'@'localhost';
CREATE DATABASE IF NOT EXISTS salt DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
EOFTabellen gemäß Doku per Copy-and-paste anlegen und anschließend den Datentyp JSON verwenden.
Oder die folgenden Zeilen per Copy & Paste übernehmen, um die Tabellen anzulegen.
Den MySQL-Job-Cache aktivieren
Datei /etc/salt/master.d/mysql.conf anlegen mit folgendem Inhalt
Datei /etc/salt/master.d/jobcache.conf anlegen mit folgendem Inhalt
Den Salt-Master neu starten und dann mal ausprobieren
Auslesen eines Job-Resultats, der z. B. mit der state.apply <STATE> --async ausgelöst wurde.
Last updated