Greetings!

I am having a problem with puppet mounting a device and am hoping someone 
can help. Here is the short version, if you have questions or need more 
detail, please feel free to ask.

I have a Panasas storage device on my network on which my home directory 
resides. The Panasas device mounts the filesystem via a kernel module 
(which they call DirectFlow). Thus, when I run as root ` mount /home` a 
kernel module is loaded and then the filesystem is loaded. I have certain 
restrictions in place on my servers which I have to keep in line (Puppet is 
AMAZING for this!) and the mounting of /home is one of those restrictions.

I have in my puppet manifest this:
mount { "/home" : 
                        ensure => mounted, 
                        atboot => true, 
                        device => "panfs://192.168.1.20/home", 
                        fstype => "panfs", 
                        options => "defaults,nodev", 
                        remounts => true, 
                        pass => 2, 
                        dump => 1, 
                } 

If I run, as root, `puppet agent --test` then the /home filesystem is 
mounted and everything is wonderful. However, if I let the puppet agent 
daemon try to mount /home I get errors in the log files without the mount 
ever happening.

Apr  2 13:01:08 testnode puppet-agent[29955]: 
(/Stage[main]/mount::Homefilesystem/Mount[/home]/ensure) ensure changed 
'unmounted' to 'mounted'
Apr  2 13:01:08 testnode puppet-agent[29955]: 
(/Stage[main]/mount::Homefilesystem/Mount[/home]) Could not evaluate: 
Execution of '/bin/mount -o defaults,nodev /home' returned 1: mount.panfs 
error: cannot init pan_sock_ping 0x239d (pan_sock: protected socket, 
permission denied) 

Neither Panasas representatives I talked to seemed to have any idea what 
Puppet was before I spoke to them. My coworkers, the Panasas reps, and I 
brainstormed a few ideas but only three seemed to "work":
* Have the puppet daemon run as root instead of the puppet user (which is 
an obvious issue)
* Use auto-mount (which "works" but is causing some oddities in a few of my 
jobs which I am fairly sure is due to the latency of the mount)
* Have Puppet call a script with the setuid bit configured which can mount 
/home (which doesn't 100% address my needs of puppet being able to remount 
if one of those parameters is wrong/missing/changed/whatever without that 
script getting complicated).

Before I commit towards one option, I thought I would ask the other Puppet 
masters out there for ideas. Given the popularity of Puppet in datacenters 
as well as the popularity of SAN devices in datacenters I figure someone 
out there has probably solved this problem. I am hoping that their solution 
is better then the ones we have come up with. :-D

Can anyone help me out with this?

Thank you in advance!!

Stack

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" 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-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to