Issue #8750 has been updated by Stijn Hoop.
Sorry, forgot the site.pp on the master, I'm not using ENC:
[unixhelp@pclinvir027] </etc/puppet> cat manifests/site.pp
node 'pclinvir028.win.tue.nl' {
include foo
}
$puppetserver = 'pclinvir027.win.tue.nl'
----------------------------------------
Bug #8750: puppetmaster needs restart to pick up on changes in types/providers
in modules
https://projects.puppetlabs.com/issues/8750
Author: Stijn Hoop
Status: Unreviewed
Priority: Normal
Assignee:
Category:
Target version:
Affected Puppet version:
Keywords:
Branch: 2.6.x
Unexpectedly to me, it seems that my puppet master is NOT reloading changed
code in modules, resulting in a failed run on the agents even though they do
receive the new code.
Given the following configuration on the master:
[unixhelp@pclinvir027] </etc/puppet> sudo puppet master --configprint
modulepath
/etc/puppet/modules:/usr/share/puppet/modules
[unixhelp@pclinvir027] </etc/puppet> sudo puppet master --configprint
manifest
/etc/puppet/manifests/site.pp
[unixhelp@pclinvir027] </etc/puppet> cat puppet.conf
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
# Enable syncing of plugin code
pluginsync = true
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
[master]
certname = pclinvir027.win.tue.nl
[unixhelp@pclinvir027] </etc/puppet> tree manifests modules
manifests
`-- site.pp
modules
`-- foo
|-- lib
| `-- puppet
| |-- provider
| | `-- footype
| | `-- footype.rb
| `-- type
| `-- footype.rb
`-- manifests
`-- init.pp
[unixhelp@pclinvir027] </etc/puppet> cat
modules/foo/lib/puppet/type/footype.rb
Puppet::Type.newtype(:footype) do
@doc = "Testing puppetmaster type reload"
newparam(:name) do
desc "Name of the type"
isnamevar
end
newparam(:testing) do
desc "The first parameter"
end
end
[unixhelp@pclinvir027] </etc/puppet> cat
modules/foo/lib/puppet/provider/footype
Puppet::Type.type(:footype).provide(:footype) do
desc "Testing puppet master reload"
end
[unixhelp@pclinvir027] </etc/puppet> cat modules/foo/manifests/init.pp
class foo {
footype { "test":
testing => 1,
}
}
And this puppet.conf on the client:
[unixhelp@pclinvir028 ~]$ cat /etc/puppet/puppet.conf
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
# Enable syncing of plugin code
pluginsync = true
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
The following sequence of events reproduces the problem:
Start the master: $ sudo puppet master --debug --no-daemonize --verbose
Start the agent for the first time: $ sudo puppet agent --debug --no-daemonize
--verbose --onetime --server pclinvir027.win.tue.nl
Output is in agent-20110803-firstparameter.log. It works fine, code gets
synced, etc.
Now edit the code in
/etc/puppet/modules/foo/lib/puppet/{type/footype.rb,manifests/init.pp} to
include a new parameter:
[unixhelp@pclinvir027] </etc/puppet> cat
modules/foo/lib/puppet/type/footype.rb
Puppet::Type.newtype(:footype) do
@doc = "Testing puppetmaster type reload"
newparam(:name) do
desc "Name of the type"
isnamevar
end
newparam(:testing) do
desc "The first parameter"
end
newparam(:testingagain) do
desc "The second parameter"
end
end
[unixhelp@pclinvir027] </etc/puppet> cat modules/foo/manifests/init.pp
class foo {
footype { "test":
testing => 1,
testingagain => 2,
}
}
Start the agent again: $ sudo puppet agent --debug --no-daemonize --verbose
--onetime --server pclinvir027.win.tue.nl
Output is in agent-20110803-firstparameter.log. We get an error because the
server cannot validate the catalog.
On the server console we see:
debug: Automatically imported foo from foo into production
err: Invalid parameter testingagain at
/etc/puppet/modules/foo/manifests/init.pp:5 on node pclinvir028.win.tue.nl
The output from the master so far is in master-20110803-firstrun.log.
WITHOUT CHANGING ANYTHING, restart the puppet master.
Run the agent for the 3rd time, and see that it now works:
agent-20110803-secondparameter-try2.log.
So it seems to me that types/providers in modules are not being reloaded.
This is puppet 2.6.9 on CentOS 5, installed from Todd Zulinger's RPM repository.
--
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.