summaryrefslogtreecommitdiff
path: root/roles/storage
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2021-04-04 04:09:17 +0200
committerChristian Pointner <equinox@spreadspace.org>2021-04-04 04:09:17 +0200
commitaacbfb831930a4546e373121785065edc1b35d39 (patch)
tree6a6df055a694ba99842854b7cc05bd9d09792024 /roles/storage
parentadd storage/lvm/groups (diff)
port streaming/rtmp/streamer to new storage volume roles
Diffstat (limited to 'roles/storage')
-rw-r--r--roles/storage/lvm/volume/defaults/main.yml9
-rw-r--r--roles/storage/lvm/volume/tasks/main.yml18
-rw-r--r--roles/storage/zfs/volume/defaults/main.yml9
-rw-r--r--roles/storage/zfs/volume/tasks/main.yml17
4 files changed, 53 insertions, 0 deletions
diff --git a/roles/storage/lvm/volume/defaults/main.yml b/roles/storage/lvm/volume/defaults/main.yml
new file mode 100644
index 00000000..670dc43b
--- /dev/null
+++ b/roles/storage/lvm/volume/defaults/main.yml
@@ -0,0 +1,9 @@
+---
+# lvm_volume:
+# dest: /srv/foo/bar
+# vg: foo
+# lv: bar
+# size: 10G
+# fs: ext4
+
+lvm_volume: "{{ storage_volume }}"
diff --git a/roles/storage/lvm/volume/tasks/main.yml b/roles/storage/lvm/volume/tasks/main.yml
new file mode 100644
index 00000000..9d335285
--- /dev/null
+++ b/roles/storage/lvm/volume/tasks/main.yml
@@ -0,0 +1,18 @@
+---
+- name: create logical volume
+ lvol:
+ vg: "{{ lvm_volume.vg }}"
+ lv: "{{ lvm_volume.lv }}"
+ size: "{{ lvm_volume.size }}"
+
+- name: create filesystem
+ filesystem:
+ fstype: "{{ lvm_volume.fs }}"
+ dev: "/dev/mapper/{{ lvm_volume.vg | replace('-', '--') }}-{{ lvm_volume.lv | replace('-', '--') }}"
+
+- name: mount filesytem
+ mount:
+ src: "/dev/mapper/{{ lvm_volume.vg | replace('-', '--') }}-{{ lvm_volume.lv | replace('-', '--') }}"
+ path: "{{ lvm_volume.dest }}"
+ fstype: "{{ lvm_volume.fs }}"
+ state: mounted
diff --git a/roles/storage/zfs/volume/defaults/main.yml b/roles/storage/zfs/volume/defaults/main.yml
new file mode 100644
index 00000000..37733d42
--- /dev/null
+++ b/roles/storage/zfs/volume/defaults/main.yml
@@ -0,0 +1,9 @@
+---
+# zfs_volume:
+# dest: /srv/foo/bar
+# pool: foo
+# name: bar
+# properties:
+# quota: 10G
+
+zfs_volume: "{{ storage_volume }}"
diff --git a/roles/storage/zfs/volume/tasks/main.yml b/roles/storage/zfs/volume/tasks/main.yml
new file mode 100644
index 00000000..f13f6950
--- /dev/null
+++ b/roles/storage/zfs/volume/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+- name: create zfs dataset
+ zfs:
+ name: "{{ zfs_volume.pool }}/{{ zfs_volume.name }}"
+ state: present
+ extra_zfs_properties: "{{ zfs_volume.properties | default(omit) }}"
+
+- name: bind mount filesystem
+ vars:
+ zfs_mountpoint: "{{ (zfs_pools[zfs_volume.pool].mountpoint, zfs_volume.name) | path_join }}"
+ when: zfs_volume.dest != zfs_mountpoint
+ mount:
+ src: "{{ zfs_mountpoint }}"
+ path: "{{ zfs_volume.dest }}"
+ fstype: none
+ opts: bind,x-systemd.automount,nofail
+ state: mounted