--- /dev/null
+---
+# lvm-lv tasks
+
+# Setup a new LVM volume, create a new ext4 file system, and add it to
+# /etc/fstab and mount it.
+
+- name: setup LVM volume "{{ lvm_lv_name }}" for MySQL
+ tags:
+ - partition
+ - lvm
+ - fs
+ lvol: >
+ lv={{ lvm_lv_name }}
+ size={{ lvm_lv_size }}
+ vg={{ lvm_vg }}
+
+- name: create/resize ext4 filesystem on MySQL partition "{{ lvm_lv_name }}"
+ tags:
+ - fs
+ filesystem: >
+ dev=/dev/{{ lvm_vg }}/{{ lvm_lv_name }}
+ fstype=ext4
+ opts="-L {{ lvm_lv_name }}"
+ resizefs=yes
+
+- name: create mount point "/var/lib/mysql"
+ tags:
+ - fs
+ file: >
+ path=/var/lib/mysql
+ state=directory
+
+- name: configure and mount MySQL partition "{{ lvm_lv_name }}"
+ tags:
+ - fs
+ - mount
+ mount: >
+ fstype=ext4
+ name=/var/lib/mysql
+ src=/dev/{{ lvm_vg }}/{{ lvm_lv_name }}
+ state=mounted
+ opts=rw,errors=remount-ro,noatime
+ passno=2
# mysql-server: defaults
mysql_server_vg: ""
+mysql_server_lv_name: "mysql"
+mysql_server_lv_size: "10g"
+
mysql_server_ansible_user: "ansible"
mysql_server_ansible_password: "ansible"
mysql_server_root_host: "localhost"
---
# mysql-server tasks
-- name: check if MySQL data already exists
+- name: create LVM LV and file system for MySQL data
tags:
- mysql
- fs
- command: 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 }}"
+ when: mysql_server_vg != ""
- name: install MySQL packages for client and server
tags: