diff --git a/README.md b/README.md index 600fad3..723e78f 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,6 @@ Role Variables ### Configuration -- `mariadb_root_password`: root password (should be protected with [vault](http://docs.ansible.com/playbooks_vault.html)) - If you need a feature you can't configure, you can use this list. These config will go to `/etc/mysql/conf.d/01-extra`. - `mariadb_extra_config`: key/value hash see [default vars file](defaults/main.yml) diff --git a/Vagrantfile b/Vagrantfile index 8e54dda..1f5352b 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -21,11 +21,11 @@ Vagrant.configure("2") do |config| # Default replication { os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['master'] }, -# { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['slave'] }, + { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'default' }, groups: ['slave'] }, # Upstream replication { os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'upstream' }, groups: ['master'] }, -# { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['slave'] }, + { os_name: 'buster', vbox: vbox_deb_buster, docker: nil, vars: {mariadb_origin: 'upstream' }, groups: ['slave'] }, # Galera Debian { os_name: 'buster', vbox: vbox_deb_buster, docker: dk_deb_buster, vars: {mariadb_origin: 'default' }, groups: ['galera', '1'] }, diff --git a/tasks/replication/slave/import_data.yml b/tasks/replication/slave/import_data.yml index 0578124..578b318 100644 --- a/tasks/replication/slave/import_data.yml +++ b/tasks/replication/slave/import_data.yml @@ -5,24 +5,32 @@ host: "{{ mariadb_slave_import_from }}" port: 22 -- name: COMMAND | Prepare backup another server - command: mariabackup --backup {{ mariadb_backup_dir }} - args: - creates: "{{ mariadb_backup_dir }}" - delegate_to: "{{ mariadb_slave_import_from }}" - register: backup +- block: -- name: SHELL | Dump - shell: "mariabackup --prepare {{ mariadb_backup_dir }}" - delegate_to: "{{ mariadb_slave_import_from }}" - when: backup.changed + - name: FILE | Create backup directory + file: + path: "{{ mariadb_backup_dir }}" + state: directory + + - name: COMMAND | Prepare backup another server + command: "mariabackup --backup -u root --target-dir={{ mariadb_backup_dir }}" + args: + creates: "{{ mariadb_backup_dir }}/xtrabackup_info" + register: backup + + - name: SHELL | Dump + shell: "mariabackup --prepare --target-dir={{ mariadb_backup_dir }}" + when: backup.changed + register: prep + changed_when: "'This target seems to be not prepared yet' in prep.stderr" + + - name: FILE | Remove mysql db from backup + file: + path: "{{ mariadb_backup_dir }}/mysql" + state: absent + when: backup.changed and not mariadb_slave_replicate_mysqldb -- name: FILE | Remove mysql db from backup - file: - path: "{{ mariadb_backup_dir }}/mysql" - state: absent delegate_to: "{{ mariadb_slave_import_from }}" - when: backup.changed and not mariadb_slave_replicate_mysqldb - name: MYSQL_VARIABLES | Get datadir mysql_variables: @@ -52,6 +60,11 @@ group: mysql recurse: yes +- name: SHELL | Remove InnoDB redo logs + shell: "rm -f {{ mariadb_datadir }}/ib_logfile*" + args: + removes: "{{ mariadb_datadir }}/ib_logfile0" + - name: SERVICE | Start MariaDB service: name: mysql