SlideShare a Scribd company logo
1 of 38
Download to read offline
Replacing simple modules with
Custom Types and Providers
Or Stop managing templates, and start managing your configs
2
Greg Swift
Linux Admin/Engineer ~ 12 yrs
Red Hat Certified Engineer ~ 6 yrs
Augeas user ~6 yrs
Puppet user ~ 3 yrs
greg.swift@{rackspace.com,nytefyre.net}
google.com/+GregSwift
linkedin.com/gregoryswift
github.com/{gregswift,rackergs}
xaeth on Fedora, FreeNode, Twitter, and Ingress
3
Bit of time travel...
•Past
–An unpleasant reminder of configs past
•Present
–Tools available today that help
•Future
–What's next?
4
Stroll down memory lane
5
systl.conf
# Controls the default maximum size of a message queue
kernel.msgmnb = 65536
6
Lets change that value
sed ­i 's/^(kernel.msgmnb = )([0­9]*)$/## Changing 
for db configuration. Was:n## 12n199999/' 
sysctl.conf
7
Looks good so far...
# Controls the default maximum size of a message queue
## Changing for db configuration. Was:
## kernel.msgmnb = 65536
kernel.msgmnb = 99999
8
But the next run?
# Controls the default maximum size of a message queue
## Changing for db configuration. Was:
## ## Changing for db configuration. Was:
## kernel.msgmnb = 65536
kernel.msgmnb = 99999
## Changing for db configuration. Was:
## kernel.msgmnb = 99999
kernel.msgmnb = 99999
9
That was then...
10
Templates... yay?
•Great for 1 type of system... maybe even a couple
•Supporting multiple OS releases or distributions?
11
Wouldn't it be nice?
•Safe
•Repeatable
•Extensible
•Multi-language
12
But that is a herculean task...
13
Meet team Hercules
David Lutterkort
(Now @ PuppetLabs)
Raphaël Pinson
Dominic Cleal
Francis Giraldeau
14
and Augeas
15
What is it?
•An API provided by a C library
•A domain-specific language to describe configuration file
formats, presented as lenses
•Canonical tree representations of configuration files
•A command line tool to manipulate configuration from
the shell and shell scripts
•Language bindings to do the same from your favorite
scripting language
16
Lense all the things!
17
Just to name a few....
access activemq_conf activemq_xml aliases anacron approx aptcacherngsecurity aptconf
aptpreferences aptsources apt_update_manager authorized_keys automaster
automounter avahi backuppchosts bbhosts bootconf build cachefilesd carbon cgconfig
cgrules channels cobblermodules cobblersettings collectd cron crypttab cups cyrus_imapd
darkice debctrl desktop device_map dhclient dhcpd dnsmasq dovecot dpkg dput erlang
ethers exports fai_diskconfig fonts fstab fuse gdm group grub gtkbookmarks host_conf
hostname hosts_access hosts htpasswd httpd inetd inifile inittab inputrc interfaces iproute2
iptables jaas jettyrealm jmxaccess jmxpassword json kdump keepalived krb5 ldif ldso
lightdm limits login_defs logrotate logwatch lokkit lvm mcollective mdadm_conf
memcached mke2fs modprobe modules modules_conf mongodbserver monit multipath
mysql nagioscfg nagiosobjects netmasks networkmanager networks nginx nrpe nsswitch
ntp ntpd odbc openshift_config openshift_http openshift_quickstarts openvpn pam
pamconf passwd pbuilder pg_hba php phpvars postfix_access postfix_main postfix_master
postfix_transport postfix_virtual postgresql properties protocols puppet puppet_auth
puppetfileserver pythonpaste qpid quote rabbitmq redis reprepro_uploaders resolv rsyncd
rsyslog rx samba schroot securetty sep services shells shellvars shellvars_list simplelines
simplevars sip_conf slapd smbusers solaris_system soma spacevars splunk squid ssh
sshd sssd stunnel subversion sudoers sysconfig sysctl syslog systemd thttpd up2date util
vfstab vmware_config vsftpd webmin wine xendconfsxp xinetd xml xorg xymon yum
18
Don't see your favorite config?
•Build
•IniFile
•Rx
•Sep
•Shellvars
•Shellvars_list
•Simplelines
•Simplevars
•Util
19
Our earlier example.. on Augeas
augeas { 'set kernel.msgmnb per db vendor':
  context => '/files/etc/sysctl.conf',
  onlyif  => 'kernel.msgmnb != 99999',
  changes => 'set kernel.msgmnb 99999',
}
20
Making it re-usable
define sysctl ($value) {
  augeas { “set ${title} in sysctl.conf”:
    context => '/files/etc/sysctl.conf',
    onlyif  => “${title} != ${value}”,
    changes => “set ${title} ${value}”,
  }
}
sysctl { 'kernel.msgmnb':
  value   => '99999',
}
21
A more complex example...
define ssh_allowgroup ($ensure) {
  if $ensure == present {
      $match = '=='
      $change = “set AllowGroups/01 ${title}”
  } else {
      $match = '!='
      $change = 'rm AllowGroups/[.=${title}]”
  }
  augeas { “sshd_config/AllowGroups ${title}”:
    context => '/files/etc/sshd_config',
    onlyif  => “match AllowGroups/[.=${title}] size $match 0”,
    changes => $change,
  }
}
$sshd_default_groups = ['engineers', 'admins']
$sshd_allowed_groups = $::env ? {
    /prod/    => $sshd_default_groups,
    default   => concat($sshd_default_groups, ['devs']),
}
ssh_allowgroup { $sshd_allowed_groups:
  ensure => present,
}
22
Well I tried it once, but...
•Lenses are hard to write
•Xpathing is hard
•Its just hard!
23
Make it easier!
24
Introducing AugeasProviders
•Collection of custom types and providers
•Written in native Ruby rather than Puppet's DSL
•Utilizes bindings directly for flexibility
•Heavily tested
25
And that example on AugeasProviders
sysctl { 'kernel.msgmnb':
  value   => '99999',
  comment => 'recommended by db vendor'
}
26
And the more complex example
  $sshd_default_groups = ['engineers', 'admins']
  $sshd_allowed_groups = $::env ? {
    /prod/    => $sshd_default_groups,
    default   => concat($sshd_default_groups, ['devs']),
  }
  sshd_config { 'AllowGroups':
    value  => $sshd_allowed_groups,
    notify => Service['sshd'],
  }
