2013-06-12 10 views
5

setzen Ich möchte ein starkes Passwort für mysql root Benutzer festlegen. Aber es gibt ein Ei-Henne-Problem. Ich habe einen leeren Server. Ich salze es. Das root-Passwort ist leer (standardmäßig nach der Installation).Wie Root-Passwort mit Salz-Status

Wenn ich

root: 
    mysql_user.present: 
    - name: root 
    - password: $ecur3h4x0r 
    - host: % 

Dann würde ich nicht in der Lage sein, alle anderen MySQL-Staaten zu nennen, weil sie das Passwort benötigen würde. Aber wenn ich das nächste Mal highstate, würde dieser Anruf nicht funktionieren, weil der Zustand versucht, sich mit leerem Passwort zu verbinden.

Antwort

4

Ja, wir werden eine 'default_user' und 'default_pass' Einstellung hinzufügen, damit Sie mit dieser Situation umgehen können. Es sollte in 0.17.0 sein

+0

Haben Sie Glück dabei? Wir sind bei 0.17.4 und ich sehe kein Zeichen in der Dokumentation oder eine oberflächliche Google-Suche. – thaddeusmt

+0

Ich habe diese Lösung noch nicht selbst getestet, aber es sieht so aus, als hätte diese Pullreq diese Funktionalität hinzugefügt: https://github.com/saltstack/salt/pull/9722 Siehe auch "connection_user" und "connection_pass" hier: http://docs.saltstack.com/ref/states/all/salt.states.mysql_user.html#module-salt.states.mysql_user –

2

Nur für den Fall jemand stolpert über diese Frage während der Verwaltung von mysql mit Salzstack.

So funktioniert es in der aktuellen Salzversion (Salz 2015.5.0 (Lithium)). Beachten Sie, dass der mysql_user.present-state intelligent genug ist, um es zunächst ohne ein Passwort auszuprobieren. In nachfolgenden Läufen verwendet der Status das root-Passwort, um eine Verbindung herzustellen und zu erkennen, dass das Passwort für root im richtigen Zustand ist.

root: 
    mysql_user.present: 
    - host: localhost 
    - password: s3cure_root_password 

another_user: 
    mysql_user.present: 
    - host: localhost 
    - password: anoth3r_user_password 
    - connection_user: root 
    - connection_pass: s3cure_root_password 
+0

Danke. Viel Zeit ist vergangen und wir haben sowohl mysql-formula als auch state.mysql. Es wäre großartig, wenn jemand mit angemessenem Wissen dies aktualisieren könnte, um zu bevorzugen (oder warum), um zu vermeiden, dass jeder beides durchmachen muss. – jma