You've already forked percona
Refactor user creation tasks to allow multiple hosts with a list
This commit is contained in:
@@ -3,19 +3,30 @@
|
|||||||
mysql_user:
|
mysql_user:
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
password: "{{ item.password }}"
|
password: "{{ item.password }}"
|
||||||
host: "{{ item.host | default('%') }}"
|
host: "{{ item.host }}"
|
||||||
priv: "{{ (item.priv | join('/')) if item.priv is iterable and item.priv is not string else (item.priv | default('*.*:USAGE')) }}"
|
priv: "{{ (item.priv | join('/')) if item.priv is iterable and item.priv is not string else (item.priv | default('*.*:USAGE')) }}"
|
||||||
plugin: "mysql_native_password"
|
plugin: "mysql_native_password"
|
||||||
state: present
|
state: present
|
||||||
login_user: root
|
login_user: root
|
||||||
login_password: "{{ percona_root_password }}"
|
login_password: "{{ percona_root_password }}"
|
||||||
loop: "{{ percona_users }}"
|
vars:
|
||||||
when: item.auth_plugin is defined and item.auth_plugin == 'mysql_native_password'
|
user_host_pairs: |
|
||||||
|
{%- set pairs = [] -%}
|
||||||
|
{%- for user in percona_users -%}
|
||||||
|
{%- if user.auth_plugin is defined and user.auth_plugin == 'mysql_native_password' -%}
|
||||||
|
{%- set hosts = [user.host | default('%')] if user.host is undefined or user.host is string else user.host -%}
|
||||||
|
{%- for host in hosts -%}
|
||||||
|
{%- set _ = pairs.append(user | combine({'host': host})) -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{{ pairs }}
|
||||||
|
loop: "{{ user_host_pairs }}"
|
||||||
|
|
||||||
- name: percona | create users
|
- name: percona | create users
|
||||||
mysql_user:
|
mysql_user:
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
host: "{{ item.host | default('%') }}"
|
host: "{{ item.host }}"
|
||||||
priv: "{{ (item.priv | join('/')) if item.priv is iterable and item.priv is not string else (item.priv | default('*.*:USAGE')) }}"
|
priv: "{{ (item.priv | join('/')) if item.priv is iterable and item.priv is not string else (item.priv | default('*.*:USAGE')) }}"
|
||||||
plugin: caching_sha2_password
|
plugin: caching_sha2_password
|
||||||
plugin_auth_string: "{{ item.password }}"
|
plugin_auth_string: "{{ item.password }}"
|
||||||
@@ -23,5 +34,16 @@
|
|||||||
state: present
|
state: present
|
||||||
login_user: root
|
login_user: root
|
||||||
login_password: "{{ percona_root_password }}"
|
login_password: "{{ percona_root_password }}"
|
||||||
loop: "{{ percona_users }}"
|
vars:
|
||||||
when: item.auth_plugin is not defined or item.auth_plugin == 'caching_sha2_password'
|
user_host_pairs: |
|
||||||
|
{%- set pairs = [] -%}
|
||||||
|
{%- for user in percona_users -%}
|
||||||
|
{%- if user.auth_plugin is not defined or user.auth_plugin == 'caching_sha2_password' -%}
|
||||||
|
{%- set hosts = [user.host | default('%')] if user.host is undefined or user.host is string else user.host -%}
|
||||||
|
{%- for host in hosts -%}
|
||||||
|
{%- set _ = pairs.append(user | combine({'host': host})) -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endfor -%}
|
||||||
|
{{ pairs }}
|
||||||
|
loop: "{{ user_host_pairs }}"
|
||||||
|
|||||||
Reference in New Issue
Block a user