On Tue, Sep 11, 2012 at 2:16 PM, Kayode Odeyemi <drey...@gmail.com> wrote:
>> That doesn't actually map super-well to the design of Puppet, since it
>> doesn't instantly react to change, it reacts on a schedule.  You can
>> obviously make the latency low by running all the time, but it is
>> still non-zero.
>>
>> The things you want to do are also not done by talking directly to the
>> agent - you do those by having the catalog that is compiled for the
>> node assert the things you want.  So, you are really looking for a way
>> to configure catalog compilation to do what you want, not to talk to
>> the agent.
>>
>> Take a look at the documentation on https://docs.puppetlabs.com/
>> around the DSL and modules to figure that out; the best match for what
>> you want is an ENC, or "External Node Classifier", which you would
>> have to provide yourself.
>
> I've heard this over-and-over. It just doesn't sink. I always see ENC to be 
> useful
> for getting out information and not modifying configuration or executing 
> actions.

The flow of data would be this:

Your UI updates the ENC.
The ENC informs the Puppet master what classes to include.
The master sends a catalog to the agent.
The agent acts on that information.  (eg: start or stop a service)

You could remotely execute `puppet resource` or `puppet apply` to
shortcut some of this, but the basic design is that you build a set of
manifests and modules that define "functionality", and then use
something - our DSL, or an ENC - to determine which functionality
applies to which machine.

>> All that said, if you really want *instant* results, you want to look
>> at MCollective:
>> http://docs.puppetlabs.com/#mcollectivemcollective
>
> I just figured out the architecture. MCollective + ActiveMQ.
>
> So for each of the scenarios I want to create, I've decided to have a PHP
> code
> that will call the Ruby client, which will then send the message to the
> broker.
>
> Because filters are applied, this helps to identify the right node that
> matches the filters
> in the message. Specific agent on the selected node can then be triggered
> for execution.

That sounds like a reasonable model.  The Live Management facilities
we provide in Puppet Enterprise are built around the same basic
architecture, so we know that works well in the real world.

-- 
Daniel Pittman
⎋ Puppet Labs Developer – http://puppetlabs.com
♲ Made with 100 percent post-consumer electrons

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to