Issue #8433 has been updated by Michel Loiseleur.
I encountered this bug, and I think I've found some information and a
workaround.
I had a working (under puppet 2.6.3) module named "mysql", with mysql_client &
mysql_server classes. There was no mysql class.
Since my upgrade to puppet 2.7.1, this module wasn't working anymore, with a
"Error 400 on SERVER: Could not find class mysql_server" message.
In order to regain a working mysql module with puppet 2.7.1, I had to declare
an empty mysql class in the init.pp file of mysql module :
<pre><code class="ruby">
class mysql {}
import "mysql_client"
import "mysql_server"
</code></pre>
And include it in the nodes definition before the mysql_server class. For
instance :
<pre><code class="ruby">
node test {
include mysql
include mysql_server
}
</code></pre>
It seems that, for whatever reason, puppet 2.7.1 refuses to autoload a module
who doesn't contain a class with module name.
----------------------------------------
Bug #8433: Seemingly random failures after 2.7.1
https://projects.puppetlabs.com/issues/8433
Author: Gustavo Soares
Status: Needs More Information
Priority: High
Assignee: Gustavo Soares
Category: modules
Target version:
Affected Puppet version: 2.7.1
Keywords:
Branch:
I've noticed a weird behaviour after trying puppet (gem) 2.7.1. I am planning
an (huge)
upgrade (from 0.25.x to 2.7.1) in all my puppet's boxes...
I've installed puppet's 2.7.1 gem and got a lot of "Could not find
class" problem... and everything worked just fine with 0.25.x.
So, I decided to uninstall the gem for version 2.7.1 and install
puppet version 2.6.9.
Everything worked just fine... no weird "Could not find class"
problem...
Here are some more info about my environment:
* I do not use parameterized classes and all my classes are "included" (I was
still using 0.25.x...)
* In my $confdir/manifests/classes/roles I have a very generic class for all
puppet hosts declared as follow:
<pre>
class role_puppet_common {
$role = "puppet_common"
include common
include puppet::common
include puppet::user
}
</pre>
in $confdir/manifests/site.pp I have the following line...
<pre>
[...]
import "classes/roles/*"
[...]
</pre>
the weird "Could not find class" problem occurs for class puppet::common
my directory structure is as follow:
<pre>
...
$confdir/modules/puppet/
$confdir/modules/puppet/manifests
$confdir/modules/puppet/manifests/init.pp
$confdir/modules/puppet/manifests/classes/
$confdir/modules/puppet/manifests/classes/common.pp
...
</pre>
in $confdir/modules/puppet/manifests/init.pp I have:
<pre>
import "puppet/classes/*"
</pre>
and in $confdir/modules/puppet/manifests/classes/common.pp
<pre>
class puppet::common {
...
}
</pre>
* my modulepath declared in puppet.conf is as follow:
<pre>
modulepath = /mnt/puppet/conf/modules:/mnt/puppet/othermodules
</pre>
where /mnt/puppet/conf is set to $confdir.
That's it!
As I said before, when I downgraded to version 2.6.9 everything worked fine.
--
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en.