Merge pull request #14 from ninjix/master

Added support for MySQL hashed user password.
This commit is contained in:
Seth House 2014-05-15 15:49:23 -06:00
commit 608e090370
5 changed files with 27 additions and 14 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 to **quote the passwords** in the pillar so YAML doesn't throw an exception.

View file

@ -1,11 +1,14 @@
{% from "mysql/map.jinja" import mysql with context %}
include:
- mysql.python
{% for database in salt['pillar.get']('mysql:database', []) %}
{{ database }}:
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

@ -50,11 +50,6 @@ mysqld:
- watch:
- pkg: mysqld
mysql-python:
pkg:
- installed
- name: {{ mysql.python }}
{% if grains['os'] in ['Ubuntu', 'Debian', 'Gentoo', 'CentOS'] %}
my.cnf:
file.managed:

View file

@ -1,13 +1,20 @@
{% from "mysql/map.jinja" import mysql with context %}
include:
- mysql.python
{% for user in salt['pillar.get']('mysql:user', []) %}
{{ 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 +26,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