mirror of
https://github.com/saltstack-formulas/mysql-formula.git
synced 2025-04-16 01:30:25 +00:00
Merge pull request #10 from ninjix/master
Assign MySQL Root Password during Debian/Ubuntu installation
This commit is contained in:
commit
04e5b130e8
6 changed files with 97 additions and 4 deletions
12
README.rst
12
README.rst
|
@ -24,3 +24,15 @@ Install the MySQL client package.
|
|||
----------------
|
||||
|
||||
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.
|
||||
|
||||
``mysql.user``
|
||||
----------------
|
||||
|
||||
Create and manage MySQL database users with definable GRANT privileges.
|
12
mysql/database.sls
Normal file
12
mysql/database.sls
Normal file
|
@ -0,0 +1,12 @@
|
|||
{% from "mysql/map.jinja" import mysql with context %}
|
||||
|
||||
{% 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_charset: utf8
|
||||
{% endfor %}
|
||||
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
mysql-server-5.5 mysql-server/root_password_again password somepass
|
||||
mysql-server-5.5 mysql-server/root_password password somepass
|
||||
mysql-server-5.5 mysql-server/start_on_boot boolean true
|
|
@ -1,11 +1,23 @@
|
|||
{% from "mysql/map.jinja" import mysql with context %}
|
||||
|
||||
|
||||
{% if grains['os'] in ['Ubuntu', 'Debian'] %}
|
||||
mysql-debconf:
|
||||
debconf.set:
|
||||
- name: mysql-server
|
||||
- data:
|
||||
'mysql-server/root_password': {'type': 'password', 'value': '{{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}'}
|
||||
'mysql-server/root_password_again': {'type': 'password', 'value': '{{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}'}
|
||||
'mysql-server/start_on_boot': {'type': 'boolean', 'value': 'true'}
|
||||
{% endif %}
|
||||
|
||||
mysqld:
|
||||
pkg:
|
||||
- installed
|
||||
- name: {{ mysql.server }}
|
||||
{% if grains['os'] in ['Ubuntu', 'Debian'] %}
|
||||
- debconf: salt://mysql/files/mysql.deb.set
|
||||
- require:
|
||||
- debconf: mysql-debconf
|
||||
{% endif %}
|
||||
service:
|
||||
- running
|
||||
|
@ -14,6 +26,11 @@ mysqld:
|
|||
- watch:
|
||||
- pkg: mysqld
|
||||
|
||||
mysql-python:
|
||||
pkg:
|
||||
- installed
|
||||
- name: {{ mysql.python }}
|
||||
|
||||
{% if grains['os'] in ['Ubuntu', 'Debian', 'Gentoo'] %}
|
||||
my.cnf:
|
||||
file.managed:
|
||||
|
|
30
mysql/user.sls
Normal file
30
mysql/user.sls
Normal file
|
@ -0,0 +1,30 @@
|
|||
{% from "mysql/map.jinja" import mysql with context %}
|
||||
|
||||
{% for user in salt['pillar.get']('mysql:user', []) %}
|
||||
{{ user['name'] }}:
|
||||
mysql_user.present:
|
||||
- host: {{ user['host'] }}
|
||||
- password: {{ user['password'] }}
|
||||
- connection_host: localhost
|
||||
- connection_user: root
|
||||
- connection_pass: {{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}
|
||||
- connection_charset: utf8
|
||||
|
||||
{% for db in user['databases'] %}
|
||||
{{ user['name'] }}_{{ db['database'] }}:
|
||||
mysql_grants.present:
|
||||
- grant: {{db['grants']|join(",")}}
|
||||
- database: {{ db['database'] }}.*
|
||||
- user: {{ user['name'] }}
|
||||
- host: {{ user['host'] }}
|
||||
- connection_host: localhost
|
||||
- connection_user: root
|
||||
- connection_pass: {{ salt['pillar.get']('mysql:server:root_password', 'somepass') }}
|
||||
- connection_charset: utf8
|
||||
- require:
|
||||
- mysql_user: {{ user['name'] }}
|
||||
{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
|
|
@ -1,9 +1,34 @@
|
|||
mysql:
|
||||
server:
|
||||
root_password: somepass
|
||||
bind-address: 127.0.0.1
|
||||
port: 3306
|
||||
user: mysql
|
||||
|
||||
# Manage databases
|
||||
database:
|
||||
- foo
|
||||
- baz
|
||||
|
||||
# Manage users
|
||||
user:
|
||||
- name: frank
|
||||
password: somepass
|
||||
host: localhost
|
||||
databases:
|
||||
- database: foo
|
||||
grants: ['select', 'insert', 'update']
|
||||
- database: bar
|
||||
grants: ['all privileges']
|
||||
- name: bob
|
||||
password: someotherpass
|
||||
host: localhost
|
||||
databases:
|
||||
- database: foo
|
||||
grants: ['all privileges']
|
||||
- database: bar
|
||||
grants: ['select', 'insert', 'update', 'delete']
|
||||
|
||||
# Override any names defined in map.jinja
|
||||
lookup:
|
||||
server: mysql-server
|
||||
|
|
Loading…
Add table
Reference in a new issue