Puppet Resource Abstraction Layer (RAL)
Puppet Open Source Or Enterprise
• Open source Puppet is great for individuals managing a small set of servers
• But when you have complex or large infrastructure that's used and managed by different teams, Puppet Enterprise is the way to go
Puppet Language
• A Declarative Domain Specific Language (DSL)
• It defines STATES (Not procedures)
• Puppet code is written in manifests (files with .pp extension)
• In the code we declare resources that affect elements of the system (files, packages, services ...)
• Resources are grouped in classes which may expose parameters that affect their behaviour.
• Classes and configuration files are organized in modules.
Puppet Resource Abstraction Layer
• Resources are abstracted from the underlying OS
• Resource types have different providers for different OS
• The package type is known for the great number of providers ls $(facter rubysitedir)/puppet/provider/package
• Use puppet resource to interrogate the RAL: puppet resource user puppet resource user root puppet resource package puppet resource service
• Or to directly modify resources: puppet resource service httpd ensure=running enable=true
RAL
• Require types that define a resource
• Require providers that define interaction file
{‘/data’ : ensure => directory, } package{‘mypackage’ : provider => ‘gem’, }
https://docs.puppetlabs.com/references/latest/type.html
https://docs.puppetlabs.com/references/latest/type.html#package
Comments
Post a Comment