Nigel Kersten CIO/VP Operations
@nigelkersten IRC: nigelk
Introductions
A Quick Poll
The IT landscape is changing
quickly
More. Faster.
Old practices came from
constraints ...
...and those constraints are
gone
Major IT movements
SaaS sets the trend
Enterprise pays the bills
Driving down the cost of technological change
Started 8.5 years ago
Datacenter and Cloud
Automation
Very Simple Languageclass ssh { ! package { 'openssh-server': ensure => present, } ! file { 'sshd_config': path => '/etc/ssh/sshd_config', source => ‘puppet:///modules/ssh/sshd_config', require => Package['openssh-server'], notify => Service['sshd'], } ! service { 'sshd': ensure => running, enable => true, require => File['sshd_config'], } !}
New Approach: Software Defined Infrastructure
1. DEFINE 2. SIMULATE
4. REPORT
Re-usable infrastructure-as-code Before deploying changes
Automatically and reliably Insight into changes
DESIRED STATE
CURRENT STATE
3. ENFORCE
}
FactsThe node sends normalized data about itself to the Puppet Master.
1
CatalogPuppet uses the Facts tocompile a Catalog thatspecifies how the nodeshould be configured.
2
ReportPuppetʼs open API can also send data to third party tools.
4
ReportThe node reports back to Puppet indicating the configuration is complete, which is visible in the Puppet Dashboard.
3
Report Collector(Puppet or 3rd party tool)
Node
PuppetMaster
SSL secure encryption on all data transport
Lifecycle of a Puppet Run
Puppet Architecture
Web Server Database Server Application Server
Reporting GUI & Workflows Content Admin &
Security
Virtual Machine Cloud Hardware
PUPPET MASTER SERVER
PUPPET AGENT
PUPPET FORGE CONTENT MARKETPLACE
PUPPET AGENT
PUPPET AGENT
PUPPET OPEN SOURCE PLATFORM
Puppet Enterprise
Solid platform
Ecosystem Support
Additional Features
Interactive Event Reporting
Live Management: Remote Control of Puppet Agent
Live Management: Resource Browsing and Centralized Inv.
Cloud Provisioner /
VMWare Support
Non-Root Puppet Agent Support
Supported Modules
Supported Modules
Current Supported Modules
• puppetlabs/stdlib
• puppetlabs/concat
• puppetlabs/apt
• puppetlabs/registry
• puppetlabs/ntp
• puppetlabs/inifile
• puppetlabs/reboot
• puppetlabs/mysql
• puppetlabs/apache
• puppetlabs/firewall
• puppetlabs/java_ks
• puppetlabs/postgresql
Open Source
Technical Proving Ground
Highly Flexible Core Components
Puppet
• Core language for specifying infrastructure state
• Transactional system for enforcing it
• Resource Abstraction Layer
• Reusable modules: Puppet Forge
Puppet Enterprise built on top of Puppet
Puppet - News
• Puppet 3.5.0/3.6.0 released
• Directory Environments
• Future Parser
• SSH Key purging
• $facts hash
• Hashes/Arrays in facts
Puppet Enterprise built on top of Puppet
MCollective (mco)
• Parallel, real-time execution across your whole network
• Real-time discovery of all nodes and their functions
• Powerful command and control tool
Drives Orchestration Engine in Puppet Enterprise
MCollective - News
• Direct Addressing • Standard Input Discovery Plugin • Threading client option enabled
Drives Orchestration Engine in Puppet Enterprise
PuppetDB
• Stores all configurations, facts, and reports
• Knows everything there is to know about your infrastructure
• Foundation for nearly all reporting and analysis
Foundation for Puppet / Puppet Enterprise data storage
PuppetDB - News
• PuppetDB 2.0 • Environment support • Anonymized Exports
Foundation for Puppet / Puppet Enterprise data storage
Facter
• Facts: bits of data that you care about • Core inputs for customizing Puppet
configurations per host • Easily pluggable to collect new data
or store it in existing databases
Foundation for Puppet / Puppet Enterprise Inventory
Facter - News
• Facter 2.0 • Structured Facts
• Integer, Float, True, False, Nil, String, Array, Hash
• PluginSync External Facts • Aggregate Fact Resolution
Foundation for Puppet / Puppet Enterprise Inventory
Hiera
• Separate site configuration data from reusable code
• Iterate and promote code quickly without having to manage dev/test configuration differences
Foundation for Puppet / Puppet Enterprise Hierarchical Data
Razor
• Rules-based provisioning for bare metal hardware and virtual servers
• Feeds directly into your Puppet Infrastructure
• Physical machines as easy to provision as VMs
Provision servers, then use Puppet / Puppet Enterprise
Puppet Armatures
• Proposals to enhance / add features • For significant / large impact work • Community-focused process with
improved openness and transparency
• Working on simplifying process
github.com/puppetlabs/armatures
Feature Enhancements for Puppet
Puppet Forge
• Module repository • By the community ... For the community • Identify and use the best ones • Contribute your own modules
Add Additional Functionality to Puppet / Puppet Enterprise
Puppet Labs
Customers Everywhere
We’re Hiring!• Professional Services (everywhere)
• Engineering
• QA
• Modules
• Forge
• Windows
• Platform
• Solutions Engineering
• Support
• ...and lots more
puppetlabs.com/about/careers
What’s Next?
Join the Community• Learn from others
• Ask/Answer questions
• http://ask.puppetlabs.com
• mailing lists
• IRC
• Help with bug triage
• Contribute code
• Contribute modules on the Forge
puppetlabs.com/community
Take In-Person Training & Get Certified
People Love our Worldwide Training!
I liked being with other sharp admins in an environment where "cross-pollination" and experimentation were encouraged.““
A brilliant course to jump into using puppet fast and effectively.“Very useful information, a good start for our Puppet team, and would highly recommend it.
Influence Products
Register to Attend
Questions?
Questions?
Thank You! !
Learn More: http://puppetlabs.com
http://puppetlabs.com/community http://puppetlabs.com/puppet/puppet-enterprise/