Download - PuppetConf 2013 Types and Providers
Puppet Types and Providers Dan Bode One man comedy routine | BodeCo @bodepd
Nan Liu Outsourced Intern
puppetconf.com #puppetconf
• Resource Behavior and Terminology • Resource Development
– Type – Providers
• … (Dan’s Secret) • Profit !!!
Overview
puppetconf.com #puppetconf
• How it works • Type • Providers
Resource
puppetconf.com #puppetconf
How it works?
puppetconf.com #puppetconf
• How to identify a unique resource • Commands to manage resource
– Inspect current state – Configure desire state
Prereqs
puppetconf.com #puppetconf
• Title (namevar) – uuids and guids – satisfy unique constraint – composite namevar
• Attributes – Properties – Parameters
• Metaparameters
Resource
puppetconf.com #puppetconf
• Have desire state • Preferably only two
– present/absent – running/stopped
• Overloading – version
Ensurable Resource
puppetconf.com #puppetconf
service { “sshd”: ensure => ‘running’, enable => true, require => Package[‘ssh’], tag => ‘PuppetConf’, }
Resource Example
puppetconf.com #puppetconf
/etc/init.d/sshd start/stop/status/restart service sshd start/stop/status/restart smf ?
Commands
puppetconf.com #puppetconf
Type
puppetconf.com #puppetconf
• Type (single) – Describes resources attributes – What you write as Puppet manifests
• Provider (many) – Query state – Configure resource
Separation of Responsibility
puppetconf.com #puppetconf
• Type • Namevar
Type
puppetconf.com #puppetconf
• exists? • create • destroy
Ensurable
puppetconf.com #puppetconf
• exists? • install • uninstall
Override ensurable
puppetconf.com #puppetconf
• install_options • remove_options • version
Parameters
puppetconf.com #puppetconf
• version • Property vs. Parameter
Problems?
puppetconf.com #puppetconf
• getter • setter
Property
puppetconf.com #puppetconf
• Get all instance of resource • mk_resource_methods
self.instances
puppetconf.com #puppetconf
• confine • defaultfor
Provider constraints
puppetconf.com #puppetconf
• Not a hard relationship
Autorequire
Thank You Nan Liu Sr Systems Engineer | VMware @sesshin