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

Popular posts from this blog

Terraform

Scrum Master Interview help - Bootcamp

Kubernetes