puppetconf 2013 types and providers

Post on 07-Nov-2014

643 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Puppet Conf 2013 Types and Provider Code: www.github.com/nanliu/puppet-pkg

TRANSCRIPT

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

top related