90 lines
3.1 KiB
YAML
90 lines
3.1 KiB
YAML
---
|
|
- name: "[mySQL: Debian] - Service is installed."
|
|
package:
|
|
name: "{{ 'default-' if ((ansible_distribution|lower) == 'debian' and nextcloud_db_backend == 'mysql') else '' }}{{ nextcloud_db_backend }}-server"
|
|
state: present
|
|
register: nc_mysql_db_install
|
|
|
|
- name: "[mySQL] - Packages are installed."
|
|
package:
|
|
name: "{{ nc_mysql_deps }}"
|
|
state: present
|
|
vars:
|
|
nc_mysql_deps:
|
|
- "php{{ php_ver }}-mysql"
|
|
- "python{{ '3' if ansible_python.version.major == 3 else '' }}-pymysql"
|
|
|
|
- name: "[mySQL] - generate {{ nextcloud_db_backend }} root Password:"
|
|
set_fact:
|
|
nextcloud_mysql_root_pwd: "{{ lookup( 'password', 'nextcloud_instances/'+ nextcloud_instance_name +'/mysql_root.pwd' ) }}"
|
|
when: nextcloud_mysql_root_pwd is not defined
|
|
|
|
- name: "[mySQL] - save {{ nextcloud_db_backend }} root password in config file"
|
|
ini_file:
|
|
path: "{{ mysql_credential_file[(ansible_os_family|lower)] }}"
|
|
section: client
|
|
option: password
|
|
value: "{{ nextcloud_mysql_root_pwd }}"
|
|
no_log: true
|
|
when: mysql_credential_file[(ansible_os_family|lower)] is defined
|
|
|
|
# use debian default credentials to work on user root password
|
|
- name: "[mySQL] - Update {{ nextcloud_db_backend }} root password"
|
|
mysql_user:
|
|
name: root
|
|
|
|
password: "{{ nextcloud_mysql_root_pwd }}"
|
|
config_file: "{{ mysql_credential_file[(ansible_os_family|lower)] | default(omit) }}"
|
|
check_implicit_admin: yes
|
|
priv: "*.*:ALL,GRANT"
|
|
# Assuming the root user has only localhost access
|
|
host_all: yes
|
|
|
|
|
|
- name: "[mySQL] - Delete the anonymous user."
|
|
mysql_user:
|
|
user: ""
|
|
state: "absent"
|
|
login_user: root
|
|
login_password: "{{ nextcloud_mysql_root_pwd }}"
|
|
config_file: "{{ mysql_credential_file[(ansible_os_family|lower)] | default(omit) }}"
|
|
ignore_errors: yes
|
|
|
|
- name: "[mySQL] - Removes the MySQL test database"
|
|
mysql_db:
|
|
name: test
|
|
state: absent
|
|
login_user: root
|
|
login_password: "{{ nextcloud_mysql_root_pwd }}"
|
|
config_file: "{{ mysql_credential_file[(ansible_os_family|lower)] | default(omit) }}"
|
|
ignore_errors: yes
|
|
|
|
- name: "[mySQL] - Set mysql config option for nextcloud"
|
|
copy:
|
|
dest: /etc/mysql/conf.d/nextcloud.cnf
|
|
src: files/mysql_nextcloud.cnf
|
|
notify: restart mysql
|
|
|
|
- name: "[mySQL] - Generate database user Password."
|
|
set_fact:
|
|
nextcloud_db_pwd: "{{ lookup( 'password', 'nextcloud_instances/'+ nextcloud_instance_name +'/db_admin.pwd' ) }}"
|
|
when: nextcloud_db_pwd is not defined
|
|
|
|
- name: "[mySQL] - Add Database {{ nextcloud_db_name }}."
|
|
mysql_db:
|
|
name: "{{ nextcloud_db_name }}"
|
|
login_user: root
|
|
login_password: "{{ nextcloud_mysql_root_pwd }}"
|
|
config_file: "{{ mysql_credential_file[(ansible_os_family|lower)] | default(omit) }}"
|
|
state: present
|
|
|
|
- name: "[mySQL] - Configure the database user."
|
|
mysql_user:
|
|
name: "{{ nextcloud_db_admin }}"
|
|
password: "{{ nextcloud_db_pwd }}"
|
|
priv: "{{ nextcloud_db_name }}.*:ALL"
|
|
login_user: root
|
|
login_password: "{{ nextcloud_mysql_root_pwd }}"
|
|
config_file: "{{ mysql_credential_file[(ansible_os_family|lower)] | default(omit) }}"
|
|
state: present
|