You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
4.8 KiB
YAML
216 lines
4.8 KiB
YAML
---
|
|
|
|
- ansible.builtin.set_fact:
|
|
_mysql_scripts_dir: "{{ mysql_scripts_dir | default(general_scripts_dir, True) | mandatory }}"
|
|
|
|
- ansible.builtin.include_role:
|
|
name: evolix/remount-usr
|
|
when: _mysql_scripts_dir is search("/usr")
|
|
|
|
- name: Scripts directory exists
|
|
ansible.builtin.file:
|
|
dest: "{{ _mysql_scripts_dir }}"
|
|
mode: "0700"
|
|
state: directory
|
|
tags:
|
|
- mysql
|
|
|
|
# mytop
|
|
|
|
- name: "mytop is installed (Debian 9)"
|
|
ansible.builtin.apt:
|
|
name: mytop
|
|
state: present
|
|
tags:
|
|
- packages
|
|
- mytop
|
|
- mysql
|
|
when: ansible_distribution_release == "jessie"
|
|
|
|
# - name: "mysql-utilities are installed (Debian 9 or later)"
|
|
# apt:
|
|
# name: mysql-utilities
|
|
# when: ansible_distribution_major_version is version('9', '>=')
|
|
|
|
- name: "mytop dependencies are installed (Buster)"
|
|
ansible.builtin.apt:
|
|
name:
|
|
- libconfig-inifiles-perl
|
|
- libdbd-mysql-perl
|
|
- libdbi-perl
|
|
- libterm-readkey-perl
|
|
- libtime-hires-perl
|
|
tags:
|
|
- packages
|
|
- mytop
|
|
- mysql
|
|
when: ansible_distribution_release == "stretch"
|
|
|
|
- name: "Install dependencies for mytop (Debian 10)"
|
|
ansible.builtin.apt:
|
|
name:
|
|
- mariadb-client-10.3
|
|
- libconfig-inifiles-perl
|
|
- libterm-readkey-perl
|
|
when: ansible_distribution_release == "buster"
|
|
|
|
- name: "Install dependencies for mytop (Debian 11 or later)"
|
|
ansible.builtin.apt:
|
|
name:
|
|
- mariadb-client-10.5
|
|
- libconfig-inifiles-perl
|
|
- libterm-readkey-perl
|
|
when: ansible_distribution_major_version is version('11', '>=')
|
|
|
|
- ansible.builtin.include_role:
|
|
name: evolix/remount-usr
|
|
tags:
|
|
- mytop
|
|
- mysql
|
|
|
|
- name: "mytop is installed (Debian 9 or later)"
|
|
ansible.builtin.copy:
|
|
src: mytop
|
|
dest: /usr/local/bin/mytop
|
|
mode: "0755"
|
|
owner: root
|
|
group: staff
|
|
force: yes
|
|
tags:
|
|
- mytop
|
|
- mysql
|
|
when: ansible_distribution_major_version is version('9', '>=')
|
|
|
|
- name: Read debian-sys-maint password
|
|
ansible.builtin.shell:
|
|
cmd: 'cat /etc/mysql/debian.cnf | grep -m1 "password = .*" | cut -d" " -f3'
|
|
register: mysql_debian_password
|
|
changed_when: False
|
|
check_mode: no
|
|
tags:
|
|
- mytop
|
|
- mysql
|
|
|
|
- name: mytop configuration is copied
|
|
ansible.builtin.template:
|
|
src: mytop-config.j2
|
|
dest: /root/.mytop
|
|
mode: "0600"
|
|
force: yes
|
|
tags:
|
|
- mytop
|
|
- mysql
|
|
|
|
# mysqltuner
|
|
|
|
- ansible.builtin.include_role:
|
|
name: evolix/remount-usr
|
|
tags:
|
|
- mysql
|
|
when: _mysql_scripts_dir is search("/usr")
|
|
|
|
- name: mysqltuner is installed
|
|
# copy:
|
|
# src: mysqltuner.pl
|
|
# dest: "{{ _mysql_scripts_dir }}/mysqltuner.pl"
|
|
# mode: "0700"
|
|
ansible.builtin.apt:
|
|
name: mysqltuner
|
|
state: present
|
|
tags:
|
|
- mysql
|
|
- mysqltuner
|
|
|
|
- name: aha is installed
|
|
ansible.builtin.apt:
|
|
name: aha
|
|
tags:
|
|
- mysql
|
|
|
|
# automatic optimizations
|
|
|
|
- ansible.builtin.include_role:
|
|
name: evolix/remount-usr
|
|
tags:
|
|
- mysql
|
|
when: _mysql_scripts_dir is search("/usr")
|
|
|
|
- name: mysql-optimize.sh is installed
|
|
ansible.builtin.copy:
|
|
src: mysql-optimize.sh
|
|
dest: "{{ _mysql_scripts_dir }}/mysql-optimize.sh"
|
|
mode: "0700"
|
|
tags:
|
|
- mysql
|
|
|
|
- name: "Cron dir for optimize is present"
|
|
ansible.builtin.file:
|
|
path: "/etc/cron.{{ mysql_cron_optimize_frequency | mandatory }}"
|
|
state: directory
|
|
mode: "0755"
|
|
owner: root
|
|
group: root
|
|
tags:
|
|
- mysql
|
|
|
|
- name: "Enable cron to optimize MySQL"
|
|
ansible.builtin.file:
|
|
src: "{{ _mysql_scripts_dir }}/mysql-optimize.sh"
|
|
dest: /etc/cron.{{ mysql_cron_optimize_frequency | mandatory }}/mysql-optimize.sh
|
|
state: link
|
|
when: mysql_cron_optimize | bool
|
|
tags:
|
|
- mysql
|
|
|
|
- name: "Disable cron to optimize MySQL"
|
|
ansible.builtin.file:
|
|
dest: /etc/cron.{{ mysql_cron_optimize_frequency | mandatory }}/mysql-optimize.sh
|
|
state: absent
|
|
when: not (mysql_cron_optimize | bool)
|
|
tags:
|
|
- mysql
|
|
|
|
- name: "Cron dir for mysqltuner is present"
|
|
ansible.builtin.file:
|
|
path: "/etc/cron.{{ mysql_cron_mysqltuner_frequency | mandatory }}"
|
|
state: directory
|
|
mode: "0755"
|
|
owner: root
|
|
group: root
|
|
tags:
|
|
- mysql
|
|
- mysqltuner
|
|
|
|
- name: "Enable mysqltuner in cron"
|
|
ansible.builtin.copy:
|
|
src: mysqltuner.cron.sh
|
|
dest: /etc/cron.{{ mysql_cron_mysqltuner_frequency | mandatory }}/mysqltuner.sh
|
|
mode: "0755"
|
|
when: mysql_cron_mysqltuner | bool
|
|
tags:
|
|
- mysql
|
|
- mysqltuner
|
|
|
|
- name: "Disable mysqltuner in cron"
|
|
ansible.builtin.file:
|
|
dest: /etc/cron.{{ mysql_cron_mysqltuner_frequency | mandatory }}/mysqltuner.sh
|
|
state: absent
|
|
when: not (mysql_cron_mysqltuner | bool)
|
|
tags:
|
|
- mysql
|
|
- mysqltuner
|
|
|
|
# my-add.sh
|
|
|
|
- ansible.builtin.include_role:
|
|
name: evolix/remount-usr
|
|
when: _mysql_scripts_dir is search("/usr")
|
|
|
|
- name: Install my-add.sh
|
|
ansible.builtin.copy:
|
|
src: my-add.sh
|
|
dest: "{{ _mysql_scripts_dir }}/my-add.sh"
|
|
mode: "0700"
|
|
tags:
|
|
- mysql
|