Re: [Puppet Users] The puppet model

Nigel Kersten
Wed, 24 Nov 2010 19:21:30 -0000

On Wed, Nov 24, 2010 at 10:46 AM, Gabriel Filion <lelutin@gmail.com>
wrote:
> Hello,
>
> On 11/23/2010 12:34 PM, Dan Bode wrote:
>> http://projects.puppetlabs.com/projects/1/wiki/Puppet_Internals
>>
>> The model in puppet is implemented as a directed acyclic graph (DAG).
The
>> vertices of the graph are resoures, the edges are the relationships
(order
>> dependencies) between resources.
>>
>> Resource types describe the desired state of a resource in terms of
>> properties.
>>    ex: File has properties content, mode, owner, group
>>
>> Types specify the description of a resource, which is abstracted from
>> providers that specify the implementation (how we query the current
state,
>> how we synchronize)
>>   ex: package { ''foo'': ensure => installed} is a
relevant description
>> regardless of the implementation of how we query the current state and
how
>> we synchronize if it does not match the description. (could be apt,
rpm,
>> yum)
>>
>> Properties are attributes of resources that can be synchronized.
>>
>> The synchronization process is as follows:
>>   - query the real state of the property on the system
>>   - compare to the desired state
>>   - if they are not the same, then synchronize them
>>   - if we have to sync resources, then create an event.
>
> This description is actually concise and quite understandable. I would
> suggest adding it to Puppet''s documentation wiki, not too far away
from
> the "extended knowledge" section [1].
>
> [1]: http://docs.puppetlabs.com/#extended-knowledge


Just wanted to point out that we accept patches for the documentation :)

I love Dan''s description here, it is indeed concise and
understandable. Let''s get it in the docs for sure.