diff --git a/mysql_ansible/inventory/hosts.ini b/mysql_ansible/inventory/hosts.ini index 44cafe00e17c3b7deb31eebc4dc0cbdca6a36396..c163b0977084dfa32ebda0b8f39dc48df30c477a 100644 --- a/mysql_ansible/inventory/hosts.ini +++ b/mysql_ansible/inventory/hosts.ini @@ -7,7 +7,8 @@ 192.168.199.136 ansible_user=root ansible_ssh_pass="'gta@2015'" 192.168.199.171 ansible_user=root ansible_ssh_pass="'gta@2015'" - +[dbops_sysbench] +192.168.199.171 ansible_user=root ansible_ssh_pass="'gta@2015'" [all:vars] #ansible_python_interpreter=/usr/bin/python3 diff --git a/mysql_ansible/playbooks/common_config.yml b/mysql_ansible/playbooks/common_config.yml index 2768a908e72ca959ca4a8742e198d94eb81c9909..42a5bde66f80f1fea4a94f214fddbc0118808877 100644 --- a/mysql_ansible/playbooks/common_config.yml +++ b/mysql_ansible/playbooks/common_config.yml @@ -1,5 +1,5 @@ ## In most cases, just adjust these two parameters. -mysql_version: "8.4.5" +mysql_version: "8.4.6" mysql_port: 3306 # The 'server_specs' variable defines the hardware specifications for the server deployment. diff --git a/mysql_ansible/playbooks/default/common_config.yml b/mysql_ansible/playbooks/default/common_config.yml index 2768a908e72ca959ca4a8742e198d94eb81c9909..42a5bde66f80f1fea4a94f214fddbc0118808877 100644 --- a/mysql_ansible/playbooks/default/common_config.yml +++ b/mysql_ansible/playbooks/default/common_config.yml @@ -1,5 +1,5 @@ ## In most cases, just adjust these two parameters. -mysql_version: "8.4.5" +mysql_version: "8.4.6" mysql_port: 3306 # The 'server_specs' variable defines the hardware specifications for the server deployment. diff --git a/mysql_ansible/playbooks/default/var_install_sysbench.yml b/mysql_ansible/playbooks/default/var_install_sysbench.yml new file mode 100644 index 0000000000000000000000000000000000000000..4426099f8f31549a968010ca0291f032e06572ea --- /dev/null +++ b/mysql_ansible/playbooks/default/var_install_sysbench.yml @@ -0,0 +1,2 @@ +sysbench_install_path: "/usr/local/sysbench" + diff --git a/mysql_ansible/playbooks/install_sysbench.yml b/mysql_ansible/playbooks/install_sysbench.yml new file mode 100644 index 0000000000000000000000000000000000000000..a99512581439c3eaa31a75be043c7f4b7eba65b0 --- /dev/null +++ b/mysql_ansible/playbooks/install_sysbench.yml @@ -0,0 +1,26 @@ +- name: Install sysbench (Source) + hosts: dbops_sysbench + become: true + vars_files: + - default/common_config.yml + - default/advanced_config.yml + - default/var_install_sysbench.yml + - common_config.yml + - advanced_config.yml + - vars/var_install_sysbench.yml + vars: + roles_to_execute: + - "../roles/install_sysbench" + pre_tasks: + - name: Import tasks to check os_type and python + ansible.builtin.import_tasks: pre_tasks/check_os_and_python.yml + + - name: Import confirmation tasks + ansible.builtin.import_tasks: pre_tasks/confirmation_sysbench.yml + + tasks: + - name: Include role + ansible.builtin.include_role: + name: "{{ item }}" + loop: "{{ roles_to_execute }}" + diff --git a/mysql_ansible/playbooks/pre_tasks/confirmation_sysbench.yml b/mysql_ansible/playbooks/pre_tasks/confirmation_sysbench.yml new file mode 100644 index 0000000000000000000000000000000000000000..a536f300d89ea9bb3429c145e85b1c98456a93a2 --- /dev/null +++ b/mysql_ansible/playbooks/pre_tasks/confirmation_sysbench.yml @@ -0,0 +1,19 @@ +- name: Display sysbench install variables + ansible.builtin.debug: + msg: + - "Hosts to be affected by {{ ansible_play_name }}: {{ play_hosts | join(', ') }}" + - "sysbench_install_path: {{ sysbench_install_path }}" + run_once: true + delegate_to: localhost + +- 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/vars/var_install_sysbench.yml b/mysql_ansible/playbooks/vars/var_install_sysbench.yml new file mode 100644 index 0000000000000000000000000000000000000000..4426099f8f31549a968010ca0291f032e06572ea --- /dev/null +++ b/mysql_ansible/playbooks/vars/var_install_sysbench.yml @@ -0,0 +1,2 @@ +sysbench_install_path: "/usr/local/sysbench" + diff --git a/mysql_ansible/roles/install_sysbench/files/readme.md b/mysql_ansible/roles/install_sysbench/files/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..703d195ed6f86970a0f21196dc10cedcd184d205 --- /dev/null +++ b/mysql_ansible/roles/install_sysbench/files/readme.md @@ -0,0 +1,14 @@ +# sysbench-master.zip + +This file is a snapshot of the sysbench project source code, downloaded from [https://github.com/akopytov/sysbench](https://github.com/akopytov/sysbench). + +- **Downloaded Date:** 2025-07-11 +- **Source URL:** https://github.com/akopytov/sysbench +- **Last Commit:** 3ceba0b1e115f8c50d1d045a4574d8ed643bd497 + +> **Note:** +> This package is provided as a local installation source for Ansible automation purposes. +> The commit hash above identifies the specific state of the sysbench source code at the time of download. + +If you want to update sysbench to a newer version, please re-download from the upstream repository and update this README accordingly. + diff --git a/mysql_ansible/roles/install_sysbench/files/sysbench-master.zip b/mysql_ansible/roles/install_sysbench/files/sysbench-master.zip new file mode 100644 index 0000000000000000000000000000000000000000..2246b7768dcdbbb656ac89e7dd95e2630134cf7c Binary files /dev/null and b/mysql_ansible/roles/install_sysbench/files/sysbench-master.zip differ diff --git a/mysql_ansible/roles/install_sysbench/tasks/main.yml b/mysql_ansible/roles/install_sysbench/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..5f5a7b042a1eeb620f8d3c72040e70234e518d5e --- /dev/null +++ b/mysql_ansible/roles/install_sysbench/tasks/main.yml @@ -0,0 +1,40 @@ +- name: Install dependencies for sysbench + ansible.builtin.yum: + name: + - make + - automake + - libtool + - pkgconfig + - unzip + - libaio-devel + state: present + +- name: Ensure sysbench install path exists + ansible.builtin.file: + path: "{{ sysbench_install_path }}" + state: directory + mode: '0755' + +- name: Unarchive sysbench-master.zip to /tmp + ansible.builtin.unarchive: + src: sysbench-master.zip + dest: /tmp/ + remote_src: no + +- name: Compile and install sysbench + ansible.builtin.shell: | + cd /tmp/sysbench-master + ./autogen.sh + ./configure --prefix={{ sysbench_install_path }} + make -j + make install + args: + creates: "{{ sysbench_install_path }}/bin/sysbench" + +- name: Add sysbench to PATH (system-wide) + ansible.builtin.lineinfile: + path: /etc/profile.d/sysbench.sh + line: 'export PATH={{ sysbench_install_path }}/bin:$PATH' + create: yes + state: present + mode: '0755' 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 6b05cdaef4036cb8e3e70a56ab26737f89ddc4c8..05771b70e8002a1329c5e3959a299ce0b2224b77 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 @@ -244,6 +244,7 @@ performance-schema-instrument ='memory #8.0 special +innodb_doublewrite_pages=128 # 4 admin_address = 127.0.0.1 # null admin_port = {{ (mysql_port*10 + 2) | string }} # 33062 mysqlx_port = {{ (mysql_port*10) | string }} # 33060 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 c33c4c01f40c911594c4c6e20c4533c33ea17bfc..a5a8366a9f87b8b95acada77e4113e8cf9095fd3 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 @@ -241,6 +241,7 @@ performance-schema-instrument ='memory #8.0 special +innodb_doublewrite_pages=128 # 4 admin_address = 127.0.0.1 # null admin_port = {{ (mysql_port*10 + 2) | string }} # 33062 mysqlx_port = {{ (mysql_port*10) | string }} # 33060 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 ec3def4e1f9a3d3a5e7a8d5931c74b84a71729f1..28fb9fbdc8fa9af1812146821b4fb008191b1e41 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 @@ -243,6 +243,7 @@ performance-schema-instrument ='memory #8.0 special +innodb_doublewrite_pages=128 # 4 admin_address = 127.0.0.1 # null admin_port = {{ (mysql_port*10 + 2) | string }} # 33062 mysqlx_port = {{ (mysql_port*10) | string }} # 33060 diff --git a/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt b/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt index 67abe2bf62589d860c023fc7fa5d3e19e4822605..7a760bb5579b70bd90f77b8593402553aec963c2 100644 --- a/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt +++ b/opengauss_ansible/playbooks/pre_tasks/SHA256SUMS.txt @@ -38,4 +38,7 @@ panweidb 3.1.1 CentOS7 8bdab89202dada0a827ad7244e36c95716fac7fd4a65794f4f4dc887b panweidb 3.1.1 openEuler22 78452b4ad9dda841be168f55b00b6340c1406e5d7afea8ef379184ae0e242ba4 PanWeiDB_V2.0-S3.1.1_B01-install-openeuler_22.03-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.1.1_B01-openEuler-64bit-om.tar.gz PanWeiDB_V2.0-S3.1.1_B01-openEuler-64bit.tar.bz2 panweidb 3.1.1 BigCloud8 f48b1a1744ec9343ad1e6d344004a6a83081dc50692f963c5dbb7240c5951c9a PanWeiDB_V2.0-S3.1.1_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.1.1_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.1.1_B01-bclinux-64bit.tar.bz2 panweidb 3.1.1 BigCloud21 462c102afbe8d5d83af502bffdfb2d9183370bbd6000b29d19fccff65be501bb PanWeiDB_V2.0-S3.1.1_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.1.1_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.1.1_B01-bclinux-64bit.tar.bz2 - +panweidb 3.2.0 CentOS7 ff843379ee7a186c935d9073a44a623729388f3065a0a29de4912edb76b3fd00 PanWeiDB_V2.0-S3.2.0_B01-install-centos_7-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.2.0_B01-CentOS-64bit-om.tar.gz PanWeiDB_V2.0-S3.2.0_B01-CentOS-64bit.tar.bz2 +panweidb 3.2.0 openEuler22 cd61f11d8e142dc6bc75d46089f5f7ee91b5b0d829e12133ad5b7f4672ef1504 PanWeiDB_V2.0-S3.2.0_B01-install-openeuler_22.03-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.2.0_B01-openEuler-64bit-om.tar.gz PanWeiDB_V2.0-S3.2.0_B01-openEuler-64bit.tar.bz2 +panweidb 3.2.0 BigCloud8 1a75190e632b9dda249b24df1bd0a1aa835cc2b59fd56df062fe8193bf72b382 PanWeiDB_V2.0-S3.2.0_B01-install-bclinux_8.2-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.2.0_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.2.0_B01-bclinux-64bit.tar.bz2 +panweidb 3.2.0 BigCloud21 8b142ce48b9663f3110cb9dad0baa138191ee27affba062fa7156847fb3451db PanWeiDB_V2.0-S3.2.0_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz PanWeiDB_V2.0-S3.2.0_B01-bclinux-64bit-om.tar.gz PanWeiDB_V2.0-S3.2.0_B01-bclinux-64bit.tar.bz2 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 90b937657737f68ea891b649c7fa149258bf3220..402fe74b9686a3dab8f9d6046b1447413da13dea 100644 --- a/opengauss_ansible/playbooks/pre_tasks/validate_common_config_setting.yml +++ b/opengauss_ansible/playbooks/pre_tasks/validate_common_config_setting.yml @@ -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', '5.0.3', '6.0.0', '6.0.1']) or - (db_type == 'panweidb' and opengauss_version not in ['2.0.2', '2.0.3', '3.0.0', '3.0.2', '3.1.0', '3.1.1']) + (db_type == 'panweidb' and opengauss_version not in ['2.0.2', '2.0.3', '3.0.0', '3.0.2', '3.1.0', '3.1.1', '3.2.0']) # panweidb 3.0.1 package is not supported due to bugs that prevent installation - name: Validate db_type is a valid option