--- - 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