diff --git a/mysql_ansible/playbooks/advanced_config.yml b/mysql_ansible/playbooks/advanced_config.yml new file mode 100644 index 0000000000000000000000000000000000000000..8486398b0f186f2fed4e1409375e07b2d8150115 --- /dev/null +++ b/mysql_ansible/playbooks/advanced_config.yml @@ -0,0 +1,24 @@ +## dir +mycnf_dir: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}" +datadir: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}" +tmpdir: "{{ mysql_data_dir_base }}/tmp/{{ mysql_port }}" +binlog_dir: "{{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}" +relaylog_dir: "{{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}" +redolog_dir: "{{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }}" +socket_dir: "{{ datadir }}" +mysqlx_socket_dir: "{{ datadir }}" + + +auditlog_dir: "{{ datadir }}" # Only applicable for Percona and GreatSQL +slowlog_dir: "{{ datadir }}" +errlog_dir: "{{ datadir }}" +generallog_dir: "{{ datadir }}" + +## file +socket: "{{ socket_dir }}/mysql.sock" +mysqlx_socket: "{{ mysqlx_socket_dir }}/mysqlx.sock" + +## do not modify +mysql_package: "{% if db_type == 'mysql' %}{{ 'mysql-' + mysql_version + '-linux-' + ('glibc2.12' if mysql_version.startswith('5.') else 'glibc2.17') + '-x86_64' + ('.tar.gz' if mysql_version.startswith('5.') else '-minimal.tar.xz') }}{% elif db_type == 'percona' %}{{ percona_package }}{% elif db_type == 'greatsql' %}{{ greatsql_package }}{% endif %}" +greatsql_package: "GreatSQL-{{ mysql_version }}-Linux-glibc2.17-x86_64-minimal.tar.xz" # dont modifiy +percona_package: Percona-Server-8.0.29-21-Linux.x86_64.glibc2.17.tar.gz diff --git a/mysql_ansible/playbooks/backup_script.yml b/mysql_ansible/playbooks/backup_script.yml index b08a12ca8efcb633b6086b14d75b95b692f45185..88cbcd4b5f150ca309c6938d84a09ee08636c50e 100644 --- a/mysql_ansible/playbooks/backup_script.yml +++ b/mysql_ansible/playbooks/backup_script.yml @@ -4,7 +4,9 @@ any_errors_fatal: true vars_files: - default/common_config.yml + - default/advanced_config.yml - common_config.yml + - advanced_config.yml vars: roles_to_execute: - "../roles/install_xtrabackup" diff --git a/mysql_ansible/playbooks/common_config.yml b/mysql_ansible/playbooks/common_config.yml index b0559763b1dcfa010baaad90ce47f46e1f9a788f..112bfe30bfe6b15fe656710e2fe75477ea181475 100644 --- a/mysql_ansible/playbooks/common_config.yml +++ b/mysql_ansible/playbooks/common_config.yml @@ -17,22 +17,16 @@ db_type: mysql # Directory of MySQL installation package mysql_packages_dir: ../downloads/ -greatsql_package: "GreatSQL-{{ mysql_version }}-Linux-glibc2.17-x86_64-minimal.tar.xz" # dont modifiy -percona_package: Percona-Server-8.0.29-21-Linux.x86_64.glibc2.17.tar.gz - -## do not modify -mysql_package: "{% if db_type == 'mysql' %}{{ 'mysql-' + mysql_version + '-linux-' + ('glibc2.12' if mysql_version.startswith('5.') else 'glibc2.17') + '-x86_64' + ('.tar.gz' if mysql_version.startswith('5.') else '-minimal.tar.xz') }}{% elif db_type == 'percona' %}{{ percona_package }}{% elif db_type == 'greatsql' %}{{ greatsql_package }}{% endif %}" - ## linux mysql run user name mysql_user: mysql mysql_group: mysql mysql_user_password: Dbops@9999 ## mysql install directory -mysql_base_dir: /database/{{ db_type }}/base/{{ mysql_version }} +mysql_software_dir: "/database/{{ db_type }}/base/{{ mysql_version }}" ## mysql_data_dir_base define mysql datadir base, real datadir= mysql_data_dir_base + /port -mysql_data_dir_base: /database/{{ db_type }} +mysql_data_dir_base: "/database/{{ db_type }}" ## The password needs to meet the password complexity requirements ## Complexity requirements: at least 8 digits, including numbers, upper and lower case letters, and special symbols. @@ -62,7 +56,6 @@ mysql_default_time_zone: "+8:00" mysql57_innodb_log_files_in_group: 16 mysql57_innodb_log_file_size: 256M use_write_set: 1 -sock_type: 1 # 1 for ${datadir}/mysql.sock, 2 for /tmp/mysql${port}.sock, 3 for ${mysql_data_dir_base}/run/mysql${port}.sock mgr_use_random_uuid: 1 ## Feature Control Switch @@ -75,6 +68,7 @@ fcs_backup_script_create_backup_user: true fcs_role_mysqld_exporter_create_monitor_user: true fcs_mysql_use_jemalloc: true fcs_use_greatsql_ha: true +fcs_mysql_fast_login_have_prompt: true ## Feature Control Switch vars fcs_create_mysql_fast_login_name: db{{ mysql_port }} diff --git a/mysql_ansible/playbooks/default/advanced_config.yml b/mysql_ansible/playbooks/default/advanced_config.yml new file mode 100644 index 0000000000000000000000000000000000000000..8486398b0f186f2fed4e1409375e07b2d8150115 --- /dev/null +++ b/mysql_ansible/playbooks/default/advanced_config.yml @@ -0,0 +1,24 @@ +## dir +mycnf_dir: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}" +datadir: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}" +tmpdir: "{{ mysql_data_dir_base }}/tmp/{{ mysql_port }}" +binlog_dir: "{{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}" +relaylog_dir: "{{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}" +redolog_dir: "{{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }}" +socket_dir: "{{ datadir }}" +mysqlx_socket_dir: "{{ datadir }}" + + +auditlog_dir: "{{ datadir }}" # Only applicable for Percona and GreatSQL +slowlog_dir: "{{ datadir }}" +errlog_dir: "{{ datadir }}" +generallog_dir: "{{ datadir }}" + +## file +socket: "{{ socket_dir }}/mysql.sock" +mysqlx_socket: "{{ mysqlx_socket_dir }}/mysqlx.sock" + +## do not modify +mysql_package: "{% if db_type == 'mysql' %}{{ 'mysql-' + mysql_version + '-linux-' + ('glibc2.12' if mysql_version.startswith('5.') else 'glibc2.17') + '-x86_64' + ('.tar.gz' if mysql_version.startswith('5.') else '-minimal.tar.xz') }}{% elif db_type == 'percona' %}{{ percona_package }}{% elif db_type == 'greatsql' %}{{ greatsql_package }}{% endif %}" +greatsql_package: "GreatSQL-{{ mysql_version }}-Linux-glibc2.17-x86_64-minimal.tar.xz" # dont modifiy +percona_package: Percona-Server-8.0.29-21-Linux.x86_64.glibc2.17.tar.gz diff --git a/mysql_ansible/playbooks/default/common_config.yml b/mysql_ansible/playbooks/default/common_config.yml index b0559763b1dcfa010baaad90ce47f46e1f9a788f..112bfe30bfe6b15fe656710e2fe75477ea181475 100644 --- a/mysql_ansible/playbooks/default/common_config.yml +++ b/mysql_ansible/playbooks/default/common_config.yml @@ -17,22 +17,16 @@ db_type: mysql # Directory of MySQL installation package mysql_packages_dir: ../downloads/ -greatsql_package: "GreatSQL-{{ mysql_version }}-Linux-glibc2.17-x86_64-minimal.tar.xz" # dont modifiy -percona_package: Percona-Server-8.0.29-21-Linux.x86_64.glibc2.17.tar.gz - -## do not modify -mysql_package: "{% if db_type == 'mysql' %}{{ 'mysql-' + mysql_version + '-linux-' + ('glibc2.12' if mysql_version.startswith('5.') else 'glibc2.17') + '-x86_64' + ('.tar.gz' if mysql_version.startswith('5.') else '-minimal.tar.xz') }}{% elif db_type == 'percona' %}{{ percona_package }}{% elif db_type == 'greatsql' %}{{ greatsql_package }}{% endif %}" - ## linux mysql run user name mysql_user: mysql mysql_group: mysql mysql_user_password: Dbops@9999 ## mysql install directory -mysql_base_dir: /database/{{ db_type }}/base/{{ mysql_version }} +mysql_software_dir: "/database/{{ db_type }}/base/{{ mysql_version }}" ## mysql_data_dir_base define mysql datadir base, real datadir= mysql_data_dir_base + /port -mysql_data_dir_base: /database/{{ db_type }} +mysql_data_dir_base: "/database/{{ db_type }}" ## The password needs to meet the password complexity requirements ## Complexity requirements: at least 8 digits, including numbers, upper and lower case letters, and special symbols. @@ -62,7 +56,6 @@ mysql_default_time_zone: "+8:00" mysql57_innodb_log_files_in_group: 16 mysql57_innodb_log_file_size: 256M use_write_set: 1 -sock_type: 1 # 1 for ${datadir}/mysql.sock, 2 for /tmp/mysql${port}.sock, 3 for ${mysql_data_dir_base}/run/mysql${port}.sock mgr_use_random_uuid: 1 ## Feature Control Switch @@ -75,6 +68,7 @@ fcs_backup_script_create_backup_user: true fcs_role_mysqld_exporter_create_monitor_user: true fcs_mysql_use_jemalloc: true fcs_use_greatsql_ha: true +fcs_mysql_fast_login_have_prompt: true ## Feature Control Switch vars fcs_create_mysql_fast_login_name: db{{ mysql_port }} diff --git a/mysql_ansible/playbooks/exporter_install.yml b/mysql_ansible/playbooks/exporter_install.yml index c254936bdc99cc2a79a29ce8a0cbfb6ae14c347e..bdd737ea5298bf30eb5f556a4fcaec03e10e9d05 100644 --- a/mysql_ansible/playbooks/exporter_install.yml +++ b/mysql_ansible/playbooks/exporter_install.yml @@ -5,8 +5,10 @@ max_fail_percentage: 1 vars_files: - default/common_config.yml + - default/advanced_config.yml - default/var_exporter_install.yml - common_config.yml + - advanced_config.yml - vars/var_exporter_install.yml vars: roles_to_execute: diff --git a/mysql_ansible/playbooks/install_mysqlshell.yml b/mysql_ansible/playbooks/install_mysqlshell.yml index c205db20958454b3132f42395f6e563c4e95687d..96919ca09c330fd6d69b1a341256c16e40b7d369 100644 --- a/mysql_ansible/playbooks/install_mysqlshell.yml +++ b/mysql_ansible/playbooks/install_mysqlshell.yml @@ -3,8 +3,10 @@ become: true vars_files: - default/common_config.yml + - default/advanced_config.yml - default/var_install_mysqlshell.yml - common_config.yml + - advanced_config.yml - vars/var_install_mysqlshell.yml vars: roles_to_execute: diff --git a/mysql_ansible/playbooks/install_xtrabackup.yml b/mysql_ansible/playbooks/install_xtrabackup.yml index 2dff783dd2019286b83f28521c52ca51af96dd65..b3be8c3686c029c1c88dcb511330081156457e57 100644 --- a/mysql_ansible/playbooks/install_xtrabackup.yml +++ b/mysql_ansible/playbooks/install_xtrabackup.yml @@ -2,7 +2,11 @@ hosts: dbops_mysql become: true vars_files: + - default/common_config.yml + - default/advanced_config.yml - common_config.yml + - advanced_config.yml + vars: roles_to_execute: - "../roles/install_xtrabackup" diff --git a/mysql_ansible/playbooks/keepalived_master_slave.yml b/mysql_ansible/playbooks/keepalived_master_slave.yml index f7e26e17e8dc87acfc27f6ef243b47806752fa97..83c167e15016e52287750e1fbdf4196571f011aa 100644 --- a/mysql_ansible/playbooks/keepalived_master_slave.yml +++ b/mysql_ansible/playbooks/keepalived_master_slave.yml @@ -5,8 +5,10 @@ max_fail_percentage: 1 vars_files: - default/common_config.yml + - default/advanced_config.yml - default/var_keepalived_master_slave.yml - common_config.yml + - advanced_config.yml - vars/var_keepalived_master_slave.yml vars: roles_to_execute: diff --git a/mysql_ansible/playbooks/master_slave.yml b/mysql_ansible/playbooks/master_slave.yml index cc260479952f7f62fa0f412ec98dcfd0c54cb1c2..e82ef47855b76cf423b4b8be28520efc6a998188 100644 --- a/mysql_ansible/playbooks/master_slave.yml +++ b/mysql_ansible/playbooks/master_slave.yml @@ -5,8 +5,10 @@ max_fail_percentage: 1 vars_files: - default/common_config.yml + - default/advanced_config.yml - default/var_master_slave.yml - common_config.yml + - advanced_config.yml - vars/var_master_slave.yml vars: roles_to_execute: diff --git a/mysql_ansible/playbooks/mgr.yml b/mysql_ansible/playbooks/mgr.yml index b4240ae47b94d59b6e83b1055961e12c1e484150..cfa2dea614ed57d92e91e757fb6da7ff67eea0bc 100644 --- a/mysql_ansible/playbooks/mgr.yml +++ b/mysql_ansible/playbooks/mgr.yml @@ -3,8 +3,10 @@ become: true vars_files: - default/common_config.yml + - default/advanced_config.yml - default/var_mgr.yml - common_config.yml + - advanced_config.yml - vars/var_mgr.yml max_fail_percentage: 1 vars: diff --git a/mysql_ansible/playbooks/mha.yml b/mysql_ansible/playbooks/mha.yml index d87a0a1ccf199715bbbdabefce0f3c36f52f4ff1..2bb392c5ba0c5a25ae988f23714ac7ac334f597e 100644 --- a/mysql_ansible/playbooks/mha.yml +++ b/mysql_ansible/playbooks/mha.yml @@ -3,8 +3,10 @@ become: true vars_files: - default/common_config.yml + - default/advanced_config.yml - default/var_mha.yml - common_config.yml + - advanced_config.yml - vars/var_mha.yml max_fail_percentage: 1 vars: diff --git a/mysql_ansible/playbooks/pre_tasks/confirmation.yml b/mysql_ansible/playbooks/pre_tasks/confirmation.yml index 7e23364eb2f6d1b6c72e42e3da1655bbda375633..14fb1338f84025bea72febd763eea8ec1d9c0304 100644 --- a/mysql_ansible/playbooks/pre_tasks/confirmation.yml +++ b/mysql_ansible/playbooks/pre_tasks/confirmation.yml @@ -33,7 +33,11 @@ - name: Display the list of target hosts and additional information ansible.builtin.debug: - msg: "{{ base_msg + master_ip_msg + slave_ips_msg + vip_msg + manager_ip_msg + mysqld_exporter_port_msg + mysqld_exporter_install_type_msg + mysqld_exporter_package_msg + mysqld_exporter_install_dir_msg + node_exporter_port_msg + node_exporter_install_type_msg + node_exporter_package_msg + node_exporter_install_dir_msg }}" + msg: "{{ base_msg + + master_ip_msg + slave_ips_msg + vip_msg + manager_ip_msg + + mysqld_exporter_port_msg + mysqld_exporter_install_type_msg + mysqld_exporter_package_msg + mysqld_exporter_install_dir_msg + + node_exporter_port_msg + node_exporter_install_type_msg + node_exporter_package_msg + node_exporter_install_dir_msg + + mycnf_dir_msg + datadir_msg + tmpdir_msg + binlog_dir_msg + relaylog_dir_msg + redolog_dir_msg + socket_dir_msg + mysqlx_socket_dir_msg }}" run_once: true delegate_to: localhost vars: @@ -59,6 +63,15 @@ node_exporter_install_type_msg: "{% if node_exporter_install_type is defined %}[\"node_exporter install type: {{ node_exporter_install_type }}\"]{% else %}[]{% endif %}" node_exporter_package_msg: "{% if (node_exporter_install_type | default('dbops')) == 'package' and node_exporter_package is defined %}[\"node_exporter package: {{ node_exporter_package }}\"]{% else %}[]{% endif %}" node_exporter_install_dir_msg: "{% if node_exporter_install_dir is defined %}[\"node_exporter install dir: {{ node_exporter_install_dir }}\"]{% else %}[]{% endif %}" + # Additional MySQL directory messages + mycnf_dir_msg: "{% if mycnf_dir is defined %}[\"mycnf_dir: {{ mycnf_dir }}\"]{% else %}[]{% endif %}" + datadir_msg: "{% if datadir is defined %}[\"datadir: {{ datadir }}\"]{% else %}[]{% endif %}" + tmpdir_msg: "{% if tmpdir is defined %}[\"tmpdir: {{ tmpdir }}\"]{% else %}[]{% endif %}" + binlog_dir_msg: "{% if binlog_dir is defined %}[\"binlog_dir: {{ binlog_dir }}\"]{% else %}[]{% endif %}" + relaylog_dir_msg: "{% if relaylog_dir is defined %}[\"relaylog_dir: {{ relaylog_dir }}\"]{% else %}[]{% endif %}" + redolog_dir_msg: "{% if redolog_dir is defined %}[\"redolog_dir: {{ redolog_dir }}\"]{% else %}[]{% endif %}" + socket_dir_msg: "{% if socket_dir is defined %}[\"socket_dir: {{ socket_dir }}\"]{% else %}[]{% endif %}" + mysqlx_socket_dir_msg: "{% if mysqlx_socket_dir is defined %}[\"mysqlx_socket_dir: {{ mysqlx_socket_dir }}\"]{% else %}[]{% endif %}" - name: Prompt user for confirmation ansible.builtin.pause: diff --git a/mysql_ansible/playbooks/pre_tasks/confirmation_uninstall.yml b/mysql_ansible/playbooks/pre_tasks/confirmation_uninstall.yml new file mode 100644 index 0000000000000000000000000000000000000000..5c218430fb82b2647b529c16d076ca573c4c4203 --- /dev/null +++ b/mysql_ansible/playbooks/pre_tasks/confirmation_uninstall.yml @@ -0,0 +1,53 @@ +- name: Display the list of target hosts and additional information + ansible.builtin.debug: + msg: "{{ base_msg + + master_ip_msg + slave_ips_msg + vip_msg + manager_ip_msg + + mysqld_exporter_port_msg + mysqld_exporter_install_type_msg + mysqld_exporter_package_msg + mysqld_exporter_install_dir_msg + + node_exporter_port_msg + node_exporter_install_type_msg + node_exporter_package_msg + node_exporter_install_dir_msg + + datadir_msg + tmpdir_msg + binlog_dir_msg + relaylog_dir_msg + redolog_dir_msg + + [note] }}" + run_once: true + delegate_to: localhost + vars: + base_msg: + - "Hosts to be affected by {{ ansible_play_name }}: {{ play_hosts | join(', ') }}" + - "DB type: {{ db_type }}" + - "MySQL port: {{ mysql_port }}" + - "MySQL version: {{ mysql_version }}" + - "Server specs: {{ server_specs }}" + - "Roles to be executed: {{ roles_to_execute | join(', ') }}" + # master, slave, VIP, manager info + master_ip_msg: "{% if master_ip is defined %}[\"Master IP: {{ master_ip }}\"]{% else %}[]{% endif %}" + slave_ips_msg: "{% if slave_ips is defined %}[\"Slave IPs: {{ slave_ips | join(', ') }}\"]{% else %}[]{% endif %}" + vip_msg: "{% if vip is defined %}[\"VIP: {{ vip }}\"]{% else %}[]{% endif %}" + manager_ip_msg: "{% if manager_ip is defined %}[\"Manager IP: {{ manager_ip }}\"]{% else %}[]{% endif %}" + # mysqld_exporter messages + mysqld_exporter_port_msg: "{% if mysqld_exporter_port is defined %}[\"mysqld_exporter port: {{ mysqld_exporter_port }}\"]{% else %}[]{% endif %}" + mysqld_exporter_install_type_msg: "{% if mysqld_exporter_install_type is defined %}[\"mysqld_exporter install type: {{ mysqld_exporter_install_type }}\"]{% else %}[]{% endif %}" + mysqld_exporter_package_msg: "{% if (mysqld_exporter_install_type | default('dbops')) == 'package' and (mysqld_exporter_package is defined) %}[\"mysqld_exporter package: {{ mysqld_exporter_package }}\"]{% else %}[]{% endif %}" + mysqld_exporter_install_dir_msg: "{% if mysqld_exporter_install_dir is defined %}[\"mysqld_exporter install dir: {{ mysqld_exporter_install_dir }}\"]{% else %}[]{% endif %}" + # node_exporter messages + node_exporter_port_msg: "{% if node_exporter_port is defined %}[\"node_exporter port: {{ node_exporter_port }}\"]{% else %}[]{% endif %}" + node_exporter_install_type_msg: "{% if node_exporter_install_type is defined %}[\"node_exporter install type: {{ node_exporter_install_type }}\"]{% else %}[]{% endif %}" + node_exporter_package_msg: "{% if (node_exporter_install_type | default('dbops')) == 'package' and node_exporter_package is defined %}[\"node_exporter package: {{ node_exporter_package }}\"]{% else %}[]{% endif %}" + node_exporter_install_dir_msg: "{% if node_exporter_install_dir is defined %}[\"node_exporter install dir: {{ node_exporter_install_dir }}\"]{% else %}[]{% endif %}" + # Additional MySQL directory messages + datadir_msg: "{% if datadir is defined %}[\"datadir: {{ datadir }}\"]{% else %}[]{% endif %}" + tmpdir_msg: "{% if tmpdir is defined %}[\"tmpdir: {{ tmpdir }}\"]{% else %}[]{% endif %}" + binlog_dir_msg: "{% if binlog_dir is defined %}[\"binlog_dir: {{ binlog_dir }}\"]{% else %}[]{% endif %}" + relaylog_dir_msg: "{% if relaylog_dir is defined %}[\"relaylog_dir: {{ relaylog_dir }}\"]{% else %}[]{% endif %}" + redolog_dir_msg: "{% if redolog_dir is defined %}[\"redolog_dir: {{ redolog_dir }}\"]{% else %}[]{% endif %}" + note: "This script is not secure for production environments. Please test thoroughly before using. The script will only remove the following directories: datadir, tmpdir, binlog_dir, relaylog_dir, and redolog_dir. It will not remove the MySQL software, Linux user, my.cnf, or logs such as slow.log, err.log, general.log, and audit.log." + + +- name: Prompt user for confirmation + ansible.builtin.pause: + prompt: "This will perform {{ ansible_play_name }} on the displayed hosts. Please type 'confirm' to continue or press Ctrl+C to cancel." + register: confirmation + run_once: true + delegate_to: localhost + +- name: Check if user confirmed + ansible.builtin.fail: + msg: "{{ ansible_play_name }} not confirmed, exiting." + when: confirmation.user_input != 'confirm' diff --git a/mysql_ansible/playbooks/single_node.yml b/mysql_ansible/playbooks/single_node.yml index a311c5df1ab6a7fd2b19a489330e1ed5e454ee5e..57b3d93d65182825cb829184d3040a9bfe885045 100644 --- a/mysql_ansible/playbooks/single_node.yml +++ b/mysql_ansible/playbooks/single_node.yml @@ -4,8 +4,10 @@ any_errors_fatal: true vars_files: - default/common_config.yml + - default/advanced_config.yml - default/var_single_node.yml - common_config.yml + - advanced_config.yml - vars/var_single_node.yml vars: roles_to_execute: diff --git a/mysql_ansible/playbooks/unsafe_uninstall.yml b/mysql_ansible/playbooks/unsafe_uninstall.yml index 7067391ae2fbe7de0bc83329d14c9887a06e8e2f..6568e584559a074647b91a4cd465fc0adf248106 100644 --- a/mysql_ansible/playbooks/unsafe_uninstall.yml +++ b/mysql_ansible/playbooks/unsafe_uninstall.yml @@ -3,6 +3,7 @@ become: true vars_files: - common_config.yml + - advanced_config.yml vars: roles_to_execute: - "../roles/unsafe_uninstall" @@ -11,7 +12,7 @@ ansible.builtin.import_tasks: pre_tasks/check_os_and_python.yml - name: Import confirmation tasks - ansible.builtin.import_tasks: pre_tasks/confirmation.yml + ansible.builtin.import_tasks: pre_tasks/confirmation_uninstall.yml tasks: - name: Include role ansible.builtin.include_role: diff --git a/mysql_ansible/roles/backup_script/tasks/create_backup_user.yml b/mysql_ansible/roles/backup_script/tasks/create_backup_user.yml index 22ecf97a7d231c57e0049b3819fab4fab8a502d5..b54929c68dec5e49dbb187136a389f78594636e0 100644 --- a/mysql_ansible/roles/backup_script/tasks/create_backup_user.yml +++ b/mysql_ansible/roles/backup_script/tasks/create_backup_user.yml @@ -6,13 +6,7 @@ - name: Create backup user ansible.builtin.shell: > - {% if sock_type == 1 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ mysql_data_dir_base }}/data/{{ mysql_port }}/mysql.sock < /tmp/create_backup_user.sql - {% elif sock_type == 2 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S /tmp/mysql{{ mysql_port }}.sock < /tmp/create_backup_user.sql - {% elif sock_type == 3 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock < /tmp/create_backup_user.sql - {% endif %} + {{ mysql_software_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ socket }} < /tmp/create_backup_user.sql changed_when: true - name: Remove temp file /tmp/create_backup_user.sql diff --git a/mysql_ansible/roles/backup_script/templates/.backup.sh.j2.swp b/mysql_ansible/roles/backup_script/templates/.backup.sh.j2.swp deleted file mode 100644 index e8434c365d94d0ef96972f9f6180a8ac45cd6827..0000000000000000000000000000000000000000 Binary files a/mysql_ansible/roles/backup_script/templates/.backup.sh.j2.swp and /dev/null differ diff --git a/mysql_ansible/roles/backup_script/templates/backup.sh.j2 b/mysql_ansible/roles/backup_script/templates/backup.sh.j2 index e24bf021ca3a1060d23d4067109556730fd676a6..aab6567fbe0d1138713c86a27c88eff15dae1508 100644 --- a/mysql_ansible/roles/backup_script/templates/backup.sh.j2 +++ b/mysql_ansible/roles/backup_script/templates/backup.sh.j2 @@ -9,7 +9,7 @@ ## local backup vars #DATA_DIR={{ mysql_data_dir_base }}/data/{{mysql_port}} PORT={{mysql_port}} -CNF_FILE={{ mysql_data_dir_base }}/etc/{{mysql_port}}/my.cnf +CNF_FILE={{ mycnf_dir }}/my.cnf BACKUP_DIR_BASE={{ mysql_data_dir_base }}/backup BACKUP_USER={{ mysql_backup_user }} BACKUP_PASS={{ mysql_backup_password }} diff --git a/mysql_ansible/roles/make_keepalived/defaults/main.yml b/mysql_ansible/roles/make_keepalived/defaults/main.yml index 50a08590a8d2112990f9ae37cfad9731366c7794..cb56e4118d21ac865ae62401a3d6d8e1af75b357 100644 --- a/mysql_ansible/roles/make_keepalived/defaults/main.yml +++ b/mysql_ansible/roles/make_keepalived/defaults/main.yml @@ -1 +1 @@ -mysql_config_file: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" +mysql_config_file: "{{ mycnf_dir }}/my.cnf" diff --git a/mysql_ansible/roles/make_keepalived/tasks/create_kha_user.yml b/mysql_ansible/roles/make_keepalived/tasks/create_kha_user.yml index bb7df5c5217cf924c7c65d212d72de0b42dda1fd..763c275f0d341258977c9a50de97361739dbf5f1 100644 --- a/mysql_ansible/roles/make_keepalived/tasks/create_kha_user.yml +++ b/mysql_ansible/roles/make_keepalived/tasks/create_kha_user.yml @@ -5,5 +5,5 @@ mode: '0600' - name: Create Keepalived HA user in mysql(master) - ansible.builtin.shell: "{{ mysql_base_dir }}/bin/mysql -h127.0.0.1 -P{{ mysql_port }} -u{{ mysql_admin_user }} -p{{ mysql_admin_127_password }} < /tmp/create_kha_user.sql" + ansible.builtin.shell: "{{ mysql_software_dir }}/bin/mysql -h127.0.0.1 -P{{ mysql_port }} -u{{ mysql_admin_user }} -p{{ mysql_admin_127_password }} < /tmp/create_kha_user.sql" changed_when: true diff --git a/mysql_ansible/roles/make_keepalived/templates/master_slave.cfg.j2 b/mysql_ansible/roles/make_keepalived/templates/master_slave.cfg.j2 index de8a531c3147a1d9f6ba5ed2cc2677c0a7e9548f..52d56c70acdc567a5917813f8d677935a9fc085a 100644 --- a/mysql_ansible/roles/make_keepalived/templates/master_slave.cfg.j2 +++ b/mysql_ansible/roles/make_keepalived/templates/master_slave.cfg.j2 @@ -1,6 +1,6 @@ -MYSQL_CMD="{{ mysql_base_dir }}/bin/mysql" -MYSQLBINLOG_CMD="{{ mysql_base_dir }}/bin/mysqlbinlog" -MYSQLADMIN_CMD="{{ mysql_base_dir }}/bin/mysqladmin" +MYSQL_CMD="{{ mysql_software_dir }}/bin/mysql" +MYSQLBINLOG_CMD="{{ mysql_software_dir }}/bin/mysqlbinlog" +MYSQLADMIN_CMD="{{ mysql_software_dir }}/bin/mysqladmin" {% if master_ip in ansible_all_ipv4_addresses %} LOCAL_HOST="{{ master_ip }}" REMOTE_HOST="{{ slave_ip }}" @@ -16,7 +16,7 @@ MYSQL_HA_PWD="{{ mysql_kha_password }}" CHECK_TIME=5 CHECK_COUNT=3 CHECK_SQL="select CONCAT('COUNTER:',count(*)) from mysql.user" -LOCAL_BINLOG="{{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}/mysql-bin" +LOCAL_BINLOG="{{ binlog_dir }}/mysql-bin" sqlpath=/tmp/{{ mysql_kha_user }} PINGDOWN_C=5 diff --git a/mysql_ansible/roles/make_mgr/tasks/config_group_replication.yml b/mysql_ansible/roles/make_mgr/tasks/config_group_replication.yml index c98b965bfc4043adf4e830ae9177d0e5d80e4c14..af82748e2cc64a81c2e0472741d600b6b31be5bc 100644 --- a/mysql_ansible/roles/make_mgr/tasks/config_group_replication.yml +++ b/mysql_ansible/roles/make_mgr/tasks/config_group_replication.yml @@ -6,13 +6,7 @@ - name: Config mysql group replication ansible.builtin.shell: > - {% if sock_type == 1 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ mysql_data_dir_base }}/data/{{ mysql_port }}/mysql.sock < /tmp/config_group_replication.sql - {% elif sock_type == 2 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S /tmp/mysql{{ mysql_port }}.sock < /tmp/config_group_replication.sql - {% elif sock_type == 3 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock < /tmp/config_group_replication.sql - {% endif %} + {{ mysql_software_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ socket }} < /tmp/config_group_replication.sql changed_when: true - name: Remove temp file /tmp/config_group_replication.sql diff --git a/mysql_ansible/roles/make_mgr/tasks/main.yml b/mysql_ansible/roles/make_mgr/tasks/main.yml index 3c14f9c5032357095a5427faf5daadba7bfbb1a3..b2e9079d3fbe18fc8ef3a8c63622c734e0f42810 100644 --- a/mysql_ansible/roles/make_mgr/tasks/main.yml +++ b/mysql_ansible/roles/make_mgr/tasks/main.yml @@ -5,7 +5,7 @@ - name: Check is mysqld install by dbops or not ansible.builtin.stat: - path: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}/single_finish.flag" + path: "{{ datadir }}/single_finish.flag" register: make_mgr__p # - debug: var=make_mgr__p @@ -23,6 +23,6 @@ - name: Touch group_replication_finish.flag ansible.builtin.file: - path: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}/group_replication_finish.flag" + path: "{{ datadir }}/group_replication_finish.flag" state: touch mode: '0644' diff --git a/mysql_ansible/roles/make_mha/tasks/create_mha_user.yml b/mysql_ansible/roles/make_mha/tasks/create_mha_user.yml index 6d9861d69aca673443b36a108b6e0a296bedd440..355c38b427c074552c557baa1ac9399f4674d198 100644 --- a/mysql_ansible/roles/make_mha/tasks/create_mha_user.yml +++ b/mysql_ansible/roles/make_mha/tasks/create_mha_user.yml @@ -5,5 +5,5 @@ mode: '0600' - name: Create mha user in mysql(master) - ansible.builtin.shell: "{{ mysql_base_dir }}/bin/mysql -h127.0.0.1 -P{{ mysql_port }} -u{{ mysql_admin_user }} -p{{ mysql_admin_127_password }} < /tmp/create_mha_user.sql" + ansible.builtin.shell: "{{ mysql_software_dir }}/bin/mysql -h127.0.0.1 -P{{ mysql_port }} -u{{ mysql_admin_user }} -p{{ mysql_admin_127_password }} < /tmp/create_mha_user.sql" changed_when: true diff --git a/mysql_ansible/roles/make_mha/tasks/main.yml b/mysql_ansible/roles/make_mha/tasks/main.yml index 6ed573f9d76bbd064565c477bec206588e12c3b4..8e7ae64cbdff79976ba9873e33e0ce685d8d51be 100644 --- a/mysql_ansible/roles/make_mha/tasks/main.yml +++ b/mysql_ansible/roles/make_mha/tasks/main.yml @@ -1,6 +1,6 @@ - name: Check is mysqld install by dbops or not ansible.builtin.stat: - path: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}/master_slave_finish.flag" + path: "{{ datadir }}/master_slave_finish.flag" register: make_mha__p # - debug: var=make_mha__p diff --git a/mysql_ansible/roles/make_mha/templates/app.cnf.j2 b/mysql_ansible/roles/make_mha/templates/app.cnf.j2 index 75437ce010849dada35377179afdfe4a2d5126a4..88e12bba410b1d0647f0a021b3ee01c4d670749a 100644 --- a/mysql_ansible/roles/make_mha/templates/app.cnf.j2 +++ b/mysql_ansible/roles/make_mha/templates/app.cnf.j2 @@ -2,7 +2,7 @@ manager_workdir=/var/log/masterha/ manager_log=/var/log/masterha/manager.log remote_workdir=/tmp -master_binlog_dir={{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }} +master_binlog_dir={{ binlog_dir }} master_ip_failover_script=/usr/local/bin/master_ip_failover master_ip_online_change_script= /usr/local/bin/master_ip_online_change report_script=/usr/local/bin/send_report diff --git a/mysql_ansible/roles/make_replication/tasks/config_master_slaves.yml b/mysql_ansible/roles/make_replication/tasks/config_master_slaves.yml index d425fb14addde6926f14d76900a954940e676636..b88c59917e055cdc968bbecede24befa889af5bf 100644 --- a/mysql_ansible/roles/make_replication/tasks/config_master_slaves.yml +++ b/mysql_ansible/roles/make_replication/tasks/config_master_slaves.yml @@ -6,13 +6,7 @@ - name: Create replication user on master / Change master to and start slave on slave ansible.builtin.shell: > - {% if sock_type == 1 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ mysql_data_dir_base }}/data/{{ mysql_port }}/mysql.sock < /tmp/master_slaves.sql - {% elif sock_type == 2 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S /tmp/mysql{{ mysql_port }}.sock < /tmp/master_slaves.sql - {% elif sock_type == 3 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock < /tmp/master_slaves.sql - {% endif %} + {{ mysql_software_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password }} -S {{ socket }} < /tmp/master_slaves.sql changed_when: true - name: Clear temp file /tmp/master_slaves.sql diff --git a/mysql_ansible/roles/make_replication/tasks/main.yml b/mysql_ansible/roles/make_replication/tasks/main.yml index bbf4a5a344b60e2a6c3208da4d85660317c53297..3fcddc09588fe639c946fb314891ff935dbddbec 100644 --- a/mysql_ansible/roles/make_replication/tasks/main.yml +++ b/mysql_ansible/roles/make_replication/tasks/main.yml @@ -3,6 +3,6 @@ - name: Touch master_slave_finish.flag ansible.builtin.file: - path: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}/master_slave_finish.flag" + path: "{{ datadir }}/master_slave_finish.flag" state: touch mode: '0644' diff --git a/mysql_ansible/roles/mysql_server/tasks/create_mysql_fast_login.yml b/mysql_ansible/roles/mysql_server/tasks/create_mysql_fast_login.yml index f12bf8e04a9629ed650a5956bd04721a21f5a8a3..a9728aebbf09f563bb25d912f95a8877e0d9ceee 100644 --- a/mysql_ansible/roles/mysql_server/tasks/create_mysql_fast_login.yml +++ b/mysql_ansible/roles/mysql_server/tasks/create_mysql_fast_login.yml @@ -19,12 +19,17 @@ - name: Set up alias in .bashrc named —— {{ fcs_create_mysql_fast_login_name }} ansible.builtin.lineinfile: - dest: /home/mysql/.bashrc + dest: /home/{{ mysql_user }}/.bashrc regexp: '^alias {{ fcs_create_mysql_fast_login_name }}=' - line: 'alias {{ fcs_create_mysql_fast_login_name }}="mysql --login-path={{ fcs_create_mysql_fast_login_name }}"' + line: | + {% if fcs_mysql_fast_login_have_prompt %} + alias {{ fcs_create_mysql_fast_login_name }}="MYSQL_PS1=\"(\$(hostname):{{ mysql_port }})\\u@\\h-\\R:\\m:\\s [\\d]>\" mysql --login-path={{ fcs_create_mysql_fast_login_name }}" + {% else %} + alias {{ fcs_create_mysql_fast_login_name }}="mysql --login-path={{ fcs_create_mysql_fast_login_name }}" + {% endif %} state: present become: true - become_user: mysql + become_user: "{{ mysql_user }}" - name: Remove expect script from remote host ansible.builtin.file: diff --git a/mysql_ansible/roles/mysql_server/tasks/fail_if_flag_exists.yml b/mysql_ansible/roles/mysql_server/tasks/fail_if_flag_exists.yml index b539490b88f8fc36a7095c4f8c04a271f301838a..1d3a14c1fde477c5072ffa86e1cfd4f0370f2cc5 100644 --- a/mysql_ansible/roles/mysql_server/tasks/fail_if_flag_exists.yml +++ b/mysql_ansible/roles/mysql_server/tasks/fail_if_flag_exists.yml @@ -1,6 +1,6 @@ - name: Check if flag exists or not ansible.builtin.find: - paths: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}/" + paths: "{{ datadir }}/" patterns: '*_finish.flag' register: mysql_server__p diff --git a/mysql_ansible/roles/mysql_server/tasks/initialize_mysql_datadir.yml b/mysql_ansible/roles/mysql_server/tasks/initialize_mysql_datadir.yml index b4712bfc95d00aab428d4a9efcbe20ab6916ab43..f21ffb95522a676168d8cebac2021bea97be28a7 100644 --- a/mysql_ansible/roles/mysql_server/tasks/initialize_mysql_datadir.yml +++ b/mysql_ansible/roles/mysql_server/tasks/initialize_mysql_datadir.yml @@ -1,10 +1,10 @@ - name: Initialize-insecure for mysql-5.7.x - ansible.builtin.command: /usr/local/mysql/bin/mysqld --defaults-file={{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf --validate-password=off --initialize-insecure + ansible.builtin.command: /usr/local/mysql/bin/mysqld --defaults-file={{ mycnf_dir }}/my.cnf --validate-password=off --initialize-insecure when: " '-5.7' in mysql_package " changed_when: true - name: Initialize-insecure for mysql-8.0.x or mysql-8.4.x - ansible.builtin.command: /usr/local/mysql/bin/mysqld --defaults-file={{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf --initialize-insecure + ansible.builtin.command: /usr/local/mysql/bin/mysqld --defaults-file={{ mycnf_dir }}/my.cnf --initialize-insecure when: " '-8.0' in mysql_package or '-8.4' in mysql_package " changed_when: true diff --git a/mysql_ansible/roles/mysql_server/tasks/install_mysql.yml b/mysql_ansible/roles/mysql_server/tasks/install_mysql.yml index 9ccf1b18e4e6b0923989c0a9e549e878536eaa4b..455c21c9fce72a75daebb57570fcdae4fe2aebac 100644 --- a/mysql_ansible/roles/mysql_server/tasks/install_mysql.yml +++ b/mysql_ansible/roles/mysql_server/tasks/install_mysql.yml @@ -54,12 +54,12 @@ owner: "{{ mysql_user }}" group: "{{ mysql_group }}" -- name: Unarchive MySQL install package to {{ mysql_base_dir }} +- name: Unarchive MySQL install package to {{ mysql_software_dir }} ansible.builtin.unarchive: - creates: "{{ mysql_base_dir }}/bin/unarchive_mysql_package_finished" + creates: "{{ mysql_software_dir }}/bin/unarchive_mysql_package_finished" copy: false src: "/tmp/{{ mysql_package }}" - dest: "{{ mysql_base_dir }}" + dest: "{{ mysql_software_dir }}" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" extra_opts: @@ -67,14 +67,14 @@ - name: Touch unarchive_mysql_package_finished file ansible.builtin.file: - path: "{{ mysql_base_dir }}/bin/unarchive_mysql_package_finished" + path: "{{ mysql_software_dir }}/bin/unarchive_mysql_package_finished" mode: '0755' state: touch - name: Change owner to mysql user when: mysql_package.find('tar.gz') != -1 or mysql_package.find('tar.xz') != -1 ansible.builtin.file: - path: "{{ mysql_base_dir }}" + path: "{{ mysql_software_dir }}" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" recurse: true @@ -82,7 +82,7 @@ - name: Make link /database/mysql/mysql-xx.yy.gz to /usr/local/mysql when: mysql_package.find('tar.gz') != -1 or mysql_package.find('tar.xz') != -1 ansible.builtin.file: - src: "{{ mysql_base_dir }}" + src: "{{ mysql_software_dir }}" dest: /usr/local/mysql state: link owner: "{{ mysql_user }}" diff --git a/mysql_ansible/roles/mysql_server/tasks/main.yml b/mysql_ansible/roles/mysql_server/tasks/main.yml index 3c5a6a29dd6e97a6a6302e89d8db003a37844aef..633c77acca10dd5300f8aa0f481198acc2f9fa9a 100644 --- a/mysql_ansible/roles/mysql_server/tasks/main.yml +++ b/mysql_ansible/roles/mysql_server/tasks/main.yml @@ -38,7 +38,7 @@ - name: Touch single_finish.flag ansible.builtin.file: - path: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}/single_finish.flag" + path: "{{ datadir }}/single_finish.flag" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" state: touch diff --git a/mysql_ansible/roles/mysql_server/tasks/make_mysql_security.yml b/mysql_ansible/roles/mysql_server/tasks/make_mysql_security.yml index 7ae0a91d9fc0f7691d3a50d738acd0f46ac407b9..762deeee506bf74e308de0293596cec5e05ced88 100644 --- a/mysql_ansible/roles/mysql_server/tasks/make_mysql_security.yml +++ b/mysql_ansible/roles/mysql_server/tasks/make_mysql_security.yml @@ -6,13 +6,7 @@ - name: Make mysql secure ansible.builtin.shell: > - {% if sock_type == 1 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -uroot -S {{ mysql_data_dir_base }}/data/{{ mysql_port }}/mysql.sock < /tmp/make_mysql_secure.sql - {% elif sock_type == 2 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -uroot -S /tmp/mysql{{ mysql_port }}.sock < /tmp/make_mysql_secure.sql - {% elif sock_type == 3 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -uroot -S {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock < /tmp/make_mysql_secure.sql - {% endif %} + {{ mysql_software_dir }}/bin/mysql -hlocalhost -uroot -S {{ socket }} < /tmp/make_mysql_secure.sql changed_when: true - name: Remove temp file /tmp/make_mysql_secure.sql diff --git a/mysql_ansible/roles/mysql_server/tasks/mkdir_and_config_file.yml b/mysql_ansible/roles/mysql_server/tasks/mkdir_and_config_file.yml index 564d35bd888df500c0b0a1ca92787c04ce31933a..4124a4a3890e2d07684b1a630da803df44471613 100644 --- a/mysql_ansible/roles/mysql_server/tasks/mkdir_and_config_file.yml +++ b/mysql_ansible/roles/mysql_server/tasks/mkdir_and_config_file.yml @@ -1,93 +1,111 @@ -- name: Create mysql directories +- name: Check if MySQL directories exist + ansible.builtin.stat: + path: "{{ dir }}" + register: dir_stats + loop: + - "{{ mysql_software_dir }}" + - "{{ mysql_data_dir_base }}" + - "{{ mycnf_dir }}" + - "{{ datadir }}" + - "{{ tmpdir }}" + - "{{ binlog_dir }}" + - "{{ relaylog_dir }}" + - "{{ redolog_dir }}" + - "{{ socket_dir }}" + - "{{ mysqlx_socket_dir }}" + - "{{ slowlog_dir }}" + - "{{ errlog_dir }}" + - "{{ generallog_dir }}" + - "{{ auditlog_dir }}" + loop_control: + loop_var: dir + +# - name: Output directory status information +# debug: +# msg: +# - "Directory: {{ item.stat.path | default(item.invocation.module_args.path) }}" +# - "Exists: {{ item.stat.exists }}" +# loop: "{{ dir_stats.results }}" +# loop_control: +# loop_var: item + +- name: Create MySQL directories if they do not exist ansible.builtin.file: - path: "{{ dir_path }}" + path: "{{ item.stat.path | default(item.invocation.module_args.path) }}" state: directory owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0755' - loop: - - "{{ mysql_data_dir_base }}/etc" - - "{{ mysql_data_dir_base }}/data" - - "{{ mysql_data_dir_base }}/tmp" - - "{{ mysql_data_dir_base }}/run" - - "{{ mysql_data_dir_base }}/log/binlog" - - "{{ mysql_data_dir_base }}/log/redolog" - - "{{ mysql_data_dir_base }}/log/relaylog" - - "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}" - - "{{ mysql_data_dir_base }}/data/{{ mysql_port }}" - - "{{ mysql_data_dir_base }}/tmp/{{ mysql_port }}" - - "{{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}" - - "{{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }}" - - "{{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}" - - "{{ mysql_base_dir }}" + when: not item.stat.exists + loop: "{{ dir_stats.results }}" loop_control: - loop_var: dir_path + loop_var: item -- name: Config /etc/my.cnf for mysql-5.7.x +- name: Config my.cnf for mysql-5.7.x when: mysql_version.startswith('5.7') and db_type == 'mysql' ansible.builtin.template: src: ../templates/5.7/my.cnf.j2 - dest: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" + dest: "{{ mycnf_dir }}/my.cnf" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0644' backup: true -- name: Config /etc/my.cnf for mysql-8.0.x +- name: Config my.cnf for mysql-8.0.x when: mysql_version.startswith('8.0') and db_type == 'mysql' ansible.builtin.template: src: ../templates/8.0/my.cnf.j2 - dest: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" + dest: "{{ mycnf_dir }}/my.cnf" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0644' backup: true -- name: Config /etc/my.cnf for mysql-8.4.x +- name: Config my.cnf for mysql-8.4.x when: mysql_version.startswith('8.4') and db_type == 'mysql' ansible.builtin.template: src: ../templates/8.4/my.cnf.j2 - dest: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" + dest: "{{ mycnf_dir }}/my.cnf" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0644' backup: true -- name: Config /etc/my.cnf for percona-5.7.x +- name: Config my.cnf for percona-5.7.x when: mysql_version.startswith('5.7') and db_type == 'percona' ansible.builtin.template: src: ../templates/5.7/percona-my.cnf.j2 - dest: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" + dest: "{{ mycnf_dir }}/my.cnf" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0644' backup: true -- name: Config /etc/my.cnf for percona-8.0.x +- name: Config my.cnf for percona-8.0.x when: mysql_version.startswith('8.0') and db_type == 'percona' ansible.builtin.template: src: ../templates/8.0/percona-my.cnf.j2 - dest: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" + dest: "{{ mycnf_dir }}/my.cnf" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0644' backup: true -- name: Config /etc/my.cnf for greatsql-5.7.x +- name: Config my.cnf for greatsql-5.7.x when: mysql_version.startswith('5.7') and db_type == 'greatsql' ansible.builtin.template: src: ../templates/5.7/greatsql-my.cnf.j2 - dest: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" + dest: "{{ mycnf_dir }}/my.cnf" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0644' backup: true -- name: Config /etc/my.cnf for greatsql-8.0.x +- name: Config my.cnf for greatsql-8.0.x when: mysql_version.startswith('8.0') and db_type == 'greatsql' ansible.builtin.template: src: ../templates/8.0/greatsql-my.cnf.j2 - dest: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}/my.cnf" + dest: "{{ mycnf_dir }}/my.cnf" owner: "{{ mysql_user }}" group: "{{ mysql_group }}" mode: '0644' diff --git a/mysql_ansible/roles/mysql_server/templates/5.7/my.cnf.j2 b/mysql_ansible/roles/mysql_server/templates/5.7/my.cnf.j2 index 27ed74c4838be7d206f26cc98b4d23f9e086e944..23ee9f125a62d17bba9ce240e0268c0b6446033a 100644 --- a/mysql_ansible/roles/mysql_server/templates/5.7/my.cnf.j2 +++ b/mysql_ansible/roles/mysql_server/templates/5.7/my.cnf.j2 @@ -4,9 +4,9 @@ auto-rehash [mysqld] ####: for global user ={{ mysql_user }} # mysql -basedir ={{ mysql_base_dir }} # /usr/local/mysql/ -datadir ={{ mysql_data_dir_base }}/data/{{mysql_port}} # /usr/local/mysql/data -tmpdir ={{ mysql_data_dir_base }}/tmp/{{mysql_port}} # /tmp +basedir = {{ mysql_software_dir }} # /usr/local/mysql/ +datadir = {{ datadir }} # /usr/local/mysql/data +tmpdir = {{ tmpdir }} server_id ={{ mysql_server_id }} # 0 port ={{ mysql_port }} # 3306 character_set_server ={{ mysql_character_set_server }} # latin1 @@ -30,18 +30,12 @@ disabled_storage_engines=archive,blackhole,example,federated,memory,merge,ndb plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so" pid_file=mysqld.pid transaction_isolation ={{ mysql_transaction_isolation }} #RR -{% if sock_type == 1 %} -socket = mysql.sock # /tmp/mysql.sock -{% elif sock_type == 2 %} -socket = /tmp/mysql{{ mysql_port }}.sock -{% elif sock_type == 3 %} -socket = {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock -{% endif %} +socket = {{ socket }} # /tmp/mysql.sock ####: for binlog binlog_format ={{mysql_binlog_format}} # row binlog_error_action =abort_server # abort_server -log_bin ={{ mysql_data_dir_base }}/log/binlog/{{mysql_port}}/mysql-bin # off +log_bin = {{ binlog_dir }}/mysql-bin # OFF binlog_rows_query_log_events =on # off log_slave_updates =on # off expire_logs_days =8 # 0 @@ -57,16 +51,16 @@ sync_binlog =1 # 1 slave_preserve_commit_order =ON # OFF ####: for error-log -log_error =err.log # /usr/local/mysql/data/localhost.localdomain.err +log_error ={{ errlog_dir }}/error.log # /usr/local/mysql/data/localhost.localdomain.err {# set general log #} general_log =off # off -general_log_file =general.log # hostname.log +general_log_file ={{ generallog_dir }}/general.log # hostname.log {# set general log #} ####: for slow query log slow_query_log =on # off -slow_query_log_file =slow.log # hostname-slow.log +slow_query_log_file ={{ slowlog_dir }}/slow.log # hostname-slow.log log_queries_not_using_indexes =off # off long_query_time =2.000000 # 10.000000 @@ -78,7 +72,7 @@ enforce_gtid_consistency =on # off ####: for replication skip_slave_start =0 # -relay_log ={{ mysql_data_dir_base }}/log/relaylog/{{mysql_port}}/relay-bin +relay_log ={{ relaylog_dir }}/relay-bin relay_log_recovery=1 master_info_repository =table # file relay_log_info_repository =table # file @@ -101,7 +95,7 @@ default_tmp_storage_engine =innodb # in innodb_data_file_path =ibdata1:64M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_pool -innodb_log_group_home_dir ={{ mysql_data_dir_base }}/log/redolog/{{mysql_port}} # ./ +innodb_log_group_home_dir ={{ redolog_dir }} # ./ innodb_log_files_in_group ={{ mysql57_innodb_log_files_in_group }} # 2 innodb_log_file_size ={{ mysql57_innodb_log_file_size }} # 50331648(48M) innodb_file_per_table =on # on diff --git a/mysql_ansible/roles/mysql_server/templates/5.7/percona-my.cnf.j2 b/mysql_ansible/roles/mysql_server/templates/5.7/percona-my.cnf.j2 index 753e5c01814ca8d0c74fef68f04dc1df8a712c05..81e315eaceecad01c90fedc87d1eafc8f6874eb2 100644 --- a/mysql_ansible/roles/mysql_server/templates/5.7/percona-my.cnf.j2 +++ b/mysql_ansible/roles/mysql_server/templates/5.7/percona-my.cnf.j2 @@ -4,9 +4,9 @@ auto-rehash [mysqld] ####: for global user ={{ mysql_user }} # mysql -basedir ={{ mysql_base_dir }} # /usr/local/mysql/ -datadir ={{ mysql_data_dir_base }}/data/{{mysql_port}} # /usr/local/mysql/data -tmpdir ={{ mysql_data_dir_base }}/tmp/{{mysql_port}} # /tmp +basedir = {{ mysql_software_dir }} # /usr/local/mysql/ +datadir = {{ datadir }} # /usr/local/mysql/data +tmpdir = {{ tmpdir }} server_id ={{ mysql_server_id }} # 0 port ={{ mysql_port }} # 3306 character_set_server ={{ mysql_character_set_server }} # latin1 @@ -30,18 +30,12 @@ disabled_storage_engines=archive,blackhole,example,federated,memory,merge,ndb plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so" pid_file=mysqld.pid transaction_isolation ={{ mysql_transaction_isolation }} #RR -{% if sock_type == 1 %} -socket = mysql.sock # /tmp/mysql.sock -{% elif sock_type == 2 %} -socket = /tmp/mysql{{ mysql_port }}.sock -{% elif sock_type == 3 %} -socket = {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock -{% endif %} +socket = {{ socket }} # /tmp/mysql.sock ####: for binlog binlog_format ={{mysql_binlog_format}} # row binlog_error_action =abort_server # abort_server -log_bin ={{ mysql_data_dir_base }}/log/binlog/{{mysql_port}}/mysql-bin # off +log_bin ={{ binlog_dir }}/mysql-bin # off binlog_rows_query_log_events =on # off log_slave_updates =on # off expire_logs_days =8 # 0 @@ -57,16 +51,16 @@ sync_binlog =1 # 1 slave_preserve_commit_order =ON # OFF ####: for error-log -log_error =err.log # /usr/local/mysql/data/localhost.localdomain.err +log_error ={{ errlog_dir }}/error.log # /usr/local/mysql/data/localhost.localdomain.err {# set general log #} general_log =off # off -general_log_file =general.log # hostname.log +general_log_file ={{ generallog_dir }}/general.log # hostname.log {# set general log #} ####: for slow query log slow_query_log =on # off -slow_query_log_file =slow.log # hostname-slow.log +slow_query_log_file ={{ slowlog_dir }}/slow.log # hostname-slow.log log_queries_not_using_indexes =off # off long_query_time =2.000000 # 10.000000 @@ -78,7 +72,7 @@ enforce_gtid_consistency =on # off ####: for replication skip_slave_start =0 # -relay_log ={{ mysql_data_dir_base }}/log/relaylog/{{mysql_port}}/relay-bin +relay_log ={{ relaylog_dir }}/relay-bin relay_log_recovery=1 master_info_repository =table # file relay_log_info_repository =table # file @@ -101,7 +95,7 @@ default_tmp_storage_engine =innodb # in innodb_data_file_path =ibdata1:64M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_pool -innodb_log_group_home_dir ={{ mysql_data_dir_base }}/log/redolog/{{mysql_port}} # ./ +innodb_log_group_home_dir ={{ redolog_dir }} # ./ innodb_log_files_in_group ={{ mysql57_innodb_log_files_in_group }} # 2 innodb_log_file_size ={{ mysql57_innodb_log_file_size }} # 50331648(48M) innodb_file_per_table =on # on @@ -217,7 +211,7 @@ performance-schema-instrument ='memory #percona special plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so;audit_log.so" -loose-audit_log_file='{{ mysql_data_dir_base }}/log/binlog/{{mysql_port}}/audit.log' +loose-audit_log_file='{{ auditlog_dir }}/audit.log' loose-audit_log_rotations=99 loose-audit_log_rotate_on_size=1G loose-audit_log_include_databases='test' diff --git a/mysql_ansible/roles/mysql_server/templates/8.0/greatsql-my.cnf.j2 b/mysql_ansible/roles/mysql_server/templates/8.0/greatsql-my.cnf.j2 index 707c95754adce11d0559ad49264868b1c43e792d..2fc1311e5c3c7ecf08531977885b92dafc68f9fb 100644 --- a/mysql_ansible/roles/mysql_server/templates/8.0/greatsql-my.cnf.j2 +++ b/mysql_ansible/roles/mysql_server/templates/8.0/greatsql-my.cnf.j2 @@ -4,9 +4,9 @@ auto-rehash [mysqld] ####: for global user ={{ mysql_user }} # mysql -basedir ={{ mysql_base_dir }} # /usr/local/mysql/ -datadir ={{ mysql_data_dir_base }}/data/{{ mysql_port }} # /usr/local/mysql/data -tmpdir ={{ mysql_data_dir_base }}/tmp/{{ mysql_port }} +basedir = {{ mysql_software_dir }} # /usr/local/mysql/ +datadir = {{ datadir }} # /usr/local/mysql/data +tmpdir = {{ tmpdir }} server_id ={{ mysql_server_id }} # 0 port ={{ mysql_port }} # 3306 character_set_server ={{ mysql_character_set_server }} # utf8mb4 @@ -30,22 +30,13 @@ local_infile =off # off disabled_storage_engines=archive,blackhole,example,federated,memory,merge,ndb,myisam plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so" transaction_isolation ={{ mysql_transaction_isolation }} #RR -{% if sock_type == 1 %} -socket = mysql.sock # /tmp/mysql.sock -mysqlx_socket = mysqlx.sock # /tmp/mysqlx.sock -{% elif sock_type == 2 %} -socket = /tmp/mysql{{ mysql_port }}.sock -mysqlx_socket = /tmp/mysqlx{{ mysql_port }}.sock -{% elif sock_type == 3 %} -socket = {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock -mysqlx_socket = {{ mysql_data_dir_base }}/run/mysqlx{{ mysql_port }}.sock -{% endif %} - +socket = {{ socket }} # /tmp/mysql.sock +mysqlx_socket = {{ mysqlx_socket }} # /tmp/mysqlx.sock ####: for binlog binlog_format ={{ mysql_binlog_format }} # row binlog_error_action =abort_server # abort_server -log_bin ={{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}/mysql-bin # off +log_bin ={{ binlog_dir }}/mysql-bin # OFF binlog_rows_query_log_events =on # off log_slave_updates =on # off {# set binlog cache size #} @@ -61,14 +52,14 @@ slave_preserve_commit_order =ON # OFF ####: for error-log -log_error =mysql-error.log # /usr/local/mysql/data/localhost.localdomain.err +log_error ={{ errlog_dir }}/error.log # /usr/local/mysql/data/localhost.localdomain.err general_log =off # off -general_log_file =general.log # hostname.log +general_log_file ={{ generallog_dir }}/general.log # hostname.log ####: for slow query log slow_query_log =on # off -slow_query_log_file =slow.log # hostname.log +slow_query_log_file ={{ slowlog_dir }}/slow.log # hostname.log log_queries_not_using_indexes =off # off long_query_time =2.000000 # 10.000000 @@ -80,7 +71,7 @@ enforce_gtid_consistency =on # off ####: for replication skip_slave_start =0 # 0 -relay_log ={{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}/relay-bin +relay_log ={{ relaylog_dir }}/relay-bin relay_log_recovery=1 master_info_repository =table # file relay_log_info_repository =table # file @@ -104,7 +95,7 @@ default_tmp_storage_engine =innodb # innodb_data_file_path =ibdata1:64M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_pool -innodb_log_group_home_dir ={{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }} # ./ +innodb_log_group_home_dir ={{ redolog_dir }} # ./ {% if server_specs != "auto" %} {% set server_specs_memtotal_gb_int = server_specs_memtotal_gb | int %} {% if mysql_version is version('8.0.30', '<') %} @@ -276,7 +267,7 @@ performance_schema_show_processlist=on # off #percona special plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so;audit_log.so" -loose-audit_log_file='{{ mysql_data_dir_base }}/log/binlog/{{mysql_port}}/audit.log' +loose-audit_log_file='{{ auditlog_dir }}/audit.log' loose-audit_log_rotations=99 loose-audit_log_rotate_on_size=1G loose-audit_log_include_databases='test' diff --git a/mysql_ansible/roles/mysql_server/templates/8.0/my.cnf.j2 b/mysql_ansible/roles/mysql_server/templates/8.0/my.cnf.j2 index b7d2942766d511e05f33809e1e69e1506ccbafd6..fa99df70171edade61e94c21f41255bbd9babdcd 100644 --- a/mysql_ansible/roles/mysql_server/templates/8.0/my.cnf.j2 +++ b/mysql_ansible/roles/mysql_server/templates/8.0/my.cnf.j2 @@ -4,9 +4,9 @@ auto-rehash [mysqld] ####: for global user ={{ mysql_user }} # mysql -basedir ={{ mysql_base_dir }} # /usr/local/mysql/ -datadir ={{ mysql_data_dir_base }}/data/{{ mysql_port }} # /usr/local/mysql/data -tmpdir ={{ mysql_data_dir_base }}/tmp/{{ mysql_port }} +basedir = {{ mysql_software_dir }} # /usr/local/mysql/ +datadir = {{ datadir }} # /usr/local/mysql/data +tmpdir = {{ tmpdir }} server_id ={{ mysql_server_id }} # 0 port ={{ mysql_port }} # 3306 character_set_server ={{ mysql_character_set_server }} # utf8mb4 @@ -30,22 +30,13 @@ local_infile =off # off disabled_storage_engines=archive,blackhole,example,federated,memory,merge,ndb,myisam plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so" transaction_isolation ={{ mysql_transaction_isolation }} # REPEATABLE-READ -{% if sock_type == 1 %} -socket = mysql.sock # /tmp/mysql.sock -mysqlx_socket = mysqlx.sock # /tmp/mysqlx.sock -{% elif sock_type == 2 %} -socket = /tmp/mysql{{ mysql_port }}.sock -mysqlx_socket = /tmp/mysqlx{{ mysql_port }}.sock -{% elif sock_type == 3 %} -socket = {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock -mysqlx_socket = {{ mysql_data_dir_base }}/run/mysqlx{{ mysql_port }}.sock -{% endif %} - +socket = {{ socket }} # /tmp/mysql.sock +mysqlx_socket = {{ mysqlx_socket }} # /tmp/mysqlx.sock ####: for binlog binlog_format ={{ mysql_binlog_format }} # row binlog_error_action =abort_server # abort_server -log_bin ={{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}/mysql-bin # off +log_bin = {{ binlog_dir }}/mysql-bin # OFF binlog_rows_query_log_events =on # off log_slave_updates =on # off {# set binlog cache size #} @@ -61,14 +52,14 @@ slave_preserve_commit_order =ON # OFF ####: for error-log -log_error =mysql-error.log # /usr/local/mysql/data/localhost.localdomain.err +log_error = {{ errlog_dir }}/error.log # hostname.err -general_log =off # off +general_log_file = {{ generallog_dir }}/general.log # hostname.log general_log_file =general.log # hostname.log ####: for slow query log slow_query_log =on # off -slow_query_log_file =slow.log # hostname.log +slow_query_log_file = {{ slowlog_dir }}/slow.log # hostname.log log_queries_not_using_indexes =off # off long_query_time =2.000000 # 10.000000 @@ -80,7 +71,7 @@ enforce_gtid_consistency =on # off ####: for replication skip_slave_start =0 # 0 -relay_log ={{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}/relay-bin +relay_log = {{ relaylog_dir }}/relay-bin relay_log_recovery=1 master_info_repository =table # file relay_log_info_repository =table # file @@ -104,7 +95,7 @@ default_tmp_storage_engine =innodb # innodb_data_file_path =ibdata1:64M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_pool -innodb_log_group_home_dir ={{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }} # ./ +innodb_log_group_home_dir = {{ redolog_dir }} # datadir {% if server_specs != "auto" %} {% set server_specs_memtotal_gb_int = server_specs_memtotal_gb | int %} {% if mysql_version is version('8.0.30', '<') %} diff --git a/mysql_ansible/roles/mysql_server/templates/8.0/percona-my.cnf.j2 b/mysql_ansible/roles/mysql_server/templates/8.0/percona-my.cnf.j2 index da21a101c71b5eb486b4e668ae474b23977f1bd2..2481dc7fd1acfb7f9a887492e5a67de0001f2033 100644 --- a/mysql_ansible/roles/mysql_server/templates/8.0/percona-my.cnf.j2 +++ b/mysql_ansible/roles/mysql_server/templates/8.0/percona-my.cnf.j2 @@ -4,9 +4,9 @@ auto-rehash [mysqld] ####: for global user ={{ mysql_user }} # mysql -basedir ={{ mysql_base_dir }} # /usr/local/mysql/ -datadir ={{ mysql_data_dir_base }}/data/{{ mysql_port }} # /usr/local/mysql/data -tmpdir ={{ mysql_data_dir_base }}/tmp/{{ mysql_port }} +basedir = {{ mysql_software_dir }} # /usr/local/mysql/ +datadir = {{ datadir }} # /usr/local/mysql/data +tmpdir = {{ tmpdir }} server_id ={{ mysql_server_id }} # 0 port ={{ mysql_port }} # 3306 character_set_server ={{ mysql_character_set_server }} # utf8mb4 @@ -30,22 +30,14 @@ local_infile =off # off disabled_storage_engines=archive,blackhole,example,federated,memory,merge,ndb,myisam plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so" transaction_isolation ={{ mysql_transaction_isolation }} #RR -{% if sock_type == 1 %} -socket = mysql.sock # /tmp/mysql.sock -mysqlx_socket = mysqlx.sock # /tmp/mysqlx.sock -{% elif sock_type == 2 %} -socket = /tmp/mysql{{ mysql_port }}.sock -mysqlx_socket = /tmp/mysqlx{{ mysql_port }}.sock -{% elif sock_type == 3 %} -socket = {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock -mysqlx_socket = {{ mysql_data_dir_base }}/run/mysqlx{{ mysql_port }}.sock -{% endif %} +socket = {{ socket }} # /tmp/mysql.sock +mysqlx_socket = {{ mysqlx_socket }} # /tmp/mysqlx.sock ####: for binlog binlog_format ={{ mysql_binlog_format }} # row binlog_error_action =abort_server # abort_server -log_bin ={{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}/mysql-bin # off +log_bin = {{ binlog_dir }}/mysql-bin # OFF binlog_rows_query_log_events =on # off log_slave_updates =on # off {# set binlog cache size #} @@ -61,14 +53,14 @@ slave_preserve_commit_order =ON # OFF ####: for error-log -log_error =mysql-error.log # /usr/local/mysql/data/localhost.localdomain.err +log_error ={{ errlog_dir }}/error.log # /usr/local/mysql/data/localhost.localdomain.err general_log =off # off -general_log_file =general.log # hostname.log +general_log_file ={{ generallog_dir }}/general.log # hostname.log ####: for slow query log slow_query_log =on # off -slow_query_log_file =slow.log # hostname.log +slow_query_log_file ={{ slowlog_dir }}/slow.log # hostname.log log_queries_not_using_indexes =off # off long_query_time =2.000000 # 10.000000 @@ -80,7 +72,7 @@ enforce_gtid_consistency =on # off ####: for replication skip_slave_start =0 # 0 -relay_log ={{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}/relay-bin +relay_log ={{ relaylog_dir }}/relay-bin relay_log_recovery=1 master_info_repository =table # file relay_log_info_repository =table # file @@ -104,7 +96,7 @@ default_tmp_storage_engine =innodb # innodb_data_file_path =ibdata1:64M:autoextend # ibdata1:12M:autoextend innodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextend innodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_pool -innodb_log_group_home_dir ={{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }} # ./ +innodb_log_group_home_dir ={{ redolog_dir }} # ./ {% if server_specs != "auto" %} {% set server_specs_memtotal_gb_int = server_specs_memtotal_gb | int %} {% if mysql_version is version('8.0.30', '<') %} @@ -274,7 +266,7 @@ performance_schema_show_processlist=on # off #percona special plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so;validate_password=validate_password.so;audit_log.so" -loose-audit_log_file='{{ mysql_data_dir_base }}/log/binlog/{{mysql_port}}/audit.log' +loose-audit_log_file='{{ auditlog_dir }}/audit.log' loose-audit_log_rotations=99 loose-audit_log_rotate_on_size=1G loose-audit_log_include_databases='test' diff --git a/mysql_ansible/roles/mysql_server/templates/8.4/my.cnf.j2 b/mysql_ansible/roles/mysql_server/templates/8.4/my.cnf.j2 index 89f15c9c4c2df18f7f0342e619f727fc37d34aae..cc3aa50a15d5b9998a9f198c1ee87113e95214f7 100644 --- a/mysql_ansible/roles/mysql_server/templates/8.4/my.cnf.j2 +++ b/mysql_ansible/roles/mysql_server/templates/8.4/my.cnf.j2 @@ -4,26 +4,19 @@ auto-rehash [mysqld] ##: User Configuration ####: Global Configuration Defaults -user = {{ mysql_user }} # mysql -basedir = {{ mysql_base_dir }} # /usr/local/mysql/ -datadir = {{ mysql_data_dir_base }}/data/{{ mysql_port }} # /usr/local/mysql/data -tmpdir = {{ mysql_data_dir_base }}/tmp/{{ mysql_port }} -log_bin = {{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}/mysql-bin # ON -relay_log = {{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}/relay-bin -innodb_log_group_home_dir = {{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }} # datadir +user = {{ mysql_user }} # mysql +basedir = {{ mysql_software_dir }} # /usr/local/mysql/ +datadir = {{ datadir }} # /usr/local/mysql/data +tmpdir = {{ tmpdir }} +log_bin = {{ binlog_dir }}/mysql-bin # ON +relay_log = {{ relaylog_dir }}/relay-bin +innodb_log_group_home_dir = {{ redolog_dir }} # datadir port = {{ mysql_port }} # 3306 admin_port = {{ (mysql_port*10 + 2) | string }} # 33062 mysqlx_port = {{ (mysql_port*10) | string }} # 33060 -{% if sock_type == 1 %} -socket = mysql.sock # /tmp/mysql.sock -mysqlx_socket = mysqlx.sock # /tmp/mysqlx.sock -{% elif sock_type == 2 %} -socket = /tmp/mysql{{ mysql_port }}.sock -mysqlx_socket = /tmp/mysqlx{{ mysql_port }}.sock -{% elif sock_type == 3 %} -socket = {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock -mysqlx_socket = {{ mysql_data_dir_base }}/run/mysqlx{{ mysql_port }}.sock -{% endif %} +socket = {{ socket }} # /tmp/mysql.sock +mysqlx_socket = {{ mysqlx_socket }} # /tmp/mysqlx.sock + ####: Customizable User Settings character_set_server = {{ mysql_character_set_server }} # utf8mb4 @@ -136,14 +129,14 @@ binlog_group_commit_sync_delay = 500 binlog_group_commit_sync_no_delay_count = 13 # 0 ####: for error-log -log_error = error.log # hostname.err +log_error = {{ errlog_dir }}/error.log # hostname.err general_log = OFF # OFF -general_log_file = general.log # hostname.log +general_log_file = {{ generallog_dir }}/general.log # hostname.log ####: for slow query log slow_query_log = ON # OFF -slow_query_log_file = slow.log # hostname.log +slow_query_log_file = {{ slowlog_dir }}/slow.log # hostname.log log_queries_not_using_indexes = OFF # OFF long_query_time = 2.000000 # 10.000000 diff --git a/mysql_ansible/roles/mysql_server/templates/mysql.conf.j2 b/mysql_ansible/roles/mysql_server/templates/mysql.conf.j2 index 90a7a540a8a1073b7e08b878ff9c55ba5a48ba4c..25a5ad6c7bf6d34ec4ed883f10d6341777bfedd7 100644 --- a/mysql_ansible/roles/mysql_server/templates/mysql.conf.j2 +++ b/mysql_ansible/roles/mysql_server/templates/mysql.conf.j2 @@ -1 +1 @@ -{{mysql_base_dir + '/lib/'}} +{{mysql_software_dir + '/lib/'}} diff --git a/mysql_ansible/roles/mysql_server/templates/mysql.service.j2 b/mysql_ansible/roles/mysql_server/templates/mysql.service.j2 index 68ff4d276c01724117c02eca80018e6a58f6eb10..6be389db88c1f02747db1a3a6037acf94d51474a 100644 --- a/mysql_ansible/roles/mysql_server/templates/mysql.service.j2 +++ b/mysql_ansible/roles/mysql_server/templates/mysql.service.j2 @@ -14,7 +14,7 @@ AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW {% endif %} User={{ mysql_user }} Group={{ mysql_group }} -ExecStart={{mysql_base_dir}}/bin/mysqld --defaults-file={{mysql_data_dir_base}}/etc/{{mysql_port}}/my.cnf +ExecStart={{ mysql_software_dir }}/bin/mysqld --defaults-file={{ mycnf_dir }}/my.cnf LimitNOFILE = 65536 Restart=on-failure RestartPreventExitStatus=1 diff --git a/mysql_ansible/roles/mysql_server/templates/mysql_config_editor_script.exp.j2 b/mysql_ansible/roles/mysql_server/templates/mysql_config_editor_script.exp.j2 index b3eca7098e412b392536a9426001fe457c9f590d..fe00417e3fcc0c28b4946c9806a11f99d54ab591 100644 --- a/mysql_ansible/roles/mysql_server/templates/mysql_config_editor_script.exp.j2 +++ b/mysql_ansible/roles/mysql_server/templates/mysql_config_editor_script.exp.j2 @@ -4,13 +4,7 @@ set password "{{ mysql_admin_password }}" set username "{{ mysql_admin_user }}" -{% if sock_type == 1 %} -spawn {{mysql_base_dir}}/bin/mysql_config_editor set --login-path={{ fcs_create_mysql_fast_login_name }} --host=localhost --socket={{ mysql_data_dir_base }}/data/{{ mysql_port }}/mysql.sock --user=$username --password -{% elif sock_type == 2 %} -spawn {{mysql_base_dir}}/bin/mysql_config_editor set --login-path={{ fcs_create_mysql_fast_login_name }} --host=localhost --socket=/tmp/mysql{{ mysql_port }}.sock --user=$username --password -{% elif sock_type == 3 %} -spawn {{mysql_base_dir}}/bin/mysql_config_editor set --login-path={{ fcs_create_mysql_fast_login_name }} --host=localhost --socket={{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock --user=$username --password -{% endif %} +spawn {{mysql_software_dir}}/bin/mysql_config_editor set --login-path={{ fcs_create_mysql_fast_login_name }} --host=localhost --socket={{ socket }} --user=$username --password expect "Enter password: " send "$password\r" diff --git a/mysql_ansible/roles/mysqld_exporter/tasks/config_mysqld_exporter.yml b/mysql_ansible/roles/mysqld_exporter/tasks/config_mysqld_exporter.yml index fd6f5b4decfb146fd650c51539e2cbc26c5dbb06..3d13c5ba41f2104b0e9126702833f590c68c2315 100644 --- a/mysql_ansible/roles/mysqld_exporter/tasks/config_mysqld_exporter.yml +++ b/mysql_ansible/roles/mysqld_exporter/tasks/config_mysqld_exporter.yml @@ -7,13 +7,7 @@ - name: Create MySQL exporter database user ansible.builtin.shell: > - {% if sock_type == 1 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password}} -S {{ mysql_data_dir_base }}/data/{{ mysql_port }}/mysql.sock < /tmp/create_mysql_exporter_db_user.sql - {% elif sock_type == 2 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{{ mysql_admin_user }} -p{{ mysql_admin_password}} -S /tmp/mysql{{ mysql_port }}.sock < /tmp/create_mysql_exporter_db_user.sql - {% elif sock_type == 3 %} - {{ mysql_base_dir }}/bin/mysql -hlocalhost -u{ mysql_admin_user }} -p{{ mysql_admin_password}} -S {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock < /tmp/create_mysql_exporter_db_user.sql - {% endif %} + {{ mysql_software_dir }}/bin/mysql -hlocalhost -u{ mysql_admin_user }} -p{{ mysql_admin_password}} -S {{ socket }} < /tmp/create_mysql_exporter_db_user.sql changed_when: true when: fcs_role_mysqld_exporter_create_monitor_user diff --git a/mysql_ansible/roles/mysqld_exporter/templates/my.cnf.j2 b/mysql_ansible/roles/mysqld_exporter/templates/my.cnf.j2 index 11fd78f67034cf7642bc9e26fa1d4c50fca2bbd6..c3d666a7696e8f2ea168e8b011bdf5cf5ab9500f 100644 --- a/mysql_ansible/roles/mysqld_exporter/templates/my.cnf.j2 +++ b/mysql_ansible/roles/mysqld_exporter/templates/my.cnf.j2 @@ -1,10 +1,4 @@ [client] user = {{ mysql_monitor_user }} password = {{ mysql_monitor_password }} -{% if sock_type == 1 %} -socket = {{ mysql_data_dir_base }}/data/{{ mysql_port }}/mysql.sock -{% elif sock_type == 2 %} -socket = /tmp/mysql{{ mysql_port }}.sock -{% elif sock_type == 3 %} -socket = {{ mysql_data_dir_base }}/run/mysql{{ mysql_port }}.sock -{% endif %} +socket = {{ socket }} diff --git a/mysql_ansible/roles/pre_check_and_set/filter_plugins/__pycache__/path_filters.cpython-39.pyc b/mysql_ansible/roles/pre_check_and_set/filter_plugins/__pycache__/path_filters.cpython-39.pyc index 8c5675d243d8c56f4b41e7270718848953b70c07..a78e31def90e2b34bb14498bb3f0bfba7921973c 100644 Binary files a/mysql_ansible/roles/pre_check_and_set/filter_plugins/__pycache__/path_filters.cpython-39.pyc and b/mysql_ansible/roles/pre_check_and_set/filter_plugins/__pycache__/path_filters.cpython-39.pyc differ diff --git a/mysql_ansible/roles/unsafe_uninstall/tasks/main.yml b/mysql_ansible/roles/unsafe_uninstall/tasks/main.yml index 14363ff3a5a0b5405691d5cf89e36d43af55af93..387db0dc73bb3773770851ff01407bc42d393145 100644 --- a/mysql_ansible/roles/unsafe_uninstall/tasks/main.yml +++ b/mysql_ansible/roles/unsafe_uninstall/tasks/main.yml @@ -3,12 +3,28 @@ msg: "Unsafe uninstall not confirmed, exiting." when: confirmation.user_input != 'confirm' -- name: Stop mysql-service in rhel-7.x +- name: Ensure that directories to be deleted are safe + ansible.builtin.assert: + that: + - item not in ['/', '/boot', '/dev', '/etc', '/lib', '/proc', '/root', '/sys', '/usr', '/var', '/home', '/home/{{ mysql_user }}', '/tmp', '/proc', '/sys'] + - item != '' + fail_msg: "Unsafe directory detected: {{ item }}. Aborting." + success_msg: "Directory {{ item }} is safe to delete." + loop: + - "{{ datadir | realpath }}" + - "{{ tmpdir | realpath }}" + - "{{ binlog_dir | realpath }}" + - "{{ relaylog_dir | realpath }}" + - "{{ redolog_dir | realpath }}" + loop_control: + loop_var: item + +- name: Stop mysql-service ansible.builtin.systemd: name: "mysql{{ mysql_port }}" state: stopped -- name: Delete MySQL 5.7 startup script +- name: Delete MySQL startup script ansible.builtin.file: path: "/usr/lib/systemd/system/mysql{{ mysql_port }}.service" state: absent @@ -17,32 +33,18 @@ ansible.builtin.systemd: daemon_reload: true -- name: Remove data file +- name: Remove MySQL directories and files ansible.builtin.file: - name: "{{ mysql_data_dir_base }}/data/{{ mysql_port }}" - state: absent - -- name: Remove binlog file - ansible.builtin.file: - name: "{{ mysql_data_dir_base }}/log/binlog/{{ mysql_port }}" - state: absent - -- name: Remove redolog file - ansible.builtin.file: - name: "{{ mysql_data_dir_base }}/log/redolog/{{ mysql_port }}" - state: absent - -- name: Remove relaylog file - ansible.builtin.file: - name: "{{ mysql_data_dir_base }}/log/relaylog/{{ mysql_port }}" - state: absent - -- name: Remove tmp file - ansible.builtin.file: - name: "{{ mysql_data_dir_base }}/tmp/{{ mysql_port }}" - state: absent - -- name: Remove etc file - ansible.builtin.file: - name: "{{ mysql_data_dir_base }}/etc/{{ mysql_port }}" + path: "{{ item }}" state: absent + become: true + become_user: "{{ mysql_user }}" + when: item is not none + loop: + - "{{ datadir }}" + - "{{ tmpdir }}" + - "{{ binlog_dir }}" + - "{{ relaylog_dir }}" + - "{{ redolog_dir }}" + loop_control: + loop_var: item diff --git a/opengauss_ansible/playbooks/common_config.yml b/opengauss_ansible/playbooks/common_config.yml index 166110e0674c98b3ce7c77f5b3f69aad54778718..7d5c10f91e7470ee52c3a438881844cda0a5643e 100644 --- a/opengauss_ansible/playbooks/common_config.yml +++ b/opengauss_ansible/playbooks/common_config.yml @@ -1,5 +1,5 @@ ## In most cases, just adjust these two parameters. -opengauss_version: "5.0.2" +opengauss_version: "6.0.0" opengauss_port: 5432 opengauss_user: omm @@ -25,12 +25,12 @@ opengauss_admin_password: Dbops@8888 ## opengauss postgresql.cnf ## Feature Control Switch -fcs_skip_db_mount_verification: 1 -fcs_skip_check_ntpd_or_chrony_running: 1 -fcs_auto_download_opengauss: 1 -fcs_create_opengauss_fast_login: 1 -fcs_opengauss_use_jemalloc: 0 -fcs_disable_command_history: 0 +fcs_skip_db_mount_verification: true +fcs_skip_check_ntpd_or_chrony_running: true +fcs_auto_download_opengauss: true +fcs_create_opengauss_fast_login: true +fcs_opengauss_use_jemalloc: false +fcs_disable_command_history: false ## Feature Control Switch vars fcs_create_opengauss_fast_login_name: "db{{ opengauss_port }}" diff --git a/opengauss_ansible/playbooks/default/common_config.yml b/opengauss_ansible/playbooks/default/common_config.yml index 166110e0674c98b3ce7c77f5b3f69aad54778718..7d5c10f91e7470ee52c3a438881844cda0a5643e 100644 --- a/opengauss_ansible/playbooks/default/common_config.yml +++ b/opengauss_ansible/playbooks/default/common_config.yml @@ -1,5 +1,5 @@ ## In most cases, just adjust these two parameters. -opengauss_version: "5.0.2" +opengauss_version: "6.0.0" opengauss_port: 5432 opengauss_user: omm @@ -25,12 +25,12 @@ opengauss_admin_password: Dbops@8888 ## opengauss postgresql.cnf ## Feature Control Switch -fcs_skip_db_mount_verification: 1 -fcs_skip_check_ntpd_or_chrony_running: 1 -fcs_auto_download_opengauss: 1 -fcs_create_opengauss_fast_login: 1 -fcs_opengauss_use_jemalloc: 0 -fcs_disable_command_history: 0 +fcs_skip_db_mount_verification: true +fcs_skip_check_ntpd_or_chrony_running: true +fcs_auto_download_opengauss: true +fcs_create_opengauss_fast_login: true +fcs_opengauss_use_jemalloc: false +fcs_disable_command_history: false ## Feature Control Switch vars fcs_create_opengauss_fast_login_name: "db{{ opengauss_port }}" diff --git a/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt b/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt index b2ef77cdd82df1c970e42b3c0db9688b7b99274d..f04b842c6550b28cdc10e65ecf9115873bb4b01c 100644 --- a/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt +++ b/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt @@ -12,13 +12,17 @@ panweidb 2.0.3 openEuler22 bd7b5ad3533ffe13dfca8f27691868a1c5dfe1effad009abfda16 panweidb 2.0.3 BigCloud8 5c6bc83afa5337bc94dbf32ad4da6a3c55a542a635a9633a08c0f0a903be1c80 PanWeiDB_V2.0-S2.0.3_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S2.0.3_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S2.0.3_B01-bclinux-64bit.tar.bz2 panweidb 2.0.3 CentOS7 09d124033173233acd5733d9191748e77e85569ef7e0cd34e201e3b84e996e96 PanWeiDB_V2.0-S2.0.3_B01-install-centos_7-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S2.0.3_B01-CentOS-64bit-om.tar.gz PanWeiDB_V2.0-S2.0.3_B01-CentOS-64bit.tar.bz2 panweidb 2.0.3 BigCloud21 38d625f45c56822b6414221141d469a56a5923a15669842709981b0b3693a711 PanWeiDB_V2.0-S2.0.3_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S2.0.3_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S2.0.3_B01-bclinux-64bit.tar.bz2 -opengauss 6.0.0 CentOS7 a5d18bb757cb924b4907189b9ae15f7c openGauss-All-6.0.0-CentOS7-x86_64.tar.gz openGauss-OM-6.0.0-CentOS7-x86_64.tar.gz openGauss-Server-6.0.0-CentOS7-x86_64.tar.bz2 -opengauss 6.0.0 openEuler22 916f5aecec9195ead0cc076befa16496 openGauss-All-6.0.0-openEuler22.03-x86_64.tar.gz openGauss-OM-6.0.0-openEuler22.03-x86_64.tar.gz openGauss-Server-6.0.0-openEuler22.03-x86_64.tar.bz2 -panweidb 3.0.0 CentOS7 9aed3a90a6f7c91be22b7496c7bff092 PanWeiDB_V2.0-S3.0.0_B01-install-centos_7-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-CentOS-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-CentOS-64bit.tar.bz2 -panweidb 3.0.0 openEuler22 2993af2def838a82ddc3b1c1b9aef70c PanWeiDB_V2.0-S3.0.0_B01-install-openeuler_22.03-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-openEuler-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-openEuler-64bit.tar.bz2 -panweidb 3.0.0 BigCloud8 467f707d6cfec367fe381700d31fb669 PanWeiDB_V2.0-S3.0.0_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit.tar.bz2 -panweidb 3.0.0 BigCloud21 521cf4174e139c671c7365ce7b04afb7 PanWeiDB_V2.0-S3.0.0_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit.tar.bz2 -panweidb 3.0.1 CentOS7 3c5b8c7d9fe407386546c4325f26ba60 PanWeiDB_V2.0-S3.0.1_B01-install-centos_7-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-CentOS-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-CentOS-64bit.tar.bz2 -panweidb 3.0.1 openEuler22 de8bd45dc57745837c75f469ff414a61 PanWeiDB_V2.0-S3.0.1_B01-install-openeuler_22.03-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-openEuler-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-openEuler-64bit.tar.bz2 -panweidb 3.0.1 BigCloud8 bad5df50f7c166b09d7b4b14005d3b0a PanWeiDB_V2.0-S3.0.1_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit.tar.bz2 -panweidb 3.0.1 BigCloud21 7bf3f07bed63f65501af2345144d3550 PanWeiDB_V2.0-S3.0.1_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit.tar.bz2 +opengauss 6.0.0 CentOS7 a163cb51e05f94144fc0cb58a4114270100c25d4ff6882dd3a4c0fde0b5e1302 openGauss-All-6.0.0-CentOS7-x86_64.tar.gz openGauss-OM-6.0.0-CentOS7-x86_64.tar.gz openGauss-Server-6.0.0-CentOS7-x86_64.tar.bz2 +opengauss 6.0.0 openEuler22 5bdb3a05936fb09388db78d0bda3fe3e8f6bce1521b2e253b51bcf86865fb873 openGauss-All-6.0.0-openEuler22.03-x86_64.tar.gz openGauss-OM-6.0.0-openEuler22.03-x86_64.tar.gz openGauss-Server-6.0.0-openEuler22.03-x86_64.tar.bz2 +panweidb 3.0.0 CentOS7 db94c6a368a6c3e52a459828db4266622ca630572f716c49b22677a6711f1fc6 PanWeiDB_V2.0-S3.0.0_B01-install-centos_7-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-CentOS-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-CentOS-64bit.tar.bz2 +panweidb 3.0.0 openEuler22 d82933444bef952d23a98ef728ffa19b20895dd42bb09c8fd4f42827abb80201 PanWeiDB_V2.0-S3.0.0_B01-install-openeuler_22.03-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-openEuler-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-openEuler-64bit.tar.bz2 +panweidb 3.0.0 BigCloud8 5860e5955627042333cf4f0e2368fbff6760534dbae98bab62e354c04b046263 PanWeiDB_V2.0-S3.0.0_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit.tar.bz2 +panweidb 3.0.0 BigCloud21 32107dde38cf7e24776640450665531163ca91b7330cf13cbd8bdaa8efd07acc PanWeiDB_V2.0-S3.0.0_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.0_B01-bclinux-64bit.tar.bz2 +panweidb 3.0.1 CentOS7 cf45767a2f1960d0f174d2a0ebbffb114d19a11ff3cc8ea01f36497749d9ea0b PanWeiDB_V2.0-S3.0.1_B01-install-centos_7-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-CentOS-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-CentOS-64bit.tar.bz2 +panweidb 3.0.1 openEuler22 41dd715700f1dc359e1fc35ff20732195dfdd37d3890c104d7e06e692e003dfb PanWeiDB_V2.0-S3.0.1_B01-install-openeuler_22.03-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-openEuler-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-openEuler-64bit.tar.bz2 +panweidb 3.0.1 BigCloud8 f0a4d6c81a5aefee728c00ed132a19cbf14e8a83577d659a24b897f2e3065654 PanWeiDB_V2.0-S3.0.1_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit.tar.bz2 +panweidb 3.0.1 BigCloud21 adc4dd6abdf2e03d74f85dc851cc050c3beb3cc94d4c8c15fe0cc1cee04baaaa PanWeiDB_V2.0-S3.0.1_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.1_B01-bclinux-64bit.tar.bz2 +panweidb 3.0.2 CentOS7 e6c4bd2161ed40136ced9fdd73d6179c681f86d45a2185975d86b87c1fcb9655 PanWeiDB_V2.0-S3.0.2_B02-install-centos_7-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.2_B02-CentOS-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.2_B02-CentOS-64bit.tar.bz2 +panweidb 3.0.2 openEuler22 4cf265c64c84b24295807682325934be203ad17d1bd966511e8c5bd434b0a71c PanWeiDB_V2.0-S3.0.2_B02-install-openeuler_22.03-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.2_B02-openEuler-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.2_B02-openEuler-64bit.tar.bz2 +panweidb 3.0.2 BigCloud8 d511088e6db3c6a7fe4e4b1f6a84c6155ca12afa5aec6d4b7d01aeb9f33aaa6c PanWeiDB_V2.0-S3.0.2_B02-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.2_B02-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.2_B02-bclinux-64bit.tar.bz2 +panweidb 3.0.2 BigCloud21 29ebb64ed442654afb9b8575c24a9fe388a03f52b9b0f532ea38ddbbdfbebaca PanWeiDB_V2.0-S3.0.2_B02-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.0.2_B02-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.0.2_B02-bclinux-64bit.tar.bz2 diff --git a/opengauss_ansible/playbooks/pre_tasks/check_if_packages_exist.yml b/opengauss_ansible/playbooks/pre_tasks/check_if_packages_exist.yml index 46052ddc2c124db842be7f3a77ca4d6de82cfc2a..a04094f5bd2d71be584b95861646fd58d1d37023 100644 --- a/opengauss_ansible/playbooks/pre_tasks/check_if_packages_exist.yml +++ b/opengauss_ansible/playbooks/pre_tasks/check_if_packages_exist.yml @@ -1,3 +1,3 @@ -- name: Check if packages exist when fcs_auto_download_opengauss == 0 +- name: Check if packages exist when not fcs_auto_download_opengauss or db_type not opengauss ansible.builtin.include_tasks: check_if_packages_exist_when_fcs_auto_download_opengauss_false.yml - when: fcs_auto_download_opengauss == 0 + when: not fcs_auto_download_opengauss or db_type != "opengauss" diff --git a/opengauss_ansible/playbooks/pre_tasks/validate_common_config_setting.yml b/opengauss_ansible/playbooks/pre_tasks/validate_common_config_setting.yml index 8987d4c2ce2bc9f1afd9f2778bfceaad5589e424..81bb72e7e8045e5995d0ff26127f04dfb5139149 100644 --- a/opengauss_ansible/playbooks/pre_tasks/validate_common_config_setting.yml +++ b/opengauss_ansible/playbooks/pre_tasks/validate_common_config_setting.yml @@ -25,9 +25,9 @@ at least 1 lowercase letter, at least 1 special character. when: password_check.results | selectattr('msg','equalto','Assertion failed') |list | length > 0 -- name: Validate fcs_ setting are 0 or 1 +- name: Validate fcs_ settings are true or false fail: - msg: "{{ item }} value is not 0 or 1." + msg: "{{ item }} value is not true or false." loop: - fcs_skip_db_mount_verification - fcs_skip_check_ntpd_or_chrony_running @@ -37,7 +37,7 @@ - fcs_opengauss_use_jemalloc - fcs_disable_command_history when: - - vars[item] not in [0, 1] + - vars[item] is not boolean - name: Validate opengauss_port is within range fail: @@ -50,7 +50,7 @@ msg: "`opengauss_version`: {{ opengauss_version }} for {{ db_type }} is not test so not support!" when: (db_type == 'opengauss' and opengauss_version not in ['5.0.0', '5.0.1', '5.0.2', '6.0.0']) or - (db_type == 'panweidb' and opengauss_version not in ['2.0.2', '2.0.3', '3.0.0']) + (db_type == 'panweidb' and opengauss_version not in ['2.0.2', '2.0.3', '3.0.0', '3.0.2']) # panweidb 3.0.1 package is not supported due to bugs that prevent installation - name: Validate db_type is a valid option diff --git a/opengauss_ansible/roles/enterprise_deployment/tasks/main.yml b/opengauss_ansible/roles/enterprise_deployment/tasks/main.yml index 74f283135844e5b88a9ad8e5a3a2523d757292c3..cdc102d98864204ef981ac53a46a1959f7e200ec 100644 --- a/opengauss_ansible/roles/enterprise_deployment/tasks/main.yml +++ b/opengauss_ansible/roles/enterprise_deployment/tasks/main.yml @@ -10,9 +10,9 @@ - name: Create dir ansible.builtin.import_tasks: mkdir.yml -- name: Install jemalloc when fcs_opengauss_use_jemalloc == 1 +- name: Install jemalloc when fcs_opengauss_use_jemalloc true ansible.builtin.import_tasks: install_opengauss_dependents.yml - when: fcs_opengauss_use_jemalloc == 1 + when: fcs_opengauss_use_jemalloc - name: Remove packages if os_type equals to Bigcloud8 ansible.builtin.import_tasks: remove_packages.yml @@ -53,7 +53,7 @@ - name: Create opengauss fast login ansible.builtin.import_tasks: create_opengauss_fast_login.yml - when: fcs_create_opengauss_fast_login == 1 + when: fcs_create_opengauss_fast_login - name: Touch enterprise_deployment_finish.flag ansible.builtin.file: diff --git a/opengauss_ansible/roles/enterprise_deployment/tasks/transfer_packages_and_preinstall_opengauss.yml b/opengauss_ansible/roles/enterprise_deployment/tasks/transfer_packages_and_preinstall_opengauss.yml index 696a84f1beef7dac97e24026ccd5842edb754799..6fa106a200a1d4d796036a05aa18c2e15abf1e33 100644 --- a/opengauss_ansible/roles/enterprise_deployment/tasks/transfer_packages_and_preinstall_opengauss.yml +++ b/opengauss_ansible/roles/enterprise_deployment/tasks/transfer_packages_and_preinstall_opengauss.yml @@ -7,7 +7,7 @@ - name: Fail if openGauss package not found and auto download is disabled(local) ansible.builtin.fail: msg: "openGauss package not found and auto download is disabled" - when: not opengauss_server__package_file.stat.exists and fcs_auto_download_opengauss == 0 + when: not opengauss_server__package_file.stat.exists and not fcs_auto_download_opengauss delegate_to: 127.0.0.1 - name: Download openGauss binary tarball if not found locally and auto download is enabled(local) @@ -27,7 +27,7 @@ User-Agent: "Wget/1.21.1" when: - not opengauss_server__package_file.stat.exists - - fcs_auto_download_opengauss == 1 + - fcs_auto_download_opengauss - db_type == 'opengauss' delegate_to: 127.0.0.1 diff --git a/opengauss_ansible/roles/opengauss_server/tasks/install_opengauss.yml b/opengauss_ansible/roles/opengauss_server/tasks/install_opengauss.yml index 5825e405d297def662917a7256c8f2a8c8fbbe63..8aa65386822786f15b6ab7ec715d661eb8fcff02 100644 --- a/opengauss_ansible/roles/opengauss_server/tasks/install_opengauss.yml +++ b/opengauss_ansible/roles/opengauss_server/tasks/install_opengauss.yml @@ -7,7 +7,7 @@ - name: Fail if openGauss package not found and auto download is disabled(local) ansible.builtin.fail: msg: "openGauss package not found and auto download is disabled" - when: not opengauss_server__package_file.stat.exists and fcs_auto_download_opengauss == 0 + when: not opengauss_server__package_file.stat.exists and not fcs_auto_download_opengauss delegate_to: 127.0.0.1 - name: Download openGauss binary tarball if not found locally and auto download is enabled(local) @@ -27,7 +27,7 @@ User-Agent: "Wget/1.21.1" when: - not opengauss_server__package_file.stat.exists - - fcs_auto_download_opengauss == 1 + - fcs_auto_download_opengauss delegate_to: 127.0.0.1 - name: Transfer openGauss install package to remote host diff --git a/opengauss_ansible/roles/opengauss_server/tasks/main.yml b/opengauss_ansible/roles/opengauss_server/tasks/main.yml index cec314c8f7537bf48cfaa632f0f8b2628f60b94d..4f71d80b3488bebf8b3d71b7ef71ed24644657f2 100644 --- a/opengauss_ansible/roles/opengauss_server/tasks/main.yml +++ b/opengauss_ansible/roles/opengauss_server/tasks/main.yml @@ -10,9 +10,9 @@ - name: Create dir ansible.builtin.import_tasks: mkdir.yml -- name: Install jemalloc when fcs_opengauss_use_jemalloc == 1 +- name: Install jemalloc when fcs_opengauss_use_jemalloc true ansible.builtin.import_tasks: install_opengauss_dependents.yml - when: fcs_opengauss_use_jemalloc == 1 + when: fcs_opengauss_use_jemalloc - name: Install opengauss to /usr/local/opengauss ansible.builtin.import_tasks: install_opengauss.yml @@ -31,7 +31,7 @@ - name: Create opengauss fast login ansible.builtin.import_tasks: create_opengauss_fast_login.yml - when: fcs_create_opengauss_fast_login == 1 + when: fcs_create_opengauss_fast_login - name: Touch single_finish.flag ansible.builtin.file: diff --git a/opengauss_ansible/roles/opengauss_server/templates/opengauss.service.j2 b/opengauss_ansible/roles/opengauss_server/templates/opengauss.service.j2 index c3a7e303eced091e721fe1c2089d312b8d4ce060..4db30668d7e4fedee92fe2ff17aa34875eee2a6c 100644 --- a/opengauss_ansible/roles/opengauss_server/templates/opengauss.service.j2 +++ b/opengauss_ansible/roles/opengauss_server/templates/opengauss.service.j2 @@ -19,7 +19,7 @@ ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 -{% if fcs_opengauss_use_jemalloc == 1 %} +{% if fcs_opengauss_use_jemalloc %} {% if os_type in ['openEuler22','openEuler20'] %} Environment="LD_PRELOAD=/usr/lib64/libjemalloc.so.2" {% else %} diff --git a/opengauss_ansible/roles/set_linux/tasks/main.yml b/opengauss_ansible/roles/set_linux/tasks/main.yml index 11eaa93e189d5dd49bbfb9fb62bc8a7d37119ad2..95c69f7fd866eddd16254438a62c52096ff889dd 100644 --- a/opengauss_ansible/roles/set_linux/tasks/main.yml +++ b/opengauss_ansible/roles/set_linux/tasks/main.yml @@ -52,7 +52,7 @@ state: present - name: Check if NTP or Chrony is running - when: fcs_skip_check_ntpd_or_chrony_running == 0 + when: not fcs_skip_check_ntpd_or_chrony_running block: - name: Gather service facts ansible.builtin.service_facts: @@ -118,7 +118,7 @@ regexp: '^HISTSIZE=' line: 'HISTSIZE=0' state: present - when: fcs_disable_command_history == 1 + when: fcs_disable_command_history - name: Temporarily set transparent_hugepage to never ansible.builtin.shell: @@ -155,7 +155,7 @@ mode: '0644' - name: Check disk mount (数据盘是否独立挂载,是否xfs格式) - when: fcs_skip_db_mount_verification == 0 + when: not fcs_skip_db_mount_verification block: - name: Get all parent directories of gausshome ansible.builtin.set_fact: