Skip to content
Snippets Groups Projects
Commit 87d5c0a3 authored by jurgenhaas's avatar jurgenhaas
Browse files

ansible-roles/drupal#1 Simplify mysql host and port definition and also create extra dbs and users

parent 4dcb696e
No related branches found
No related tags found
No related merge requests found
......@@ -2,36 +2,61 @@
# file: roles/drupal/tasks/mysql.yml
- block:
- set_fact: domain='{{ item.1 }}'
- set_fact: port='3306'
- set_fact: port='{{ hostvars[item.db.host|default(inventory_hostname)]["ssh_tunnel_ports"][0]["local"] }}'
when: hostvars[domain.db.host|default(inventory_hostname)]["ssh_tunnel_ports"] is defined
- set_fact: db='{{ item.1.db }}'
- set_fact: extra={{ db.extra|default([]) }}
tags: always
- name: "Ensure Database"
mysql_db:
name='{{ domain.db.name }}'
name='{{ db.name }}'
login_user='root'
login_password='{{ mysql_root_password|default("root") }}'
login_host='127.0.0.1'
login_port='{{ port }}'
login_port='{{ db.port|default('3306') }}'
state='present'
- name: "Ensure extra Databases"
mysql_db:
name='{{ item.name }}'
login_user='root'
login_password='{{ mysql_root_password|default("root") }}'
login_host='127.0.0.1'
login_port='{{ item.port|default('3306') }}'
state='present'
with_items: '{{ extra }}'
- name: "Create MySQL User"
mysql_user:
user='{{ domain.db.username }}'
password='{{ domain.db.password|default(mysql_root_password|default("root")) }}'
user='{{ db.username|default("root") }}'
password='{{ db.password|default(mysql_root_password|default("root")) }}'
host='{{ item }}'
check_implicit_admin=yes
priv='{{ domain.db.name }}.*:ALL'
priv='{{ db.name }}.*:ALL'
login_user='root'
login_password='{{ mysql_root_password|default("root") }}'
login_host='127.0.0.1'
login_port='{{ port }}'
login_port='{{ db.port|default('3306') }}'
with_items:
- 'localhost'
- '127.0.0.1'
- '::1'
- '{{ inventory_hostname }}'
when: domain.db.username is defined and domain.db.username != 'root'
when: db.username is defined and db.username != 'root'
notify: "MySQL | Restart MySQL"
- name: "Create MySQL User for extra Databases"
mysql_user:
user='{{ item.0.username|default("root") }}'
password='{{ item.0.password|default(mysql_root_password|default("root")) }}'
host='{{ item.1 }}'
check_implicit_admin=yes
priv='{{ item.0.name }}.*:ALL'
login_user='root'
login_password='{{ mysql_root_password|default("root") }}'
login_host='127.0.0.1'
login_port='{{ item.0.port|default('3306') }}'
with_nested:
- '{{ extra }}'
- ['localhost', '127.0.0.1', '::1', '{{ inventory_hostname }}']
when: item.0.username is defined and item.0.username != 'root'
notify: "MySQL | Restart MySQL"
......@@ -7,13 +7,8 @@ $databases = array (
'database' => '{{ item.db.name }}',
'username' => '{{ item.db.username|default("root") }}',
'password' => '{{ item.db.password|default(mysql_root_password|default("root")) }}',
{% if hostvars[item.db.host|default(inventory_hostname)]["ssh_tunnel_ports"] is defined %}
'host' => '127.0.0.1',
'port' => '{{ hostvars[item.db.host|default(inventory_hostname)]["ssh_tunnel_ports"][0]["local"] }}',
{% else %}
'host' => '{{ item.db.host|default("127.0.0.1") }}',
'port' => '{{ item.db.port|default("3306") }}',
{% endif %}
),
),
{% for db in item.db.extra|default([]) %}
......@@ -23,13 +18,8 @@ $databases = array (
'database' => '{{ db.name }}',
'username' => '{{ db.username|default(item.db.username|default("root")) }}',
'password' => '{{ db.password|default(item.db.password|default(mysql_root_password|default("root"))) }}',
{% if hostvars[item.db.host|default(inventory_hostname)]["ssh_tunnel_ports"] is defined %}
'host' => '127.0.0.1',
'port' => '{{ hostvars[item.db.host|default(inventory_hostname)]["ssh_tunnel_ports"][0]["local"] }}',
{% else %}
'host' => '{{ item.db.host|default("127.0.0.1") }}',
'port' => '{{ item.db.port|default("3306") }}',
{% endif %}
'port' => '{{ db.port|default("3306") }}',
),
),
{% endfor %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment