From 8d147ff130d6b86e901148ad278a904749bd834e Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Thu, 20 Jun 2019 15:55:07 +0200 Subject: [PATCH] add lvm management --- defaults/main.yml | 12 ++++++++++++ tasks/main.yml | 2 ++ tasks/storage.yml | 27 +++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 tasks/storage.yml diff --git a/defaults/main.yml b/defaults/main.yml index cb896be..1aa964e 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,6 +5,18 @@ postgres_repository_filename: "Postgresql-{{ postgres_version | regex_replace('\ postgres_user: postgres postgres_group: postgres +# Create separate LVM storage for matrix +postgres_lvm_enabled: False +# This variables are only necessary if postgres_lvm_enabled is 'True' +# Set physical volumes to use in LVM +# postgres_lvm_pvs: # ['/dev/sdb', '/dev/sdc'] +# postgres_lvm_vg: # "vg_matrix" +# postgres_lvm_lv: # "lv_matrix" +# postgres_lvm_fstype: # "ext4" +# postgres_lvm_size: # "50G" + +# postgres_base_dir: # defaults to os default + # Available postgresql.conf options postgres_log_destination: - stderr diff --git a/tasks/main.yml b/tasks/main.yml index ed9d4e5..d1a170d 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,5 +1,7 @@ --- - import_tasks: prepare.yml +- import_tasks: storage.yml + when: postgres_lvm_enabled | bool - import_tasks: install.yml - import_tasks: config.yml - import_tasks: tls.yml diff --git a/tasks/storage.yml b/tasks/storage.yml new file mode 100644 index 0000000..baf9def --- /dev/null +++ b/tasks/storage.yml @@ -0,0 +1,27 @@ +--- +- block: + - name: Create volume group '{{ postgres_lvm_vg }}' + lvg: + vg: "{{ postgres_lvm_vg }}" + pvs: "{{ postgres_lvm_pvs | join(',') }}" + + - name: Create logical volume '{{ postgres_lvm_lv }}' + lvol: + vg: "{{ postgres_lvm_vg }}" + lv: "{{ postgres_lvm_lv }}" + size: "{{ postgres_lvm_size }}" + + - name: Create filesystem for '/dev/mapper/{{ postgres_lvm_vg }}-{{ postgres_lvm_lv }}' + filesystem: + fstype: "{{ postgres_lvm_fstype }}" + dev: "/dev/mapper/{{ postgres_lvm_vg }}-{{ postgres_lvm_lv }}" + resizefs: True + + - name: Mount volume to '{{ postgres_base_dir }}' + mount: + path: "{{ postgres_base_dir }}" + src: "/dev/mapper/{{ postgres_lvm_vg }}-{{ postgres_lvm_lv }}" + fstype: "{{ postgres_lvm_fstype }}" + state: mounted + become: True + become_user: root