Perhaps try:
# puppet apply --execute 'include manual'
- Keith
--
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 puppet-users...@googlegroups.com.
To post to this group, send email to puppet...@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
If you don't want to transfer the class files (and any dependencies) over to the agent host, which is what I was suggesting here then perhaps you can get your desired behaviour using a custom fact.
Assuming that you have facter.dot.d installed (usually from stdlib) do something like:
$ echo 'run_manual: false' >> /etc/facter/facter.d/custom.yaml
And then check this fact before including your manual class in your node config, something like:
if $run_manual {
include manual
}
Then when you do want to apply the class then change the fact value to true and do a onetime Puppet run.
Details above might be slightly off as I am not in from of a computer but you get the idea.
- Keith
On Thursday, May 16, 2013 3:38:23 PM UTC-5, Nev wrote:I need to be able to run a certain class ONLY when it is called
manually from the client.
I created a class named "manual" and can run it from the client like
this:
puppet agent --no-daemonize --onetime --verbose --tags=manual
However it only works if that class is specified in the node
definition. I don't want this class to run automatically on the
normal node run with the other classes. Is there any way to do this?
No, there is no way for the agent to override the master's determination of which classes are applicable to the client node. This is a security feature, among other things -- otherwise, any node could extract possibly-sensitive information from the master that was not intended for it. The agent can narrow the classes to be applied, as in your example command, but it cannot expand it.
Now, find a comfortable position, close your eyes, and repeat the Puppet mantra:
Puppet is not a script engine...
Puppet is not a script engine...
Puppet is not a script engine...
Om...
Repeat as needed.
If you nevertheless insist on using Puppet as if it were a script engine, then you need to have all the relevant manifests, files, etc. on the local node, so that you can use "puppet apply" to apply them.
John