From 1d782e22e68fbe617357519af519c98f65ccc8bb Mon Sep 17 00:00:00 2001 From: phil Date: Fri, 1 Jan 2021 17:01:44 +0000 Subject: [PATCH] Rolle zur Installation und Konfiguration eines MariaDB-Servers --- defaults/main.yml | 8 ++++++++ handlers/main.yml | 6 ++++++ meta/main.yml | 10 ++++++++++ tasks/main.yml | 6 ++++++ tasks/munin.yml | 39 ++++++++++++++++++++++++++++++++++++++ tasks/packages.yml | 13 +++++++++++++ templates/munin-mariadb.j2 | 4 ++++ 7 files changed, 86 insertions(+) create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 tasks/munin.yml create mode 100644 tasks/packages.yml create mode 100644 templates/munin-mariadb.j2 diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..c063c3d --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,8 @@ +--- +# defaults file for mariadb + +munin_sql_user: munin +munin_sql_password: za8x5sECY6pP2GWdR36UKYP7tHFodvRLyr6f5wAt7D +mysql_server_config_file: /etc/mysql/mariadb.conf.d/50-server.cnf +mysql_socket: /var/run/mysqld/mysqld.sock + diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..11dbdd3 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,6 @@ +--- +- name: restart munin-node + service: name=munin-node state=restarted + +- name: restart mysql + service: name=mariadb state=restarted diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..0550f5c --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,10 @@ +galaxy_info: + author: systemausfall.org + description: Role to setup MariaDB server + company: Sense.Lab + license: GPLv3 + min_ansible_version: 2.9 + plaforms: + - name: Debian + versions: + - Buster diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..de0f544 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,6 @@ +--- +# tasks file for mariadb + +- import_tasks: packages.yml +- import_tasks: munin.yml + diff --git a/tasks/munin.yml b/tasks/munin.yml new file mode 100644 index 0000000..0a8c392 --- /dev/null +++ b/tasks/munin.yml @@ -0,0 +1,39 @@ +- name: "Munin: sql-Nutzer anlegen" + mysql_user: + name: "{{ munin_sql_user }}" + password: "{{ munin_sql_password }}" + priv: '*.*:PROCESS,REPLICATION CLIENT' + state: present + login_unix_socket: "{{ mysql_socket }}" + login_user: root + +- name: "Munin: Ersetze MariaDB-Zugangsdaten" + template: + src: templates/munin-mariadb.j2 + dest: /etc/munin/plugin-conf.d/zzz-mariadb + notify: restart munin-node + +- name: "Munin: Aktiviere mysql-Plugin" + command: munin-node-configure --shell | grep mysql_ | sh + # Ausgabe von fehlerhaften Plugins (exit 1) ignorieren + ignore_errors: yes + notify: restart munin-node + +- name: "Munin: Aktiviere slowlog" + lineinfile: + path: "{{ mysql_server_config_file }}" + insertafter: ^# Enable the slow query + line: 'slow_query_log = 1' + notify: restart mysql + +- name: "Munin: Konfiguriere slowlog" + lineinfile: + path: "{{ mysql_server_config_file }}" + regexp: "{{ item.regexp }}" + line: "{{ item.line }}" + with_items: + - { regexp: '^#slow_query_log_file', line: 'slow_query_log_file = /var/log/mysql/mariadb-slow.log' } + - { regexp: '^#long_query_time', line: 'long_query_time = 10' } + - { regexp: '^#log_slow_rate_limit', line: 'log_slow_rate_limit = 1000' } + - { regexp: '^#log_slow_verbosity', line: 'log_slow_verbosity = query_plan' } + notify: restart mysql diff --git a/tasks/packages.yml b/tasks/packages.yml new file mode 100644 index 0000000..c91041e --- /dev/null +++ b/tasks/packages.yml @@ -0,0 +1,13 @@ +--- +- name: "Packages: Fakten sammeln" + package_facts: + manager: apt + +- name: "Packages: MariaDB-Server installieren" + apt: + pkg: + - default-mysql-server + - libcache-cache-perl + - python-pymysql + update_cache: yes + cache_valid_time: 3600 diff --git a/templates/munin-mariadb.j2 b/templates/munin-mariadb.j2 new file mode 100644 index 0000000..2cc5df7 --- /dev/null +++ b/templates/munin-mariadb.j2 @@ -0,0 +1,4 @@ +[mysql*] +env.mysqluser {{ munin_sql_user }} +env.mysqlpassword {{ munin_sql_password }} +env.mysqlconnection DBI:mysql:information_schema \ No newline at end of file