There is no easy way to “just mount” an existing filesystem in Ansible, using the mount module. I just want to mount an already defined mount point, and don’t really care about all the configuration here.
But if I try this:
|
|
I end up with the following error message:
TASK [Mount /backup filesystem] ********************
fatal: [xxx.xxx.xxx.xxx]: FAILED! => {"changed": false, "msg": "state is mounted but all of the following are missing: src, fstype"}
Ansible requires to configure the mount point all the way. Also specified in the documentation:
fstype
is required when state ispresent
ormounted
state
==mounted
: the device will be actively mounted and appropriately configured in fstab. If the mount point is not present, the mount point will be created.
Not what I want here!
My fallback is the Linux mount command. Also using the -v
(verbose
) flag, so I can figure out if the filesystem was already mounted, or if the task changed this.
|
|
mount
will return 0
when the filesystem can be mounted, and 32
when it was already mounted.
Also STDOUT
will include mounted on
when the mount changes. (Note: you might want to ensure that your locale settings are English
).
The warn=no
is there so Ansible will not complain about using the mount command instead of the module.
Finally this allows one to only execute subsequent commands when the mount was successful:
|
|
I’m using the output from STDOUT
and STDERR
here, because - according to the manpage - RC=32
can be anything. If the text includes mounted on
or already mounted on
, the mount point worked.