Ask Your Question

How to deal with name conflicts on pupept labs modules?

asked 2014-12-02 05:36:11 -0600

nomike gravatar image

There are often name conflicts with different puppet modules on puppetforge. For example there is a module "example42-jboss" which depends on "example42-firewall". And then there is a module "puppetlabs-puppetdb" which depends on "puppetlabs-firewall".

So I could not use both the "jboss" and the "puppetdb" module within the same environment.

Is there a clean solution/workaround for this problem if I don't want to use the "jboss" and the "puppetdb" module on the same node? What happens if I want to use them on the same node?

edit retag flag offensive close merge delete



If they're on different nodes, using multiple environments ( is your only choice. You can't really use them on the same node, as they'd probably try and manage the same resources.

domcleal gravatar imagedomcleal ( 2014-12-03 03:26:54 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2016-07-09 01:30:36 -0600

haloflightleader gravatar image

I have had this same problem and I continue to grapple with it. The easy solution would be to simply choose to use a different module that does the same thing, but one that doesn't have the dependency clash. My example was rtyler-jenkins and KyleAnderson-consul. They both depend on a module named archive except they require them from different places. Needless to say, I needed to make a choice. Pick a different module or do the worst move you could ever make... edit one of the module's source code. Guess which I picked.

I chose to edit the consul module because I didn't want to mess with Jenkins. I wanted to ensure the Jenkins module is upgradable. Jenkins is the spine of my infrastructure and puppet is the brains.

Do I regret it? Yes. Can I change it now? Technically, yes, but realistically, it's going to be expensive considering the role consul plays in the infrastructure. I can turn off Jenkins for a few hours with minor inconvenience even though I just referred to it as the infrastructure's backbone. Consul, I just can't afford for it to be down or the consequences will be dire.

I wish Puppet Labs would create a way that would alleviate this pain.

edit flag offensive delete link more


in the case of archive, the voxpupuli version was made to be interface compatible with the camptocamp version, so explicitly managing dependencies and selecting the voxpupuli version (with r10k) would solve your problem

DarylW gravatar imageDarylW ( 2017-05-16 11:29:32 -0600 )edit

answered 2017-05-16 10:37:09 -0600

7yl4r gravatar image

As others have said, the simplest solution (unfortunately) is to fork one of the modules and rename it. I'm going to expand a bit since I just did this.

Below is an example using puppet/selinux and thias/selinux which have a namespace collision at selinux. The following steps were taken to re-namespace the thias/selinux module into the namespace selinux_thias:

  1. Fork the module. In this example I have created USF-IMaRS/puppet-selinux from thias/puppet-selinux.
  2. Install the module into modules/$NEW_NAME. Using git submodules this is: git submodule add modules/selinux_thias
  3. rename the module class(es). Here is a commit demonstrating what this basically looks like.
  4. modify modules using thias/selinux to use new name selinux_thias instead of selinux.
edit flag offensive delete link more

answered 2016-07-09 04:15:59 -0600

updated 2016-07-09 04:16:32 -0600

Unfortunately, there isn't really a good solution to this problem, other than for you to make interoperation a criterion when you select the Forge modules to use. My understanding is that a future version of Puppet will provide a proper solution to the problem. Have a look at this thread here for ideas, where I was dealing with the same issue.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2014-12-02 05:36:11 -0600

Seen: 169,083 times

Last updated: May 16 '17