Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I don't have direct access to our puppetmasters, but I can make changes to modules and classes that relate to my work. I would like to set up a puppet:// fileserver that does not reside on the puppetmaster, so that it can be updated via other means.

Is there any way to configure an Apache vhost or path to respond properly to puppet:// requests for fileservice?

share|improve this question
It's possible, but seems like unnecessary added complexity. Why wouldn't you store relevant files in each module's files directory? If you have a need to modify files accessible to puppet clients, then you should be given access to do so instead of adding extra dependencies to the system. – Shane Madden Nov 19 '12 at 17:13
Because modifying the files involved would require a git commit & push, which means human intervention. It also means the files cannot be automatically managed from elsewhere. Our puppet infrastructure involves thousands of systems and there are sensible restrictions in place. So.. you say it's possible. How would I do it, then? Can you point me to some documentation? – RoUS Nov 19 '12 at 19:16

There are two main ways you could accomplish this.

  1. Just make a second full-stack Puppetmaster server, and use the optional hostname attribute allowed in puppet:\\ links to refer to it. I haven't tested this, but can't think of any reason why it shouldn't work. If it didn't, why include the optional hostname field?

  2. Ask someone with direct access to your Puppetmaster to mount the directory containing your files onto the Puppetmaster server (somewhere within Puppet's usable directories), and then use raw path names, rather than puppet:\\ links to access your files. Examples are here (same page as above). I have tested this; it's how we centralize file access in our Puppet infrastructure. It shouldn't be a hard case to make to your sysadmins (or whoever has root access to the Puppetmaster); you have pretty granular control of file access permissions via fileserver.conf.

share|improve this answer
I think #1 might fall down on the certificate issue. :-( As for the 'optional hostname field'.. documentation on using the fileserver mechanism seems a little sparse, so maybe it's not as completely supported as one would like. I can ask about #2, but I don't think it'll be well received. We'll see.. Thanks! – RoUS Nov 19 '12 at 17:51

It's possible to use file:// URL and then mount a shared file system on all of your nodes- something like NFS, or Gluster will work for distribution of your git working copy.

Another option is to try this module, that allows you to pull files from S3:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.