ansible-roles/webapps/nextcloud/tasks/mysql.yml

63 lines
1.5 KiB
YAML

---
- name: Get actual Mysql password
shell: "grep password {{ nextcloud_home }}/.my.cnf | awk '{ print $3 }'"
register: nextcloud_db_pass_grep
check_mode: no
changed_when: False
failed_when: False
tags:
- nextcloud
- name: Generate Mysql password
command: 'apg -n 1 -m 16 -M lcN'
register: nextcloud_db_pass_apg
check_mode: no
changed_when: False
tags:
- nextcloud
- name: Set Mysql password
set_fact:
nextcloud_db_pass: "{{ nextcloud_db_pass_grep.stdout | default(nextcloud_db_pass_apg.stdout, True) }}"
tags:
- nextcloud
- debug:
var: nextcloud_db_pass
verbosity: 1
- name: Create Mysql database
mysql_db:
name: "{{ nextcloud_db_name }}"
config_file: "/root/.my.cnf"
state: present
tags:
- nextcloud
- name: Create Mysql user
mysql_user:
name: "{{ nextcloud_db_user }}"
password: '{{ nextcloud_db_pass }}'
priv: "{{ nextcloud_db_name }}.*:ALL"
config_file: "/root/.my.cnf"
update_password: always
state: present
tags:
- nextcloud
- name: Store credentials in my.cnf
ini_file:
dest: "{{ nextcloud_home }}/.my.cnf"
owner: "{{ nextcloud_user }}"
group: "{{ nextcloud_user }}"
mode: "0600"
section: client
option: "{{ item.option }}"
value: "{{ item.value }}"
loop:
- { option: "user", value: "{{ nextcloud_db_user }}" }
- { option: "database", value: "{{ nextcloud_db_name }}" }
- { option: "password", value: "{{ nextcloud_db_pass }}" }
tags:
- nextcloud