27
What's it got?
•host
•mailalias
•sshd_config
•shellvars /etc/{defaults,sysconfig}/*
•puppet's auth.conf (puppet_auth)
•syslog.conf entries (rsyslog and sysklog!)
•Grub and Grub2 kernel_parameter
•pam
•And more!
28
Give it to me!
29
Load it up
puppet module install domcleal/augeasproviders
or
git clone https://github.com/hercules­
team/augeasproviders
30
What about the future??
31
AugeasProviders next
32
What's changing?
•Minimized duplication of most common patterns
•Solid generic library for reuse-ability
•Enables Augeas based providers in your modules
33
Contribute
34
What can you do?
•Use it
•Report bugs
•Create new providers!
–resolv.conf
–systemd unit files
–etc
35
Educate me!
36
Augeas training
•Provided by camptocamp
•http://camptocamp.com
– Solutions->Infrastructure->Training
•Fundamentals
–Using augtool, XPath Augeas language, Augeas type
in Puppet
•Advanced
– Develop using augeas libraries and advanced tree
manipulation
•Extending Augeas
–Writing lenses and providers
37
Info and Help
•augeas.net
•augeasproviders.com
•#augeas on FreeNode
•augeas@lists.redhat.com
38

More Related Content

What's hot

Tools used for debugging
Tools used for debuggingTools used for debugging
Tools used for debuggingMarian Marinov
 
REDIS intro and how to use redis
REDIS intro and how to use redisREDIS intro and how to use redis
REDIS intro and how to use redisKris Jeong
 
Arbiter volumes in gluster
Arbiter volumes in glusterArbiter volumes in gluster
Arbiter volumes in glusteritisravi
 
Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)yarry
 
Object Storage with Gluster
Object Storage with GlusterObject Storage with Gluster
Object Storage with GlusterGluster.org
 
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...DataStax Academy
 
ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)Ontico
 
nginx: writing your first module
nginx: writing your first modulenginx: writing your first module
nginx: writing your first moduleredivy
 
An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...
An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...
An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...Jeff Yang
 
20140513_jeffyang_demo_openstack
20140513_jeffyang_demo_openstack20140513_jeffyang_demo_openstack
20140513_jeffyang_demo_openstackJeff Yang
 
How to Troubleshoot OpenStack Without Losing Sleep
How to Troubleshoot OpenStack Without Losing SleepHow to Troubleshoot OpenStack Without Losing Sleep
How to Troubleshoot OpenStack Without Losing SleepSadique Puthen
 
Corosync and Pacemaker
Corosync and PacemakerCorosync and Pacemaker
Corosync and PacemakerMarian Marinov
 
zmq.rs - A brief history of concurrency in Rust
zmq.rs - A brief history of concurrency in Rustzmq.rs - A brief history of concurrency in Rust
zmq.rs - A brief history of concurrency in RustFantix King 王川
 
От sysV к systemd
От sysV к systemdОт sysV к systemd
От sysV к systemdDenis Kovalev
 
LSA2 - 02 Control Groups
LSA2 - 02   Control GroupsLSA2 - 02   Control Groups
LSA2 - 02 Control GroupsMarian Marinov
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zeroSoheilSabzevari2
 
Ruby on embedded devices rug::b Aug 2014
Ruby on embedded devices rug::b Aug 2014Ruby on embedded devices rug::b Aug 2014
Ruby on embedded devices rug::b Aug 2014Eno Thierbach
 

What's hot (20)

Tools used for debugging
Tools used for debuggingTools used for debugging
Tools used for debugging
 
Redis ndc2013
Redis ndc2013Redis ndc2013
Redis ndc2013
 
REDIS intro and how to use redis
REDIS intro and how to use redisREDIS intro and how to use redis
REDIS intro and how to use redis
 
Arbiter volumes in gluster
Arbiter volumes in glusterArbiter volumes in gluster
Arbiter volumes in gluster
 
Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)Rails Hardware (no conclusions!)
Rails Hardware (no conclusions!)
 
Object Storage with Gluster
Object Storage with GlusterObject Storage with Gluster
Object Storage with Gluster
 
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
Cassandra Summit 2014: Down with Tweaking! Removing Tunable Complexity for Ca...
 
ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / Álvaro Hernández Tortosa (8Kdata)
 
Haproxy - zastosowania
Haproxy - zastosowaniaHaproxy - zastosowania
Haproxy - zastosowania
 
nginx: writing your first module
nginx: writing your first modulenginx: writing your first module
nginx: writing your first module
 
An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...
An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...
An High Available Database for OpenStack Cloud Production by Pacemaker, Coros...
 
20140513_jeffyang_demo_openstack
20140513_jeffyang_demo_openstack20140513_jeffyang_demo_openstack
20140513_jeffyang_demo_openstack
 
How to Troubleshoot OpenStack Without Losing Sleep
How to Troubleshoot OpenStack Without Losing SleepHow to Troubleshoot OpenStack Without Losing Sleep
How to Troubleshoot OpenStack Without Losing Sleep
 
Corosync and Pacemaker
Corosync and PacemakerCorosync and Pacemaker
Corosync and Pacemaker
 
zmq.rs - A brief history of concurrency in Rust
zmq.rs - A brief history of concurrency in Rustzmq.rs - A brief history of concurrency in Rust
zmq.rs - A brief history of concurrency in Rust
 
От sysV к systemd
От sysV к systemdОт sysV к systemd
От sysV к systemd
 
LSA2 - 02 Control Groups
LSA2 - 02   Control GroupsLSA2 - 02   Control Groups
LSA2 - 02 Control Groups
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zero
 
Ruby on embedded devices rug::b Aug 2014
Ruby on embedded devices rug::b Aug 2014Ruby on embedded devices rug::b Aug 2014
Ruby on embedded devices rug::b Aug 2014
 
LSA2 - 02 Namespaces
LSA2 - 02  NamespacesLSA2 - 02  Namespaces
LSA2 - 02 Namespaces
 

Viewers also liked

Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...
Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...
Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...Puppet
 
Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Puppet
 
Monitoring with Exported Resources - PuppetConf 2014
Monitoring with Exported Resources - PuppetConf 2014Monitoring with Exported Resources - PuppetConf 2014
Monitoring with Exported Resources - PuppetConf 2014Puppet
 
The Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet Labs
The Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet LabsThe Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet Labs
The Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet LabsPuppet
 
Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...
Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...
Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...Puppet
 
DevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural Change
DevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural ChangeDevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural Change
DevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural ChangePuppet
 
Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...Puppet
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Puppet
 
Puppet for Windows Users - PuppetConf 2014
Puppet for Windows Users - PuppetConf 2014Puppet for Windows Users - PuppetConf 2014
Puppet for Windows Users - PuppetConf 2014Puppet
 
Intro to Using MCollective - PuppetConf 2014
Intro to Using MCollective - PuppetConf 2014Intro to Using MCollective - PuppetConf 2014
Intro to Using MCollective - PuppetConf 2014Puppet
 
Puppetizing Multitier Architecture - PuppetConf 2014
Puppetizing Multitier Architecture - PuppetConf 2014Puppetizing Multitier Architecture - PuppetConf 2014
Puppetizing Multitier Architecture - PuppetConf 2014Puppet
 
Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Puppet
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp AltantaPuppet
 
Node Classifier Fundamentals - PuppetConf 2014
Node Classifier Fundamentals - PuppetConf 2014Node Classifier Fundamentals - PuppetConf 2014
Node Classifier Fundamentals - PuppetConf 2014Puppet
 
Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014
Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014
Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014Puppet
 
Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...
Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...
Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...Puppet
 
The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014Puppet
 
Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...
Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...
Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...Puppet
 
Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...
Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...
Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...Puppet
 

Viewers also liked (19)

Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...
Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...
Automating Community Code Contributions to Puppet with Ruby, GitHub, Heroku, ...
 
Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014Test-Driven Puppet Development - PuppetConf 2014
Test-Driven Puppet Development - PuppetConf 2014
 
Monitoring with Exported Resources - PuppetConf 2014
Monitoring with Exported Resources - PuppetConf 2014Monitoring with Exported Resources - PuppetConf 2014
Monitoring with Exported Resources - PuppetConf 2014
 
The Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet Labs
The Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet LabsThe Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet Labs
The Grand Puppet Sub-Systems Tour - Nicholas Fagerlund, Puppet Labs
 
Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...
Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...
Vampires vs Werewolves: Ending the War Between Developers and Sysadmins with ...
 
DevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural Change
DevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural ChangeDevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural Change
DevOps Isn’t Just for WebOps: The Guerrilla’s Guide to Cultural Change
 
Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...Implementing Puppet at a South American Government Agency, Challenges and Sol...
Implementing Puppet at a South American Government Agency, Challenges and Sol...
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014
 
Puppet for Windows Users - PuppetConf 2014
Puppet for Windows Users - PuppetConf 2014Puppet for Windows Users - PuppetConf 2014
Puppet for Windows Users - PuppetConf 2014
 
Intro to Using MCollective - PuppetConf 2014
Intro to Using MCollective - PuppetConf 2014Intro to Using MCollective - PuppetConf 2014
Intro to Using MCollective - PuppetConf 2014
 
Puppetizing Multitier Architecture - PuppetConf 2014
Puppetizing Multitier Architecture - PuppetConf 2014Puppetizing Multitier Architecture - PuppetConf 2014
Puppetizing Multitier Architecture - PuppetConf 2014
 
Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 
Node Classifier Fundamentals - PuppetConf 2014
Node Classifier Fundamentals - PuppetConf 2014Node Classifier Fundamentals - PuppetConf 2014
Node Classifier Fundamentals - PuppetConf 2014
 
Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014
Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014
Using Puppet to Stand Up Centralized Logging and Metrics - PuppetConf 2014
 
Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...
Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...
Doing the Refactor Dance - Making Your Puppet Modules More Modular - PuppetCo...
 
The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014The Puppet Master on the JVM - PuppetConf 2014
The Puppet Master on the JVM - PuppetConf 2014
 
Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...
Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...
Case Study: Developing a Vblock Systems Based Private Cloud Platform with Pup...
 
Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...
Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...
Puppet Camp Tokyo 2014: Kickstack: A pure-Puppet rapid deployment system for ...
 

Similar to Puppet Camp Dallas 2014: Replacing Simple Puppet Modules with Providers

X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newYiwei Ma
 
Live deployment, ci, drupal
Live deployment, ci, drupalLive deployment, ci, drupal
Live deployment, ci, drupalAndrii Podanenko
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Praguetomasbart
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013dotCloud
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Docker, Inc.
 
55 best linux tips, tricks and command lines
55 best linux tips, tricks and command lines55 best linux tips, tricks and command lines
55 best linux tips, tricks and command linesArif Wahyudi
 
Pluggable Monitoring
Pluggable MonitoringPluggable Monitoring
Pluggable MonitoringSalo Shp
 
Container security: seccomp, network e namespaces
Container security: seccomp, network e namespacesContainer security: seccomp, network e namespaces
Container security: seccomp, network e namespacesKiratech
 
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaTutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaArun Ganesh
 
Grabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the TrunkGrabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the TrunkHarold Giménez
 
How to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita GalkinHow to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita GalkinSigma Software
 
Workflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesWorkflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesPuppet
 
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakWorkflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakNETWAYS
 
Redis深入浅出
Redis深入浅出Redis深入浅出
Redis深入浅出锐 张
 
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey GordeychikCODE BLUE
 
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB DevroomMore on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB DevroomValeriy Kravchuk
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in styleDefconRussia
 

Similar to Puppet Camp Dallas 2014: Replacing Simple Puppet Modules with Providers (20)

X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 new
 
Live deployment, ci, drupal
Live deployment, ci, drupalLive deployment, ci, drupal
Live deployment, ci, drupal
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
 
55 best linux tips, tricks and command lines
55 best linux tips, tricks and command lines55 best linux tips, tricks and command lines
55 best linux tips, tricks and command lines
 
Pluggable Monitoring
Pluggable MonitoringPluggable Monitoring
Pluggable Monitoring
 
Container security: seccomp, network e namespaces
Container security: seccomp, network e namespacesContainer security: seccomp, network e namespaces
Container security: seccomp, network e namespaces
 
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaTutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
 
Genode Compositions
Genode CompositionsGenode Compositions
Genode Compositions
 
Grabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the TrunkGrabbing the PostgreSQL Elephant by the Trunk
Grabbing the PostgreSQL Elephant by the Trunk
 
5 things MySql
5 things MySql5 things MySql
5 things MySql
 
How to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita GalkinHow to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita Galkin
 
Workflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large EnterprisesWorkflow story: Theory versus practice in Large Enterprises
Workflow story: Theory versus practice in Large Enterprises
 
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin PiebiakWorkflow story: Theory versus Practice in large enterprises by Marcin Piebiak
Workflow story: Theory versus Practice in large enterprises by Marcin Piebiak
 
Redis深入浅出
Redis深入浅出Redis深入浅出
Redis深入浅出
 
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
[CB20] Vulnerabilities of Machine Learning Infrastructure by Sergey Gordeychik
 
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB DevroomMore on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
More on bpftrace for MariaDB DBAs and Developers - FOSDEM 2022 MariaDB Devroom
 
Postgres clusters
Postgres clustersPostgres clusters
Postgres clusters
 
Kettunen, miaubiz fuzzing at scale and in style
Kettunen, miaubiz   fuzzing at scale and in styleKettunen, miaubiz   fuzzing at scale and in style
Kettunen, miaubiz fuzzing at scale and in style
 

More from Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscodePuppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkPuppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping groundPuppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyPuppet
 

More from Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Recently uploaded

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Recently uploaded (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Puppet Camp Dallas 2014: Replacing Simple Puppet Modules with Providers

  • 1. Replacing simple modules with Custom Types and Providers Or Stop managing templates, and start managing your configs
  • 2. 2 Greg Swift Linux Admin/Engineer ~ 12 yrs Red Hat Certified Engineer ~ 6 yrs Augeas user ~6 yrs Puppet user ~ 3 yrs greg.swift@{rackspace.com,nytefyre.net} google.com/+GregSwift linkedin.com/gregoryswift github.com/{gregswift,rackergs} xaeth on Fedora, FreeNode, Twitter, and Ingress
  • 3. 3 Bit of time travel... •Past –An unpleasant reminder of configs past •Present –Tools available today that help •Future –What's next?
  • 6. 6 Lets change that value sed ­i 's/^(kernel.msgmnb = )([0­9]*)$/## Changing  for db configuration. Was:n## 12n199999/'  sysctl.conf
  • 7. 7 Looks good so far... # Controls the default maximum size of a message queue ## Changing for db configuration. Was: ## kernel.msgmnb = 65536 kernel.msgmnb = 99999
  • 8. 8 But the next run? # Controls the default maximum size of a message queue ## Changing for db configuration. Was: ## ## Changing for db configuration. Was: ## kernel.msgmnb = 65536 kernel.msgmnb = 99999 ## Changing for db configuration. Was: ## kernel.msgmnb = 99999 kernel.msgmnb = 99999
  • 10. 10 Templates... yay? •Great for 1 type of system... maybe even a couple •Supporting multiple OS releases or distributions?
  • 11. 11 Wouldn't it be nice? •Safe •Repeatable •Extensible •Multi-language
  • 12. 12 But that is a herculean task...
  • 13. 13 Meet team Hercules David Lutterkort (Now @ PuppetLabs) Raphaël Pinson Dominic Cleal Francis Giraldeau
  • 15. 15 What is it? •An API provided by a C library •A domain-specific language to describe configuration file formats, presented as lenses •Canonical tree representations of configuration files •A command line tool to manipulate configuration from the shell and shell scripts •Language bindings to do the same from your favorite scripting language
  • 16. 16 Lense all the things!
  • 17. 17 Just to name a few.... access activemq_conf activemq_xml aliases anacron approx aptcacherngsecurity aptconf aptpreferences aptsources apt_update_manager authorized_keys automaster automounter avahi backuppchosts bbhosts bootconf build cachefilesd carbon cgconfig cgrules channels cobblermodules cobblersettings collectd cron crypttab cups cyrus_imapd darkice debctrl desktop device_map dhclient dhcpd dnsmasq dovecot dpkg dput erlang ethers exports fai_diskconfig fonts fstab fuse gdm group grub gtkbookmarks host_conf hostname hosts_access hosts htpasswd httpd inetd inifile inittab inputrc interfaces iproute2 iptables jaas jettyrealm jmxaccess jmxpassword json kdump keepalived krb5 ldif ldso lightdm limits login_defs logrotate logwatch lokkit lvm mcollective mdadm_conf memcached mke2fs modprobe modules modules_conf mongodbserver monit multipath mysql nagioscfg nagiosobjects netmasks networkmanager networks nginx nrpe nsswitch ntp ntpd odbc openshift_config openshift_http openshift_quickstarts openvpn pam pamconf passwd pbuilder pg_hba php phpvars postfix_access postfix_main postfix_master postfix_transport postfix_virtual postgresql properties protocols puppet puppet_auth puppetfileserver pythonpaste qpid quote rabbitmq redis reprepro_uploaders resolv rsyncd rsyslog rx samba schroot securetty sep services shells shellvars shellvars_list simplelines simplevars sip_conf slapd smbusers solaris_system soma spacevars splunk squid ssh sshd sssd stunnel subversion sudoers sysconfig sysctl syslog systemd thttpd up2date util vfstab vmware_config vsftpd webmin wine xendconfsxp xinetd xml xorg xymon yum
  • 18. 18 Don't see your favorite config? •Build •IniFile •Rx •Sep •Shellvars •Shellvars_list •Simplelines •Simplevars •Util
  • 19. 19 Our earlier example.. on Augeas augeas { 'set kernel.msgmnb per db vendor':   context => '/files/etc/sysctl.conf',   onlyif  => 'kernel.msgmnb != 99999',   changes => 'set kernel.msgmnb 99999', }
  • 21. 21 A more complex example... define ssh_allowgroup ($ensure) {   if $ensure == present {       $match = '=='       $change = “set AllowGroups/01 ${title}”   } else {       $match = '!='       $change = 'rm AllowGroups/[.=${title}]”   }   augeas { “sshd_config/AllowGroups ${title}”:     context => '/files/etc/sshd_config',     onlyif  => “match AllowGroups/[.=${title}] size $match 0”,     changes => $change,   } } $sshd_default_groups = ['engineers', 'admins'] $sshd_allowed_groups = $::env ? {     /prod/    => $sshd_default_groups,     default   => concat($sshd_default_groups, ['devs']), } ssh_allowgroup { $sshd_allowed_groups:   ensure => present, }
  • 22. 22 Well I tried it once, but... •Lenses are hard to write •Xpathing is hard •Its just hard!
  • 24. 24 Introducing AugeasProviders •Collection of custom types and providers •Written in native Ruby rather than Puppet's DSL •Utilizes bindings directly for flexibility •Heavily tested
  • 25. 25 And that example on AugeasProviders sysctl { 'kernel.msgmnb':   value   => '99999',   comment => 'recommended by db vendor' }
  • 26. 26 And the more complex example   $sshd_default_groups = ['engineers', 'admins']   $sshd_allowed_groups = $::env ? {     /prod/    => $sshd_default_groups,     default   => concat($sshd_default_groups, ['devs']),   }   sshd_config { 'AllowGroups':     value  => $sshd_allowed_groups,     notify => Service['sshd'],   }
  • 27. 27 What's it got? •host •mailalias •sshd_config •shellvars /etc/{defaults,sysconfig}/* •puppet's auth.conf (puppet_auth) •syslog.conf entries (rsyslog and sysklog!) •Grub and Grub2 kernel_parameter •pam •And more!
  • 30. 30 What about the future??
  • 32. 32 What's changing? •Minimized duplication of most common patterns •Solid generic library for reuse-ability •Enables Augeas based providers in your modules
  • 34. 34 What can you do? •Use it •Report bugs •Create new providers! –resolv.conf –systemd unit files –etc
  • 36. 36 Augeas training •Provided by camptocamp •http://camptocamp.com – Solutions->Infrastructure->Training •Fundamentals –Using augtool, XPath Augeas language, Augeas type in Puppet •Advanced – Develop using augeas libraries and advanced tree manipulation •Extending Augeas –Writing lenses and providers
  • 38. 38