---
# mysql-server tasks
-- name: check if MySQL data already exists
+- name: create LVM LV and file system for MySQL data
tags:
- mysql
- fs
- shell: test -d /var/lib/mysql/mysql
- ignore_errors: yes
- check_mode: no
- register: mysql_server_installed
- changed_when: false
-
-- name: setup LVM volume "mysql" for MySQL
- tags:
- - mysql
- - partition
- - lvm
- - fs
- lvol: >
- lv=mysql
- size=10g
- vg={{ mysql_server_vg }}
- when: mysql_server_vg != "" and mysql_server_installed.rc != 0
-
-- name: create ext4 filesystem on MySQL partition "mysql"
- tags:
- - mysql
- - fs
- filesystem: >
- dev=/dev/{{ mysql_server_vg }}/mysql
- fstype=ext4
- opts="-L mysql"
- when: mysql_server_vg != "" and mysql_server_installed.rc != 0
-
-- name: create mount point "/var/lib/mysql"
- tags:
- - mysql
- - fs
- file: >
- path=/var/lib/mysql
- state=directory
- when: mysql_server_vg != "" and mysql_server_installed.rc != 0
-
-- name: configure and mount MySQL partition "mysql"
- tags:
- - mysql
- - fs
- - mount
- mount: >
- fstype=ext4
- name=/var/lib/mysql
- src=/dev/{{ mysql_server_vg }}/mysql
- state=mounted
- opts=rw,errors=remount-ro,noatime
- passno=2
- when: mysql_server_vg != "" and mysql_server_installed.rc != 0
+ include_role:
+ name: lvm-lv
+ vars:
+ lvm_vg: "{{ mysql_server_vg }}"
+ lvm_lv_name: "{{ mysql_server_lv_name }}"
+ lvm_lv_size: "{{ mysql_server_lv_size }}"
+ lvm_lv_mountpoint: "/var/lib/mysql"
+ when: mysql_server_vg != "" and mysql_server_lv_name != ""
- name: install MySQL packages for client and server
tags:
- mysql
- mysqld
- packages
- apt: >
- state=installed
- name={{ item }}
- with_items:
- - mysql-client
- - mysql-server
- - mysqltuner
- - python-mysqldb
+ apt:
+ state: present
+ name: [
+ 'mysql-client',
+ 'mysql-server',
+ 'mysqltuner',
+ 'python-mysqldb',
+ ]
- name: ensure service "mysql" is enabled and started
tags: