forked from evolix/ansible-roles
ajoute un rôle mysql
Installation de MySQL, une configuration type Evolix et quelques outils. Permet le déplacement du datadir (avec restart).
This commit is contained in:
parent
f91b741c63
commit
452df44f03
29
mysql/README.md
Normal file
29
mysql/README.md
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# mysql
|
||||||
|
|
||||||
|
Installation de MySQL, une configuration type Evolix et quelques outils.
|
||||||
|
|
||||||
|
## Taches
|
||||||
|
|
||||||
|
Les taches sont éclatées dans différents fichiers, inclus dans `tasks/main.yml` :
|
||||||
|
|
||||||
|
* `packages.yml` : installation des paquets
|
||||||
|
* `users.yml` : remplacement de l'utilisateur `root` par `mysqladmin`
|
||||||
|
* `config.yml` : copie des configurations
|
||||||
|
* `datadir.yml` : configuration du dossier de travail
|
||||||
|
* `tmpdir.yml` : configuration du dossier temporaire
|
||||||
|
* `nrpe.yml` : utilisateur `nrpe` pour checks Nagios
|
||||||
|
* `munin.yml` : activation des plugins Munin
|
||||||
|
* `log2mail.yml` : recettes log2mail
|
||||||
|
* `utils.yml` : installation d'outils utiles
|
||||||
|
|
||||||
|
## Variables possibles
|
||||||
|
|
||||||
|
Les seules variables sont liées au hostname (court et complet) qui sont simplement déduites des facts.
|
||||||
|
|
||||||
|
* `mysql_replace_root_with_mysqladmin`: remplacement de `root` par `mysqladmin` – `true` par défaut
|
||||||
|
* `mysql_thread_cache_size`: nombre de threads pour le cache – nombre de vCPU par défaut
|
||||||
|
* `mysql_innodb_buffer_pool_size`: taille du buffer InnoDB – 30% de la RAM installée par défaut
|
||||||
|
* `mysql_custom_datadir`: le dossier de travail personnalisé
|
||||||
|
* `mysql_custom_tmpdir`: le dossier temporaire personnalisé
|
||||||
|
|
||||||
|
NB : le changement de _datadir_ peut se faire plusieurs fois, tant qu'on ne revient pas vers la valeur par défaut (car une fois déplacé un lien symbolique est créé au point de départ).
|
7
mysql/defaults/main.yml
Normal file
7
mysql/defaults/main.yml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
mysql_replace_root_with_mysqladmin: true
|
||||||
|
|
||||||
|
mysql_custom_datadir: ''
|
||||||
|
mysql_custom_tmpdir: ''
|
||||||
|
|
||||||
|
mysql_thread_cache_size: '{{ ansible_processor_cores }}'
|
||||||
|
mysql_innodb_buffer_pool_size: '{{ (ansible_memtotal_mb * 0.3) | int }}M'
|
61
mysql/files/evolinux-defaults.cnf
Normal file
61
mysql/files/evolinux-defaults.cnf
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
[mysqld]
|
||||||
|
|
||||||
|
###### Connexions
|
||||||
|
# Maximum de connexions concurrentes (defaut = 100)... provoque un
|
||||||
|
# "Too many connections"
|
||||||
|
max_connections = 250
|
||||||
|
# Maximum de connexions en attente en cas de max_connections atteint
|
||||||
|
# (defaut = 50)
|
||||||
|
back_log = 100
|
||||||
|
# Maximum d'erreurs avant de blacklister un hote
|
||||||
|
max_connect_errors = 10
|
||||||
|
|
||||||
|
###### Tailles
|
||||||
|
# Taille reservee au buffer des index MyIsam
|
||||||
|
# A ajuster selon les resultats
|
||||||
|
key_buffer_size = 512M
|
||||||
|
# Taille max des paquets envoyés/reçus ... provoque un "Packet too large"
|
||||||
|
max_allowed_packet = 64M
|
||||||
|
# Taille de la memoire reserve pour un thread
|
||||||
|
thread_stack = 192K
|
||||||
|
# A mettre le nombre de CPU x2
|
||||||
|
thread_cache_size = 2
|
||||||
|
|
||||||
|
###### Cache
|
||||||
|
# max_connections x nbre max de tables dans une jointure (defaut = 64)
|
||||||
|
table_cache = 4096
|
||||||
|
table_open_cache = 4096
|
||||||
|
table_definition_cache = 4096
|
||||||
|
# Taille max des requetes cachees (defaut = 1M)
|
||||||
|
query_cache_limit = 8M
|
||||||
|
# Taille reservee pour le cache (defaut = 0)
|
||||||
|
query_cache_size = 256M
|
||||||
|
# Type de requetes a cacher (defaut = 1 : tout peut etre cache)
|
||||||
|
query_cache_type = 1
|
||||||
|
# Cache tables
|
||||||
|
max_heap_table_size = 128M
|
||||||
|
tmp_table_size = 128M
|
||||||
|
|
||||||
|
###### InnoDB
|
||||||
|
# Si InnoDB n'est pas utilise... le desactiver
|
||||||
|
#skip-innodb
|
||||||
|
# En general, il est plus optimum d'avoir un fichier par table
|
||||||
|
innodb_file_per_table
|
||||||
|
# Taille memoire allouee pour le cache des datas et index
|
||||||
|
# A ajuster en fonction de sa RAM (si serveur dedie a MySQL, on peut aller
|
||||||
|
# jusqu'a 80%)
|
||||||
|
innodb_buffer_pool_size = 2G
|
||||||
|
# Taille buffer memoire pour structures internes InnoDB
|
||||||
|
innodb_additional_mem_pool_size = 16M
|
||||||
|
# Nombre maximum de threads systeme concurents
|
||||||
|
innodb_thread_concurrency = 16
|
||||||
|
# Ajuste la valeur des logs InnoDB
|
||||||
|
# (attention, il faut ensuite stopper MySQL et effacer les fichiers
|
||||||
|
# ib_logfile*)
|
||||||
|
#innodb_log_file_size = 128M
|
||||||
|
#innodb_log_files_in_group = 2
|
||||||
|
|
||||||
|
###### Misc
|
||||||
|
# charset utf8 par defaut
|
||||||
|
character-set-server = utf8
|
||||||
|
collation-server = utf8_unicode_ci
|
24
mysql/files/log2mail.conf
Normal file
24
mysql/files/log2mail.conf
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
file = /var/log/syslog
|
||||||
|
pattern = "is marked as crashed and should be repaired"
|
||||||
|
mailto = alert3@evolix.fr
|
||||||
|
template = /etc/log2mail/mail
|
||||||
|
|
||||||
|
file = /var/log/syslog
|
||||||
|
pattern = "init function returned error"
|
||||||
|
mailto = alert3@evolix.fr
|
||||||
|
template = /etc/log2mail/mail
|
||||||
|
|
||||||
|
file = /var/log/syslog
|
||||||
|
pattern = "try to repair it"
|
||||||
|
mailto = alert3@evolix.fr
|
||||||
|
template = /etc/log2mail/mail
|
||||||
|
|
||||||
|
file = /var/log/syslog
|
||||||
|
pattern = "InnoDB: Fatal error"
|
||||||
|
mailto = alert3@evolix.fr
|
||||||
|
template = /etc/log2mail/mail
|
||||||
|
|
||||||
|
file = /var/log/syslog
|
||||||
|
pattern = "as a STORAGE ENGINE failed"
|
||||||
|
mailto = alert3@evolix.fr
|
||||||
|
template = /etc/log2mail/mail
|
43
mysql/files/my-add.sh
Normal file
43
mysql/files/my-add.sh
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
!/bin/sh
|
||||||
|
|
||||||
|
echo "Ajout d'un compte/base MySQL"
|
||||||
|
echo "Entrez le nom de la nouvelle base MySQL"
|
||||||
|
read base
|
||||||
|
|
||||||
|
echo "Entrez le login qui aura tous les droits sur cette base"
|
||||||
|
echo "(Vous pouvez entrer un login existant)"
|
||||||
|
read login
|
||||||
|
|
||||||
|
echo -n "Cet utilisateur est-il deja existant ? [y|N] "
|
||||||
|
read confirm
|
||||||
|
|
||||||
|
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
|
||||||
|
echo "Attention, si l'utilisateur etait existant, il sera ecrase !"
|
||||||
|
echo -n "Entrez le mot de passe MySQL (ou vide pour aleatoire) :"
|
||||||
|
read -s passe2
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
length=${#passe2}
|
||||||
|
|
||||||
|
if [ -n $passe ]; then
|
||||||
|
passe2=$(apg -n1 -E FollyonWek7)
|
||||||
|
echo "Mot de passe genere : $passe2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mysql << END_SCRIPT
|
||||||
|
CREATE DATABASE \`$base\`;
|
||||||
|
GRANT ALL PRIVILEGES ON \`$base\`.* TO \`$login\`@localhost IDENTIFIED BY "$passe2";
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
END_SCRIPT
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
mysql << END_SCRIPT
|
||||||
|
CREATE DATABASE \`$base\`;
|
||||||
|
GRANT ALL PRIVILEGES ON \`$base\`.* TO \`$login\`@localhost;
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
END_SCRIPT
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Si aucune erreur, creation de la base MySQL $base OK"
|
5
mysql/files/mysql-optimize
Normal file
5
mysql/files/mysql-optimize
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Do some weekly optimizations.
|
||||||
|
# Reset the cache to avoid fragmentation.
|
||||||
|
mysql --defaults-extra-file=/etc/mysql/debian.cnf -e "RESET QUERY CACHE;"
|
15
mysql/handlers/main.yml
Normal file
15
mysql/handlers/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
- name: restart munin-node
|
||||||
|
service:
|
||||||
|
name: munin-node
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: restart nagios-nrpe-server
|
||||||
|
service:
|
||||||
|
name: nagios-nrpe-server
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: restart mysql
|
||||||
|
service:
|
||||||
|
name: mysql
|
||||||
|
state: restarted
|
21
mysql/tasks/config.yml
Normal file
21
mysql/tasks/config.yml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Copy Evolinux defaults
|
||||||
|
copy:
|
||||||
|
src: evolinux-defaults.cnf
|
||||||
|
dest: /etc/mysql/conf.d/000-evolinux-defaults.cnf
|
||||||
|
mode: 0640
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: Custom mysqld config values
|
||||||
|
ini_file:
|
||||||
|
dest: /etc/mysql/conf.d/100-evolinux-custom.cnf
|
||||||
|
section: mysqld
|
||||||
|
option: '{{ item.option }}'
|
||||||
|
value: '{{ item.value }}'
|
||||||
|
with_items:
|
||||||
|
- { option: thread_cache_size, value: '{{ mysql_thread_cache_size }}' }
|
||||||
|
- { option: innodb_buffer_pool_size, value: '{{ mysql_innodb_buffer_pool_size }}' }
|
||||||
|
tags:
|
||||||
|
- mysql
|
40
mysql/tasks/datadir.yml
Normal file
40
mysql/tasks/datadir.yml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: "Is {{ mysql_custom_datadir }} present ?"
|
||||||
|
stat:
|
||||||
|
path: "{{ mysql_custom_datadir }}"
|
||||||
|
register: mysql_custom_datadir_test
|
||||||
|
|
||||||
|
- name: "read the real datadir"
|
||||||
|
command: readlink -f /var/lib/mysql
|
||||||
|
changed_when: false
|
||||||
|
register: mysql_current_real_datadir_test
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
when: mysql_custom_datadir != ''
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: MySQL is stopped
|
||||||
|
service:
|
||||||
|
name: mysql
|
||||||
|
state: stopped
|
||||||
|
|
||||||
|
- name: Move MySQL datadir to {{ mysql_custom_datadir }}
|
||||||
|
command: mv {{ mysql_current_real_datadir_test.stdout }} {{ mysql_custom_datadir }}
|
||||||
|
args:
|
||||||
|
creates: "{{ mysql_custom_datadir }}"
|
||||||
|
|
||||||
|
- name: Symlink {{ mysql_custom_datadir }} to /var/lib/mysql
|
||||||
|
file:
|
||||||
|
src: "{{ mysql_custom_datadir }}"
|
||||||
|
dest: '/var/lib/mysql'
|
||||||
|
state: link
|
||||||
|
|
||||||
|
- name: MySQL is started
|
||||||
|
service:
|
||||||
|
name: mysql
|
||||||
|
state: started
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
when: mysql_custom_datadir != '' and mysql_custom_datadir != mysql_current_real_datadir_test.stdout and not mysql_custom_datadir_test.stat.exists
|
19
mysql/tasks/log2mail.yml
Normal file
19
mysql/tasks/log2mail.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Is log2mail present ?
|
||||||
|
stat:
|
||||||
|
path: /etc/log2mail/config
|
||||||
|
register: log2mail_config_dir
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- log2mail
|
||||||
|
|
||||||
|
- name: Copy log2mail config
|
||||||
|
copy:
|
||||||
|
src: log2mail.conf
|
||||||
|
dest: /etc/log2mail/config/mysql.conf
|
||||||
|
mode: 0640
|
||||||
|
when: log2mail_config_dir.stat.exists
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- log2mail
|
19
mysql/tasks/main.yml
Normal file
19
mysql/tasks/main.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- include: packages.yml
|
||||||
|
|
||||||
|
- include: users.yml
|
||||||
|
|
||||||
|
- include: config.yml
|
||||||
|
|
||||||
|
- include: datadir.yml
|
||||||
|
|
||||||
|
- include: tmpdir.yml
|
||||||
|
|
||||||
|
- include: nrpe.yml
|
||||||
|
|
||||||
|
- include: munin.yml
|
||||||
|
|
||||||
|
- include: log2mail.yml
|
||||||
|
|
||||||
|
- include: utils.yml
|
53
mysql/tasks/munin.yml
Normal file
53
mysql/tasks/munin.yml
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: is Munin present ?
|
||||||
|
stat:
|
||||||
|
path: /etc/munin/plugin-conf.d/munin-node
|
||||||
|
register: munin_node_plugins_config
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- munin
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Install libcache-cache-perl for Munin
|
||||||
|
apt:
|
||||||
|
name: libcache-cache-perl
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Enable core Munin plugins
|
||||||
|
file:
|
||||||
|
src: '/usr/share/munin/plugins/{{ item }}'
|
||||||
|
dest: /etc/munin/plugins/{{ item }}
|
||||||
|
state: link
|
||||||
|
with_items:
|
||||||
|
- mysql_bytes
|
||||||
|
- mysql_queries
|
||||||
|
- mysql_slowqueries
|
||||||
|
- mysql_threads
|
||||||
|
notify: restart munin-node
|
||||||
|
|
||||||
|
- name: Enable contributed Munin plugins
|
||||||
|
file:
|
||||||
|
src: /usr/share/munin/plugins/mysql_
|
||||||
|
dest: '/etc/munin/plugins/mysql_{{ item }}'
|
||||||
|
state: link
|
||||||
|
with_items:
|
||||||
|
- connections
|
||||||
|
- files_tables
|
||||||
|
- innodb_bpool
|
||||||
|
- innodb_bpool_act
|
||||||
|
- innodb_io
|
||||||
|
- innodb_log
|
||||||
|
- innodb_rows
|
||||||
|
- innodb_semaphores
|
||||||
|
- myisam_indexes
|
||||||
|
- qcache
|
||||||
|
- qcache_mem
|
||||||
|
- sorts
|
||||||
|
- tmp_tables
|
||||||
|
notify: restart munin-node
|
||||||
|
|
||||||
|
when: munin_node_plugins_config.stat.exists == true
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- munin
|
40
mysql/tasks/nrpe.yml
Normal file
40
mysql/tasks/nrpe.yml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: is NRPE present ?
|
||||||
|
stat:
|
||||||
|
path: /etc/nagios/nrpe.d/evolix.cfg
|
||||||
|
register: nrpe_evolix_config
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- nrpe
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Create a password for NRPE
|
||||||
|
shell: perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..16)'
|
||||||
|
register: mysql_nrpe_password
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
msg: "repl password: {{ mysql_nrpe_password.stdout }}"
|
||||||
|
|
||||||
|
- name: Create nrpe user
|
||||||
|
mysql_user:
|
||||||
|
name: nrpe
|
||||||
|
password: '{{ mysql_nrpe_password.stdout }}'
|
||||||
|
config_file: /root/.my.cnf
|
||||||
|
update_password: on_create
|
||||||
|
state: present
|
||||||
|
register: create_nrpe_user
|
||||||
|
|
||||||
|
- name: config check_mysql to use the new password
|
||||||
|
replace:
|
||||||
|
dest: /etc/nagios/nrpe.d/evolix.cfg
|
||||||
|
regexp: '\bMYSQL_PASSWD\b'
|
||||||
|
replace: '{{ mysql_nrpe_password.stdout }}'
|
||||||
|
notify: restart nagios-nrpe-server
|
||||||
|
when: create_nrpe_user.changed
|
||||||
|
|
||||||
|
when: nrpe_evolix_config.stat.exists
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- nrpe
|
16
mysql/tasks/packages.yml
Normal file
16
mysql/tasks/packages.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Ensure MySQL packages are installed
|
||||||
|
apt:
|
||||||
|
name: mysql-server
|
||||||
|
state: installed
|
||||||
|
with_items:
|
||||||
|
- mysql-server
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- packages
|
||||||
|
|
||||||
|
- name: MySQL is started
|
||||||
|
service:
|
||||||
|
name: mysql
|
||||||
|
state: started
|
23
mysql/tasks/tmpdir.yml
Normal file
23
mysql/tasks/tmpdir.yml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: "Create {{ mysql_custom_tmpdir }}"
|
||||||
|
file:
|
||||||
|
path: "{{ mysql_custom_tmpdir }}"
|
||||||
|
owner: mysql
|
||||||
|
group: mysql
|
||||||
|
mode: 0700
|
||||||
|
state: directory
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: Configure tmpdir
|
||||||
|
ini_file:
|
||||||
|
dest: /etc/mysql/conf.d/100-evolinux-custom.cnf
|
||||||
|
section: mysqld
|
||||||
|
option: tmpdir
|
||||||
|
value: "{{ mysql_custom_tmpdir }}"
|
||||||
|
notify: restart mysql
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
when: mysql_custom_tmpdir != ''
|
50
mysql/tasks/users.yml
Normal file
50
mysql/tasks/users.yml
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
# dependency for mysql_user and mysql_db
|
||||||
|
|
||||||
|
- name: python-mysqldb is installed
|
||||||
|
apt:
|
||||||
|
name: python-mysqldb
|
||||||
|
state: installed
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: create a password for mysqladmin
|
||||||
|
shell: perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..16)'
|
||||||
|
register: mysql_admin_password
|
||||||
|
changed_when: false
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: there is a mysqladmin user
|
||||||
|
mysql_user:
|
||||||
|
name: mysqladmin
|
||||||
|
password: '{{ mysql_admin_password.stdout }}'
|
||||||
|
priv: "*.*:ALL,GRANT"
|
||||||
|
update_password: on_create
|
||||||
|
state: present
|
||||||
|
register: create_mysqladmin_user
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: mysqladmin is the default user
|
||||||
|
ini_file:
|
||||||
|
dest: /root/.my.cnf
|
||||||
|
mode: 0600
|
||||||
|
section: client
|
||||||
|
option: '{{ item.option }}'
|
||||||
|
value: '{{ item.value }}'
|
||||||
|
with_items:
|
||||||
|
- { option: 'user', value: 'mysqladmin' }
|
||||||
|
- { option: password, value: '{{ mysql_admin_password.stdout }}' }
|
||||||
|
when: create_mysqladmin_user.changed
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: remove root user
|
||||||
|
mysql_user:
|
||||||
|
name: root
|
||||||
|
config_file: /root/.my.cnf
|
||||||
|
state: absent
|
||||||
|
tags:
|
||||||
|
- mysql
|
79
mysql/tasks/utils.yml
Normal file
79
mysql/tasks/utils.yml
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
# mytop
|
||||||
|
|
||||||
|
- name: Install mytop
|
||||||
|
apt:
|
||||||
|
name: mytop
|
||||||
|
state: installed
|
||||||
|
tags:
|
||||||
|
- packages
|
||||||
|
- mytop
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: Read debian-sys-maint password
|
||||||
|
shell: cat /etc/mysql/debian.cnf | grep -m1 "password = .*" | cut -d" " -f3
|
||||||
|
register: mysql_debian_password
|
||||||
|
changed_when: False
|
||||||
|
|
||||||
|
- name: Configure mytop
|
||||||
|
template:
|
||||||
|
src: mytop.j2
|
||||||
|
dest: /root/.mytop
|
||||||
|
mode: 0600
|
||||||
|
force: yes
|
||||||
|
tags:
|
||||||
|
- mytop
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
# mysqltuner
|
||||||
|
|
||||||
|
- name: Install mysqltuner
|
||||||
|
copy:
|
||||||
|
src: mysqltuner.pl
|
||||||
|
dest: /usr/local/bin/mysqltuner.pl
|
||||||
|
mode: 700
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- mysqltuner
|
||||||
|
|
||||||
|
- name: Install aha
|
||||||
|
apt:
|
||||||
|
name: aha
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
- mysqltuner
|
||||||
|
|
||||||
|
# automatic optimizations
|
||||||
|
|
||||||
|
- name: Weekly cron to optimize MySQL
|
||||||
|
copy:
|
||||||
|
src: mysql-optimize
|
||||||
|
dest: /etc/cron.monthly/mysql-optimize
|
||||||
|
mode: 0755
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
# my-add.sh
|
||||||
|
|
||||||
|
- name: Install apg
|
||||||
|
apt:
|
||||||
|
name: apg
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: Ensure /usr/share/scripts exists
|
||||||
|
file:
|
||||||
|
dest: /usr/share/scripts
|
||||||
|
mode: 0700
|
||||||
|
state: directory
|
||||||
|
tags:
|
||||||
|
- mysql
|
||||||
|
|
||||||
|
- name: Install my-add.sh
|
||||||
|
copy:
|
||||||
|
src: my-add.sh
|
||||||
|
dest: /usr/local/bin/my-add.sh
|
||||||
|
mode: 0700
|
||||||
|
tags:
|
||||||
|
- mysql
|
3
mysql/templates/mytop.j2
Normal file
3
mysql/templates/mytop.j2
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
user = debian-sys-maint
|
||||||
|
pass = {{ mysql_debian_password.stdout }}
|
||||||
|
db = mysql
|
Loading…
Reference in a new issue