Gibt es eine Möglichkeit, MySQL-Administrationsberechtigungen mit dem Modul Ansible mysql_user zu erteilen (oder mit einem anderen Modul)? Ich möchte die Berechtigungen SUPER
, RELOAD
und SHOW DATABASES
für den Benutzer zusammen mit einigen anderen datenbankspezifischen Zugriffsrechten festlegen.
Das folgende basic Setup funktioniert gut für mich:
%Vor%... ergibt:
%Vor%Das folgende Setup sagt immer "geändert" und die Privilegien sind nicht das, was man erwarten würde:
%Vor%(wiederholt) run:
%Vor%ergibt:
%Vor%Kann jemand:
SUPER
, RELOAD
und SHOW DATABASE
admin. Privilegien? Haben Sie doch die elegante Lösung gefunden! Zunächst sollten die Privilegien irgendwo als Liste definiert werden:
%Vor% Dann muss das mysql_user
-Plugin die Berechtigungen nicht anhängen , sondern einfach die in der Dokumentation im folgenden Format: mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanotherdb.*:ALL
.
Der einzige Trick ist, wie man eine Liste in die Zeichenfolge konvertiert:
%Vor%Der wiederholbare Lauf der Aufgabe sagt nicht mehr geändert :
%Vor%Haben Sie herausgefunden, dass die Reihenfolge der Privilegien, die ich den genannten Admin gewähren kann, vergeben wird. Privilegien:
%Vor%Berechtigungen sind wie erwartet festgelegt:
%Vor%obwohl die Aufgabe immer noch nicht idempotent ist. Jeder Lauf gibt mir:
%Vor%