ansible-roles/roles/lemonldap_ng/tasks/mysql.yml
2021-12-01 19:13:34 +01:00

82 lines
2.4 KiB
YAML

---
- name: Install needed packages
yum: name={{ llng_mysql_packages }}
tags: web
- when:
- llng_db_pass is not defined
- llng_manager or llng_portal
block:
- import_tasks: ../includes/get_rand_pass.yml
vars:
- pass_file: "/etc/lemonldap-ng/ansible_dbpass"
- set_fact: llng_db_pass={{ rand_pass }}
tags: web
- when: llng_handler_db_pass is not defined
block:
- import_tasks: ../includes/get_rand_pass.yml
vars:
- pass_file: "/etc/lemonldap-ng/ansible_handler_dbpass"
- set_fact: llng_handler_db_pass={{ rand_pass }}
tags: web
- name: Create the database
mysql_db:
name: "{{ llng_db_name }}"
login_host: "{{ llng_db_server | default(mysql_server) }}"
login_user: sqladmin
login_password: "{{ mysql_admin_pass }}"
encoding: utf8mb4
collation: utf8mb4_general_ci
state: present
tags: web
- name: Copy mysql schema
copy: src=mysql_schema.sql dest=/etc/lemonldap-ng/mysql_schema.sql
register: llng_schema
tags: web
- name: Inject SQL structure
mysql_db:
name: "{{ llng_db_name }}"
state: import
target: /etc/lemonldap-ng/mysql_schema.sql
login_host: "{{ llng_db_server }}"
login_user: sqladmin
login_password: "{{ mysql_admin_pass }}"
when: llng_schema.changed
tags: web
- name: Create the main user
mysql_user:
name: "{{ llng_db_user }}"
password: "{{ llng_db_pass }}"
priv: "{{ llng_db_name }}.*:ALL"
host: "{{ ( llng_db_server == 'localhost' ) | ternary('localhost', item ) }}"
login_host: "{{ llng_db_server }}"
login_user: sqladmin
login_password: "{{ mysql_admin_pass }}"
state: present
append_privs: True
when: llng_portal == True or llng_manager == True
loop: "{{ ansible_all_ipv4_addresses }}"
tags: web
- name: Create the handler user
mysql_user:
name: "{{ llng_handler_db_user }}"
password: "{{ llng_handler_db_pass }}"
priv: "{{ llng_db_name }}.{{ llng_session_tables[item.1].name }}:SELECT,INSERT,DELETE,UPDATE/{{ llng_db_name }}.lmConfig:SELECT"
host: "{{ ( llng_db_server == 'localhost' ) | ternary('localhost', item.0 ) }}"
login_host: "{{ llng_db_server }}"
login_user: sqladmin
login_password: "{{ mysql_admin_pass }}"
state: present
append_privs: True
when: llng_handler == True
loop: "{{ ansible_all_ipv4_addresses | product(llng_session_tables.keys() | list) | list }}"
tags: web