diff --git a/.travis.yml b/.travis.yml index acc8ac5..ced862c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,5 @@ +--- + env: - PLATFORM='docker-buster-default-master' ANSIBLE_VERSION='ansible>=2.9,<2.10' - PLATFORM='docker-buster-upstream-master' ANSIBLE_VERSION='ansible>=2.9,<2.10' diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..53974a0 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,6 @@ +--- + +extends: default + +rules: + line-length: disable diff --git a/defaults/main.yml b/defaults/main.yml index 7ca705f..555b530 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -43,7 +43,7 @@ mariadb_wait_timeout: 28800 # InnoDB settings. mariadb_innodb_buffer_pool_size: "{{ (ansible_memtotal_mb * 0.2) | round | int }}M" -mariadb_innodb_log_file_size: "64M" # If this setting changes on a running system, you will break it! http://dev.mysql.com/doc/refman/5.6/en/innodb-data-log-reconfiguration.html +mariadb_innodb_log_file_size: "64M" # If this setting changes on a running system, you will break it! http://dev.mysql.com/doc/refman/5.6/en/innodb-data-log-reconfiguration.html mariadb_innodb_log_buffer_size: '8M' mariadb_innodb_flush_log_at_trx_commit: '1' mariadb_innodb_lock_wait_timeout: 50 @@ -62,9 +62,8 @@ mariadb_mysqldump_max_allowed_packet: '64M' mariadb_extra_configuration: {} # Example: -#mariadb_extra_configuration: -# 'innodb_awsome_feature': 1 - +# mariadb_extra_configuration: +# 'innodb_awsome_feature': 1 # ------------------------------------- # Replication @@ -99,7 +98,7 @@ mariadb_slave_import_flush_dump: true mariadb_slave_ignore_db: [] mariadb_slave_ignore_table: [] # SSH user used to copy data -mariadb_backup_user: "{{ ansible_user_id }}" # TODO: change var name +mariadb_backup_user: "{{ ansible_user_id }}" # TODO: change var name ## If data is already imported, you can specify position mariadb_master_log_file: null mariadb_master_log_pos: null @@ -127,9 +126,9 @@ mariadb_key_ids: ['0xcbcb082a1bb943db', '0xf1656f24c74cd1d8'] # Galera # ------------------------------------- mariadb_galera_resetup: false -mariadb_wsrep_node_address: false # Set primary node IP +mariadb_wsrep_node_address: false # Set primary node IP mariadb_galera_members: [] -mariadb_galera_primary_node: 'change_me' # See: https://github.com/ansible/ansible/issues/17453 +mariadb_galera_primary_node: 'change_me' # See: https://github.com/ansible/ansible/issues/17453 mariadb_wsrep_stt_method: 'rsync' # ------------------------------------- diff --git a/meta/main.yml b/meta/main.yml index 2bf4747..58c1b96 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,4 +1,5 @@ --- + galaxy_info: author: Emilien Mantel description: Install and configure MariaDB (and Galera Cluster) on Debian @@ -6,18 +7,18 @@ galaxy_info: license: GPLv2 min_ansible_version: 2.9 platforms: - - name: Debian - versions: - - buster - - bullseye + - name: Debian + versions: + - buster + - bullseye galaxy_tags: - - database - - packaging - - mysql - - mariadb - - replication - - debian - - galera - - cluster -dependencies: [] + - database + - packaging + - mysql + - mariadb + - replication + - debian + - galera + - cluster +dependencies: [] diff --git a/tasks/install/main.yml b/tasks/install/main.yml index e34ab01..b9d14f7 100644 --- a/tasks/install/main.yml +++ b/tasks/install/main.yml @@ -10,4 +10,4 @@ - name: APT | Install few MariaDB related tools apt: pkg: "{{ mariadb_tools }}" - install_recommends: no + install_recommends: false diff --git a/tasks/replication/slave.yml b/tasks/replication/slave.yml index a1fbff1..6d28503 100644 --- a/tasks/replication/slave.yml +++ b/tasks/replication/slave.yml @@ -15,7 +15,7 @@ - name: MYSQL_REPLICATION | Get slave status mysql_replication: mode: getslave - ignore_errors: yes + ignore_errors: true register: slave_status - name: INCLUDE | Import data @@ -29,5 +29,5 @@ - name: MYSQL_REPLICATION | Get slave status mysql_replication: mode: getslave - ignore_errors: yes + ignore_errors: true register: slave_status diff --git a/tasks/replication/slave/import_data.yml b/tasks/replication/slave/import_data.yml index 0ef6c83..983eec8 100644 --- a/tasks/replication/slave/import_data.yml +++ b/tasks/replication/slave/import_data.yml @@ -13,28 +13,28 @@ - block: - - name: AUTHORIZED_KEY | Auth slave to backup host - authorized_key: - user: "{{ mariadb_backup_user }}" - state: present - key: "{{ gen_ssh.public_key }}" + - name: AUTHORIZED_KEY | Auth slave to backup host + authorized_key: + user: "{{ mariadb_backup_user }}" + state: present + key: "{{ gen_ssh.public_key }}" - - name: FILE | Create backup directory - file: - path: "{{ mariadb_backup_dir }}" - state: directory + - 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: 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: 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" delegate_to: "{{ mariadb_slave_import_from }}" @@ -55,7 +55,7 @@ # TODO: add an "ignore warning" - name: COMMAND | Sync backup to slave - TODO remove vagrant as static user (see why mariadb_backup_user is not working) shell: "sudo -E rsync --rsync-path='sudo rsync' -a -e 'ssh -o StrictHostKeyChecking=no' {{ mariadb_backup_user }}@{{ mariadb_slave_import_from }}:{{ mariadb_backup_dir }}/ {{ mariadb_datadir }}/" - become: no + become: false - name: FILE | Re-apply owner file: @@ -63,7 +63,7 @@ state: directory owner: mysql group: mysql - recurse: yes + recurse: true - name: SHELL | Remove InnoDB redo logs shell: "rm -f {{ mariadb_datadir }}/ib_logfile*" diff --git a/tests/test.yml b/tests/test.yml index c203737..1d8f2f4 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -16,7 +16,7 @@ - name: APT | Install some packages apt: name: "{{ p }}" - update_cache: yes + update_cache: true cache_valid_time: 3600 vars: p: ['ca-certificates', 'curl', 'strace', 'vim'] @@ -62,21 +62,21 @@ - block: - - name: COPY | Deploy dump - copy: - src: import2.sql - dest: /tmp/import2.sql - delegate_to: "{{ mariadb_slave_import_from }}" - register: c + - name: COPY | Deploy dump + copy: + src: import2.sql + dest: /tmp/import2.sql + delegate_to: "{{ mariadb_slave_import_from }}" + register: c - - name: MYSQL_DB | Import another dump - mysql_db: - name: "{{ item }}" - state: import - target: /tmp/import2.sql - login_unix_socket: "{{ mariadb_socket }}" - loop: ['testrepl', 'norepl'] - when: c.changed + - name: MYSQL_DB | Import another dump + mysql_db: + name: "{{ item }}" + state: import + target: /tmp/import2.sql + login_unix_socket: "{{ mariadb_socket }}" + loop: ['testrepl', 'norepl'] + when: c.changed delegate_to: "{{ mariadb_slave_import_from }}" diff --git a/vars/Debian.yml b/vars/Debian.yml index 74cdabf..49dd004 100644 --- a/vars/Debian.yml +++ b/vars/Debian.yml @@ -1,3 +1,5 @@ +--- + mariadb_tools: - mariadb-backup - mysqltuner