Added support for MySQL hashed user password. Also added some improved YAML quoting around passwords.

This commit is contained in:
Clayton Kramer 2014-05-15 16:40:02 -04:00
parent c5bbc00620
commit d81c6341e9
4 changed files with 21 additions and 9 deletions

View file

@ -28,7 +28,7 @@ Install the MySQL server package and start the service.
Debian OS family supports setting MySQL root password during install via debconf.
``mysql.database``
----------------
------------------
Create and manage MySQL databases.
@ -36,3 +36,11 @@ Create and manage MySQL databases.
----------------
Create and manage MySQL database users with definable GRANT privileges.
The state accepts MySQL hashed passwords or clear text. Hashed password have priority.
.. note::
See the `salt.states.mysql_user <http://docs.saltstack.com/en/latest/ref/states/all/salt.states.mysql_user.html#module-salt.states.mysql_user>`_ docs for additional information on configuring hashed passwords.
Make sure the **quote the passwords** in the pillar so YAML doesn't throw an exception.

View file

@ -5,7 +5,7 @@
mysql_database.present:
- host: localhost
- connection_user: root
- connection_pass: {{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}
- connection_pass: '{{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}'
- connection_charset: utf8
{% endfor %}

View file

@ -4,10 +4,14 @@
{{ user['name'] }}:
mysql_user.present:
- host: {{ user['host'] }}
- password: {{ user['password'] }}
{%- if user['password_hash'] is defined %}
- password_hash: '{{ user['password_hash'] }}'
{% else %}
- password: '{{ user['password'] }}'
{% endif %}
- connection_host: localhost
- connection_user: root
- connection_pass: {{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}
- connection_pass: '{{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}'
- connection_charset: utf8
{% for db in user['databases'] %}
@ -19,7 +23,7 @@
- host: {{ user['host'] }}
- connection_host: localhost
- connection_user: root
- connection_pass: {{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}
- connection_pass: '{{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}'
- connection_charset: utf8
- require:
- mysql_user: {{ user['name'] }}

View file

@ -1,6 +1,6 @@
mysql:
server:
root_password: somepass
root_password: 'somepass'
bind-address: 127.0.0.1
port: 3306
user: mysql
@ -13,7 +13,7 @@ mysql:
# Manage users
user:
- name: frank
password: somepass
password: 'somepass'
host: localhost
databases:
- database: foo
@ -21,7 +21,7 @@ mysql:
- database: bar
grants: ['all privileges']
- name: bob
password: someotherpass
password_hash: '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4'
host: localhost
databases:
- database: foo