Tabellen gemäß Doku per Copy-and-paste anlegen und anschließend den Datentyp JSON verwenden.
mysql > ALTER TABLE salt_returns MODIFY `return` json;
mysql > ALTER TABLE salt_returns MODIFY `full_ret` json;
mysql > ALTER TABLE jids MODIFY `load` json;
Oder die folgenden Zeilen per Copy & Paste übernehmen, um die Tabellen anzulegen.
USE`salt`;---- Table structure for table `jids`--DROPTABLEIFEXISTS`jids`;CREATETABLE `jids` (`jid`varchar(255) NOT NULL,`load`jsonNOT NULL,UNIQUEKEY`jid` (`jid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATEINDEXjidON jids(jid) USING BTREE;---- Table structure for table `salt_returns`--DROPTABLEIFEXISTS`salt_returns`;CREATETABLE `salt_returns` (`fun`varchar(50) NOT NULL,`jid`varchar(255) NOT NULL,`return`jsonNOT NULL,`id`varchar(255) NOT NULL,`success`varchar(10) NOT NULL,`full_ret`jsonNOT NULL,`alter_time`TIMESTAMPDEFAULT CURRENT_TIMESTAMP,KEY`id` (`id`),KEY`jid` (`jid`),KEY`fun` (`fun`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;---- Table structure for table `salt_events`--DROPTABLEIFEXISTS`salt_events`;CREATETABLE `salt_events` (`id`BIGINTNOT NULL AUTO_INCREMENT,`tag`varchar(255) NOT NULL,`data` mediumtext NOT NULL,`alter_time`TIMESTAMPDEFAULT CURRENT_TIMESTAMP,`master_id`varchar(255) NOT NULL,PRIMARY KEY (`id`),KEY`tag` (`tag`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
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
/etc/salt/master.d/jobcache.conf
master_job_cache: mysql
Den Salt-Master neu starten und dann mal ausprobieren
salt '*' status.loadavg
salt '*' status.diskusage
select id,`return`->'$."/".available'from salt_returns where fun ='status.diskusage';select id,`return`->'$."5-min"'as loadAvg5, alter_timefrom salt_returns where fun ='status.loadavg';select id,`full_ret`->'$.fun_args'asstate,success,alter_time from salt_returns where fun="state.apply";select id,`return`->'$."/".available'as available from salt_returns where fun ='status.diskusage'having available>100;
Auslesen eines Job-Resultats, der z. B. mit der state.apply <STATE> --async ausgelöst wurde.
select id, success, alter_time asdate, fun,`full_ret`->'$."fun_args"'as fun_args from salt_returns where jid="<JOB-ID>";