14. Language: Easy to Get Started
class 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'],
}
!
}
15. New Approach: Software
Defined Infrastructure
1. DEFINE 2. SIMULATE
3. ENFORCE }
Re-usable infrastructure-as-code Before deploying changes
4. REPORT
DESIRED
STATE
CURRENT
STATE
Insight into changes Automatically and reliably
16. Lifecycle of a Puppet Run
Facts
The node sends
normalized data
about itself to the
Puppet Master.
1
Catalog
Puppet uses the Facts to
compile a Catalog that
specifies how the node
should be configured.
2
4
Report
Puppetʼs open API
can also send data
to third party tools.
Report
3
The node
reports back
to Puppet
indicating the
configuration is
complete, which
is visible in the
Puppet Dashboard.
Report Collector
(Puppet or 3rd party tool)
Node
SSL secure
encryption
on all data
transport
Puppet
Master
17. Puppet
Architecture
PUPPET MASTER SERVER
Reporting GUI &
PUPPET FORGE CONTENT MARKETPLACE
Workflows Content Admin &
Security
PUPPET OPEN SOURCE PLATFORM
PUPPET
AGENT
PUPPET
AGENT
PUPPET
AGENT
Web Server Application Server Database Server
Hardware Virtual Machine Cloud
34. 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
35. 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
36. 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
37. 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
• Supports rich data structures
Foundation for Puppet / Puppet Enterprise Inventory
38. 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
39. 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
44. 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
46. People Love our
Worldwide Training!
“"I liked being with other sharp admins in an environment where
“cross-pollination" and experimentation were encouraged.
Very useful information, a good start for our Puppet team, and
would highly recommend it.
“
A brilliant course to jump into using puppet fast and effectively.