Ansible role to manage systemd mount points
Go to file
Damian Dabrowski 480bb0c871 Fix mount's systemd unit dependency logic
Improve logic for making systemd mount dependent on
network-online.target when network filesystem is being used.

This change improves feature implemented in commit [1].

Currently when device is specified by UUID or LABEL, dependency for
network-online.target is added even it's not a network filesystem.
We should be careful with this as it may create circular dependency.
In my case, circular dependency looked like this:

network.target ->
  network-pre.target ->
    netfilter-persistent.service ->
      local-fs.target ->
        var-lib-nova.mount ->
          network-online.target ->
            network.target

Additionally, this commit was originally supposed to add dependency also
for CIFS mounts(these ones starting from '//') but it never worked in my
opinion. It was also fixed by this change.

[1] 6a9dcb6886

Change-Id: I5d2d9c074aa0390a6f8b7c8c0ba1c839fe26f6c5
2022-12-28 09:46:48 +00:00
defaults Add support for glusterfs mounts 2022-04-20 06:53:34 +00:00
doc Switch sphinx language to en 2022-05-30 16:01:09 +02:00
examples Add integrated linters test 2022-01-24 17:30:29 +00:00
handlers Initial Commit 2018-03-13 02:06:48 -05:00
html-docs Initial Commit 2018-03-13 02:06:48 -05:00
meta Drop plugins from role requirements 2022-01-11 16:56:06 +02:00
releasenotes Update master for stable/zed 2022-12-13 13:05:15 +00:00
tasks Remove redundant vars line 2022-09-15 12:14:21 +02:00
templates Fix mount's systemd unit dependency logic 2022-12-28 09:46:48 +00:00
tests Remove references to unsupported operating systems 2021-03-16 08:57:25 +00:00
vars Add support for glusterfs mounts 2022-04-20 06:53:34 +00:00
zuul.d Add integrated linters test 2022-01-24 17:30:29 +00:00
.gitignore Updated from OpenStack Ansible Tests 2019-08-20 03:07:45 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:34:04 +00:00
bindep.txt Updated from OpenStack Ansible Tests 2021-03-12 22:23:34 +00:00
CONTRIBUTING.rst [ussuri][goal] Update contributor documentation 2020-05-13 00:07:02 +03:00
LICENSE Initial Commit 2018-03-13 02:06:48 -05:00
manual-test.rc Update documentation on role requirements 2022-05-13 10:54:27 +02:00
README.md Update documentation on role requirements 2022-05-13 10:54:27 +02:00
requirements.yml Update documentation on role requirements 2022-05-13 10:54:27 +02:00
run_tests.sh Updated from OpenStack Ansible Tests 2022-03-31 20:15:33 +00:00
tox.ini Update tox.ini to work with 4.0 2022-12-27 17:53:06 +01:00
Vagrantfile Updated from OpenStack Ansible Tests 2021-12-17 16:50:30 +00:00

Ansible systemd_mount

This Ansible role configures systemd mount files.

This role requires the ansible-config_template collection to be available on your local system.

To get collection you can use use the ansible-galaxy command on the requirements.yml file.. You need to install collection before running this role.

# ansible-galaxy install -r requirements.yml

Release notes for the project can be found at: https://docs.openstack.org/releasenotes/ansible-role-systemd_mount


Example playbook

See the "defaults.yml" file for a full list of all available options.

- name: Create a systemd mount file for Mount1 and 2
  hosts: localhost
  become: true
  roles:
    - role: "systemd_mount"
      systemd_mounts:
        - what: '/var/lib/machines.raw'
          where: '/var/lib/machines'
          type: 'btrfs'
          options: 'loop'
          unit:
            ConditionPathExists:
              - '/var/lib/machines.raw'
          state: 'started'
          enabled: true
        - config_overrides: {}
          what: "10.1.10.1:/srv/nfs"
          where: "/var/lib/glance/images"
          type: "nfs"
          options: "_netdev,auto"
          unit:
            After:
              - network.target