From 9c1e1e6ecd7e6a70c143e2d94bb76a8a227cea42 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Sat, 25 Jul 2020 12:44:47 +0200 Subject: [PATCH] Added role misc/overlay_mount --- README.md | 1 + roles/misc/overlay_mount/defaults/main.yml | 10 ++++++ roles/misc/overlay_mount/tasks/main.yml | 32 +++++++++++++++++++ .../overlay_mount/templates/overlay.mount | 11 +++++++ 4 files changed, 54 insertions(+) create mode 100644 roles/misc/overlay_mount/defaults/main.yml create mode 100644 roles/misc/overlay_mount/tasks/main.yml create mode 100644 roles/misc/overlay_mount/templates/overlay.mount diff --git a/README.md b/README.md index 8f8c5d2..afefdd9 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ Following roles have been defined for making a server configuration easy: - **docker** installs *Docker* (from official Docker repository) - **handlers** contains some handlers used by other roles - **ip_discover** configures a server to automatically discover its ip addresses to a supported service + - **overlay_mount** configures an overlay mount with systemd - **system_user** creates a system user - **mysql** defines roles for handling mysql databases and users, uses *MariaDB* - **application** installs the main application with automatic backup diff --git a/roles/misc/overlay_mount/defaults/main.yml b/roles/misc/overlay_mount/defaults/main.yml new file mode 100644 index 0000000..9c65f1e --- /dev/null +++ b/roles/misc/overlay_mount/defaults/main.yml @@ -0,0 +1,10 @@ +--- + +# target_directory + +# upper_directory +# work_directory +# lower_directories + +unit_name: "{{ target_directory | systemd_escape_mount }}" +unit_description: "Overlay Mount for {{ taget_directory }}" diff --git a/roles/misc/overlay_mount/tasks/main.yml b/roles/misc/overlay_mount/tasks/main.yml new file mode 100644 index 0000000..58df854 --- /dev/null +++ b/roles/misc/overlay_mount/tasks/main.yml @@ -0,0 +1,32 @@ +--- + +- name: Ensure directories for overlay mount exists + file: + state: directory + path: "{{ item }}" + # Do not setup directory, only create if required + loop: "{{ [upper_directory, work_directory] + lower_directories }}" + +- name: Create target directory of overlay mount + file: + state: directory + path: "{{ target_directory }}" + owner: "{{ target_owner }}" + group: "{{ target_group }}" + mode: "{{ target_mode }}" + +- name: Configure unit for overlay mount + template: + src: overlay.mount + dest: "{{ global_systemd_configuration_directory }}/{{ unit_name }}" + owner: root + group: root + mode: u=rw,g=r,o=r + register: overlay_mount_unit_result + +- name: Enable und restart unit for overlay mount + systemd: + state: restarted + name: "{{ unit_name }}" + enabled: yes + when: overlay_mount_unit_result.changed diff --git a/roles/misc/overlay_mount/templates/overlay.mount b/roles/misc/overlay_mount/templates/overlay.mount new file mode 100644 index 0000000..5b6c814 --- /dev/null +++ b/roles/misc/overlay_mount/templates/overlay.mount @@ -0,0 +1,11 @@ +[Unit] +Description={{ unit_description }} + +[Mount] +What=overlay +Where={{ target_directory }} +Type=overlay +Options=upperdir={{ upper_directory }},workdir={{ work_directory }},lowerdir={{ lower_directories | join(':') }} + +[Install] +WantedBy=multi-user.target