Issue #18296 has been updated by Stefan Schulte.
I was not able to reproduce the error (but instead of an NFS share I used a
local device) and I always end up with the device mounted and the bind mount.
man mount states:
If only directory or device is given, for example:
mount /dir
then mount looks for a mountpoint and if not found then for a device in the
/etc/fstab file.
----------------------------------------
Bug #18296: Puppet only passes location to 'mount', not device and location, so
bind mounts do not work correctly after the inital run.
https://projects.puppetlabs.com/issues/18296#change-92980
* Author: Will Marler
* Status: Unreviewed
* Priority: Normal
* Assignee:
* Category: mount
* Target version:
* Affected Puppet version:
* Keywords: bind, mount,
* Branch:
----------------------------------------
Consider the following manifest:
<pre>
$server = nas.test.com
$path = nas_export
$fstype = nfs #(In our real-world issue it's gluster, but any fstype works to
reproduce)
mount {'/mnt/test':
ensure => 'mounted',
device => "$server:$path",
fstype => $fstype,
options => 'defaults',
atboot => true,
require => File['/mnt/test'];
}
}
mount{ '/var/mnt':
ensure => 'mounted',
device => "/mnt/test",
fstype => 'none',
options => 'rw,bind',
atboot => 'true',
require => [Mount['/mnt/test'],File['/var/mnt']];
}
</pre>
When run on a clean system, it correctly creates & executes the mounts and the
entries in /etc/fstab. This is good.
However, if one unmounts /mnt/test and /var/mnt, and re-runs puppet, the NFS
mount /mnt/test is not re-mounted. Only the bind mount /var/mnt to /mnt/test is
re-mounted. Puppet throws no errors.
This occurs because puppet calls the mount command in the above scenario as
"debug: Puppet::Type::Mount::ProviderParsed: Executing '/bin/mount -o defaults
/mnt/test'". mount interprets "/mnt/test" as the *device* to be mounted and
performs the bind mount (which works, so no error is thrown), rather than as
the *location* which should be attached to nas.test.com:nfs_export. This is
probably "mount" default behavior.
A solution would be for puppet to call the "mount -o <options> <device> <mount
point>" removing the ambiguity of "/mnt/test".
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.