SlideShare une entreprise Scribd logo
1  sur  29
02/26/17Puppet Basic Concepts
Chiranjiv D. Shetye
What is Puppet?
• Puppet is:
– a declarative language for expressing system configuration.
– a client and server for distributing it.
– a library for realizing the configuration.
• Puppet is an abstraction layer between the system administration and
the system.
• Puppet is written in Ruby and distributed under the GPL.
How Puppet Works
• Client (Agent) - puppetd
• Server - puppetmasterd
• The client connects to the server every half an hour (can be specified).
• The server compiles the configuration for the client (based on what
you write) and sends it to the client.
• The client checks the configuration it receives (or a cached version if it
can't contact the server) against what is really on the machine and
tries to fix whatever is wrong.
• Client (node) configuration can be stored in LDAP, in a database or in
the puppet configuration files.
Why Puppet?
• Puppet supports all of the operating systems that we are using, as well
as those that we may use in the future.
• Puppet comes the closest (of the currently available tools) to how we
already think about our configurations.
• Puppet uses SSL to securely communicate between the client and
server.
• Puppet has a large and active user community and is being actively
developed and supported.
What Puppet Needs
• ruby
• facter
• puppet
What is Facter?
• Facter gathers information about the client, which can be used as
variables within puppet.
• You can add custom facts as needed.
case $operatingsystem {
freebsd: {
$rootgroup = "wheel"
}
default: {
$rootgroup = "root"
}
}
Example Facts
debiantest:~# facter
architecture => i386
debianversion => etch
domain => example.com
facterversion => 1.3.8
fqdn => debiantest.example.com
hardwareisa => unknown
hardwaremodel => i686
hostname => debiantest
id => root
ipaddress => 192.168.1.41
ipaddress_eth0 => 192.168.1.41
kernel => Linux
kernelrelease => 2.6.18-4-686
macaddress => 00:0C:29:DC:FC:D9
macaddress_eth0 => 00:0C:29:DC:FC:D9
manufacturer => VMware, Inc.
Example Facts continued
memoryfree => 214.37 MB
memorysize => 250.95 MB
operatingsystem => Debian
operatingsystemrelease => 2.6.18-4-686
processor0 => Intel(R) Xeon(TM) CPU 3.06GHz
processorcount => 1
productname => VMware Virtual Platform
ps => ps -ef
puppetversion => 0.23.2
rubysitedir => /usr/local/lib/site_ruby/1.8
rubyversion => 1.8.5
serialnumber => VMware-56 4d 99 87 23 bb 5e 0e-bb 1e
e8 75 32 dc fc d9
swapfree => 235.29 MB
swapsize => 235.29 MB
uniqueid => 00000000
What Can Puppet Do?
• Puppet manages objects on the client, called resources.
• Resources are come in different types. Some of the types are:
– cron
– exec
– file
– group
– host
– mailalias
– package
– service
– user
Types and Providers
• Types are implemented by providers.
• Puppet automatically figures out which provider to use on which
platform.
• For example, package management is done with apt-get by default on
debian, but by up2date on redhat.
• You can override the type if you want.
Getting Started
• Install puppet (and facter and ruby).
• Set up the server (puppetmasterd).
• Write a manifest for your node and upload it to the server.
• Start puppetmasterd on the server.
• Run puppetd on the node.
Basic File Architecture
Production
Manifests
Site.pp
Node default {
----------------------------------
-----------------------------------
-----------------------------------
}
Node centos {
----------------------------------------
----------------------------------------
----------------------------------------
}
What is a Node?
●
A configuration block matching a client
●
Can contain types, classes
●
“default” node matches any client without a node block
What is a Manifest?
• Manifest are recipes that Puppet uses to build the client configuration.
• Let's create a simple manifest:
node default {
file { ‘/etc/motd’:
owner => ‘root’,
group => ‘root’,
mode => ‘0644’,
content => “nThis is the Test Servern”
}
}
• This creates a file called motd, in /etc/ with text "This is the Test
Server"
A More Useful Class
class bacula-client {
package { "bacula-client": ensure => present; }
service { "bacula-fd":
ensure => running,
enable => true,
}
file {"/etc/bacula/bacula-fd.conf":
mode => "644",
owner => "root",
group => "root",
ensure => present,
content => template("bacula/bacula-fd.conf"),
}
}
Templates
class apache2 {
define simple-vhost ( $admin = "webmaster",
$aliases, $docroot) {
file { "/etc/apache2/sites-available/$name":
mode => "644",
require => [ Package["apache2"],
Package["cronolog"], Service["apache2"] ],
content => template("apache/vhost.conf"),
}
}
}
node debiantest {
include apache2
apache2::simple-vhost { "debian.example.com":
admin => "system@example.com", aliases =>
[ “debiantest.examplet.com”], ["debian" ],
docroot => "/var/www/debian"}
}
vhost.conf Template
• Puppet uses Ruby's ERB template system:
<VirtualHost *>
ServerAdmin <%= admin %>
DocumentRoot <%= docroot %>
ServerName <%= name %>
<% aliases.each do |al| -%>
ServerAlias <%= al %>
<% end -%>
ErrorLog "|/usr/bin/cronolog
/var/log/apache/<%= name %>/%Y-%m/error-%d"
CustomLog "|/usr/bin/cronolog
/var/log/apache/<%= name %>/%Y-%m/access %d" sane
</VirtualHost>
Template Output
# more /etc/apache2/sites-available/debian.example.com
<VirtualHost *>
ServerAdmin system@example.com
DocumentRoot /var/www/debian
ServerName debian.example.com
ServerAlias debiantest.example.com
ServerAlias debian
ErrorLog "|/usr/bin/cronolog
/var/log/apache/debian.example.com/%Y-%m/error-%d"
CustomLog "|/usr/bin/cronolog
/var/log/apache/debian.example.com/%Y-%m/access-%d"
sane
</VirtualHost>
Classes and Definitions
• Classes are groups of resources.
• Definitions are similar to classes, but they can be instantiated multiple
times with different arguments on the same node.
class apache2 {
define simple-vhost ( $admin = "webmaster", $aliases,
$docroot) {
file { "/etc/apache2/sites-available/$name":
mode => "644",
require => [ Package["apache2"],
Service["apache2"] ],
content => template("apache/vhost.conf"),
} } }
node debiantest {
include apache2
apache2::simple-vhost { "debian.example.com": docroot
=> "/var/www/debian"}
apache2::simple-vhost { "test.example.com": docroot =>
"/var/www/test"}
}
Dependencies
• Dependencies allow you specify the order objects will be applied. For
example, you don't want to try to put a file in /etc/apache2 if apache2
is not installed yet.
class apache2 {
define simple-vhost ( $admin = "webmaster",
$aliases, $docroot) {
file { "/etc/apache2/sites-available/$name":
mode => "644",
require => [ Package["apache2"],
Service["apache2"] ],
content => template("apache/vhost.conf"),
}
}
}
Notify, Subscribe and Exec
• Let us make sure mail to postmaster goes to root and run newaliases
when we update this:
mailalias { "postmaster":
ensure => present,
recipient => "root",
notify => Exec["newaliases"],
}
exec { "newaliases":
path => ["/usr/bin", "/usr/sbin"],
refreshonly => true,
}
• On the other hand, we can tell puppet that a service should be
restarted when a file changes:
service { "nrpe":
ensure => running,
enable => true,
subscribe => File["/etc/nagios/nrpe.cfg"];
}
Inheritance
• Puppet types can inherit from similar types and override if needed:
class bacula-client {
package { "bacula-client": ensure => present; }
service { "bacula-fd": ensure => running, enable => true,
}
file {"/etc/bacula/bacula-fd.conf":
mode => "644",
content => template("bacula/bacula-fd.conf"),
}
}
class bacula-special inherits bacula-client {
File[“/etc/bacula/bacula-fd.conf”] {
content => template("bacula/bacula-fd.conf-special"),
}
}
• A node that includes bacula-special will also have the package installed and
the service running, but /etc/bacula/bacula-fd.conf will be taken from the
second template.
Modules
• Modules allow you to group both the logic and the files for an
application together.
• Puppet automatically searches its module path to find modules.
• Modules can contain four types of files, each of which must be stored
in a separate subdirectory:
– Manifests - must be stored in manifests/, and if you create
manifests/init.pp then that file will be loaded if you import the
module name directly, e.g. import "mymodule".
– Templates - must be stored in templates/, and the module name
must be added to the template name:
template("mymodule/mytemplate.erb")
– Files - stored in files/, these are available from the file server under
modules/<module name>/files/<file name>.
– Plugins – additional types, providers or facts.
Fileserver & Filebucket
• Puppet also includes a file server which you can use for transferring
files from the server to the client.
• If you configure it, puppet can also save a backup of each file that is
changed on the client to the server. The backups go in a filebucket
and can be retrieved later.
Client Install on Debian Linux
debiantest:~# cat >> /etc/apt/sources.list:
deb http://debian.example.com etch main
^D
debiantest:~# aptitude update
debiantest:~# aptitude install puppet
Client Install continued
New Workflow
Advanced Topics
• Tags
• Reports
• CA
• SSL issues
Questions?

Contenu connexe

Tendances

MySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxMySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxNeoClova
 
Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10Vasudeva Rao
 
Meb Backup & Recovery Performance
Meb Backup & Recovery PerformanceMeb Backup & Recovery Performance
Meb Backup & Recovery PerformanceKeith Hollman
 
Linux con europe_2014_f
Linux con europe_2014_fLinux con europe_2014_f
Linux con europe_2014_fsprdd
 
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)Nag Arvind Gudiseva
 
Introduction to Stacki at Atlanta Meetup February 2016
Introduction to Stacki at Atlanta Meetup February 2016Introduction to Stacki at Atlanta Meetup February 2016
Introduction to Stacki at Atlanta Meetup February 2016StackIQ
 
Salesforce at Stacki Atlanta Meetup February 2016
Salesforce at Stacki Atlanta Meetup February 2016Salesforce at Stacki Atlanta Meetup February 2016
Salesforce at Stacki Atlanta Meetup February 2016StackIQ
 
MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바NeoClova
 
NoSQL атакует: JSON функции в MySQL сервере.
NoSQL атакует: JSON функции в MySQL сервере.NoSQL атакует: JSON функции в MySQL сервере.
NoSQL атакует: JSON функции в MySQL сервере.Sveta Smirnova
 
ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON Padma shree. T
 
Test complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerTest complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerGiuseppe Maxia
 
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu 康志強 大人
 
Apache hadoop 2_installation
Apache hadoop 2_installationApache hadoop 2_installation
Apache hadoop 2_installationsushantbit04
 
External Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLExternal Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLAntony T Curtis
 
Dbdeployer, the universal installer
Dbdeployer, the universal installerDbdeployer, the universal installer
Dbdeployer, the universal installerGiuseppe Maxia
 
My sql storage engines
My sql storage enginesMy sql storage engines
My sql storage enginesVasudeva Rao
 

Tendances (20)

MySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptxMySQL8.0_performance_schema.pptx
MySQL8.0_performance_schema.pptx
 
Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10Upgrading mysql version 5.5.30 to 5.6.10
Upgrading mysql version 5.5.30 to 5.6.10
 
My sql administration
My sql administrationMy sql administration
My sql administration
 
Meb Backup & Recovery Performance
Meb Backup & Recovery PerformanceMeb Backup & Recovery Performance
Meb Backup & Recovery Performance
 
Linux con europe_2014_f
Linux con europe_2014_fLinux con europe_2014_f
Linux con europe_2014_f
 
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
 
Introduction to Stacki at Atlanta Meetup February 2016
Introduction to Stacki at Atlanta Meetup February 2016Introduction to Stacki at Atlanta Meetup February 2016
Introduction to Stacki at Atlanta Meetup February 2016
 
Salesforce at Stacki Atlanta Meetup February 2016
Salesforce at Stacki Atlanta Meetup February 2016Salesforce at Stacki Atlanta Meetup February 2016
Salesforce at Stacki Atlanta Meetup February 2016
 
MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바MySQL Advanced Administrator 2021 - 네오클로바
MySQL Advanced Administrator 2021 - 네오클로바
 
2016 03 15_biological_databases_part4
2016 03 15_biological_databases_part42016 03 15_biological_databases_part4
2016 03 15_biological_databases_part4
 
NoSQL атакует: JSON функции в MySQL сервере.
NoSQL атакует: JSON функции в MySQL сервере.NoSQL атакует: JSON функции в MySQL сервере.
NoSQL атакует: JSON функции в MySQL сервере.
 
ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON ACADGILD:: HADOOP LESSON
ACADGILD:: HADOOP LESSON
 
Mysql all
Mysql allMysql all
Mysql all
 
Test complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerTest complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployer
 
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu
Hadoop 2.2.0 Multi-node cluster Installation on Ubuntu
 
Apache hadoop 2_installation
Apache hadoop 2_installationApache hadoop 2_installation
Apache hadoop 2_installation
 
Ansible
AnsibleAnsible
Ansible
 
External Language Stored Procedures for MySQL
External Language Stored Procedures for MySQLExternal Language Stored Procedures for MySQL
External Language Stored Procedures for MySQL
 
Dbdeployer, the universal installer
Dbdeployer, the universal installerDbdeployer, the universal installer
Dbdeployer, the universal installer
 
My sql storage engines
My sql storage enginesMy sql storage engines
My sql storage engines
 

En vedette

Puppet Fundamentals Talk at DevOps Dubai by Hameedullah Khan
Puppet Fundamentals Talk at DevOps Dubai by Hameedullah KhanPuppet Fundamentals Talk at DevOps Dubai by Hameedullah Khan
Puppet Fundamentals Talk at DevOps Dubai by Hameedullah KhanHameedullah Khan
 
Puppet Camp Atlanta 2014: r10k Puppet Workflow
Puppet Camp Atlanta 2014: r10k Puppet WorkflowPuppet Camp Atlanta 2014: r10k Puppet Workflow
Puppet Camp Atlanta 2014: r10k Puppet WorkflowPuppet
 
Diving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleDiving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleJulien Pivotto
 
Killer R10K Workflow - PuppetConf 2014
Killer R10K Workflow - PuppetConf 2014Killer R10K Workflow - PuppetConf 2014
Killer R10K Workflow - PuppetConf 2014Puppet
 
Voz activa y voz pasiva
Voz activa y voz pasivaVoz activa y voz pasiva
Voz activa y voz pasivaYoangel Loaiza
 
History of weight training
History of weight trainingHistory of weight training
History of weight trainingSkylar Flores
 
Análisis crítico de un proyecto
Análisis crítico de un proyectoAnálisis crítico de un proyecto
Análisis crítico de un proyectoPaco Palma
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 
PuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells Fargo
PuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells FargoPuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells Fargo
PuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells FargoPuppet
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Puppet
 
Proposal simtaru-2014
Proposal simtaru-2014Proposal simtaru-2014
Proposal simtaru-2014Fajar Baskoro
 
Introduction to puppet
Introduction to puppetIntroduction to puppet
Introduction to puppetHabeeb Rahman
 
Puppet DSL: back to the basics
Puppet DSL: back to the basicsPuppet DSL: back to the basics
Puppet DSL: back to the basicsJulien Pivotto
 
[OracleCode - SF] Distributed caching for your next node.js project
[OracleCode - SF] Distributed caching for your next node.js project[OracleCode - SF] Distributed caching for your next node.js project
[OracleCode - SF] Distributed caching for your next node.js projectViktor Gamov
 

En vedette (19)

Puppet Fundamentals Talk at DevOps Dubai by Hameedullah Khan
Puppet Fundamentals Talk at DevOps Dubai by Hameedullah KhanPuppet Fundamentals Talk at DevOps Dubai by Hameedullah Khan
Puppet Fundamentals Talk at DevOps Dubai by Hameedullah Khan
 
Puppet Camp Atlanta 2014: r10k Puppet Workflow
Puppet Camp Atlanta 2014: r10k Puppet WorkflowPuppet Camp Atlanta 2014: r10k Puppet Workflow
Puppet Camp Atlanta 2014: r10k Puppet Workflow
 
Diving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync ModuleDiving Into Puppet Providers Development: The Puppet-Corosync Module
Diving Into Puppet Providers Development: The Puppet-Corosync Module
 
Killer R10K Workflow - PuppetConf 2014
Killer R10K Workflow - PuppetConf 2014Killer R10K Workflow - PuppetConf 2014
Killer R10K Workflow - PuppetConf 2014
 
Voz activa y voz pasiva
Voz activa y voz pasivaVoz activa y voz pasiva
Voz activa y voz pasiva
 
History of weight training
History of weight trainingHistory of weight training
History of weight training
 
Proyecto Melicidade, Mercado Libre
Proyecto Melicidade, Mercado LibreProyecto Melicidade, Mercado Libre
Proyecto Melicidade, Mercado Libre
 
Análisis crítico de un proyecto
Análisis crítico de un proyectoAnálisis crítico de un proyecto
Análisis crítico de un proyecto
 
TODO ACERCA DE UN BLOG
TODO ACERCA DE UN BLOGTODO ACERCA DE UN BLOG
TODO ACERCA DE UN BLOG
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
PuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells Fargo
PuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells FargoPuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells Fargo
PuppetConf 2016: Puppet Troubleshooting – Thomas Uphill, Wells Fargo
 
Puppet fundamentals
Puppet fundamentalsPuppet fundamentals
Puppet fundamentals
 
Puppets
PuppetsPuppets
Puppets
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
 
Proposal simtaru-2014
Proposal simtaru-2014Proposal simtaru-2014
Proposal simtaru-2014
 
Introduction to puppet
Introduction to puppetIntroduction to puppet
Introduction to puppet
 
Puppet DSL: back to the basics
Puppet DSL: back to the basicsPuppet DSL: back to the basics
Puppet DSL: back to the basics
 
[OracleCode - SF] Distributed caching for your next node.js project
[OracleCode - SF] Distributed caching for your next node.js project[OracleCode - SF] Distributed caching for your next node.js project
[OracleCode - SF] Distributed caching for your next node.js project
 
CV Angling New
CV Angling NewCV Angling New
CV Angling New
 

Similaire à Puppet

Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013grim_radical
 
20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasaggarrett honeycutt
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsCobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsMichael Zhang
 
One click deployment
One click deploymentOne click deployment
One click deploymentAlex Su
 
A Presentation about Puppet that I've made at the OSSPAC conference
A Presentation about Puppet that I've made at the OSSPAC conferenceA Presentation about Puppet that I've made at the OSSPAC conference
A Presentation about Puppet that I've made at the OSSPAC conferenceohadlevy
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to AnsibleCédric Delgehier
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012Carlos Sanchez
 
Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...Henning Sprang
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Carlos Sanchez
 
A tour of Ansible
A tour of AnsibleA tour of Ansible
A tour of AnsibleDevOps Ltd.
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnwgarrett honeycutt
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with PuppetAlessandro Franceschi
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringAlessandro Franceschi
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with PuppetKris Buytaert
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with PuppetKris Buytaert
 

Similaire à Puppet (20)

Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013
 
20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag20090514 Introducing Puppet To Sasag
20090514 Introducing Puppet To Sasag
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsCobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale Environments
 
Cobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale EnvironmentsCobbler, Func and Puppet: Tools for Large Scale Environments
Cobbler, Func and Puppet: Tools for Large Scale Environments
 
One click deployment
One click deploymentOne click deployment
One click deployment
 
A Presentation about Puppet that I've made at the OSSPAC conference
A Presentation about Puppet that I've made at the OSSPAC conferenceA Presentation about Puppet that I've made at the OSSPAC conference
A Presentation about Puppet that I've made at the OSSPAC conference
 
Build Automation 101
Build Automation 101Build Automation 101
Build Automation 101
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...Automatic systems installations and change management wit FAI - Talk for Netw...
Automatic systems installations and change management wit FAI - Talk for Netw...
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
A tour of Ansible
A tour of AnsibleA tour of Ansible
A tour of Ansible
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with Puppet
 
#WeSpeakLinux Session
#WeSpeakLinux Session#WeSpeakLinux Session
#WeSpeakLinux Session
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoring
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with Puppet
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Puppet
PuppetPuppet
Puppet
 
Puppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutesPuppet: From 0 to 100 in 30 minutes
Puppet: From 0 to 100 in 30 minutes
 

Dernier

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
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
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 

Dernier (20)

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
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...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 

Puppet

  • 2. What is Puppet? • Puppet is: – a declarative language for expressing system configuration. – a client and server for distributing it. – a library for realizing the configuration. • Puppet is an abstraction layer between the system administration and the system. • Puppet is written in Ruby and distributed under the GPL.
  • 3. How Puppet Works • Client (Agent) - puppetd • Server - puppetmasterd • The client connects to the server every half an hour (can be specified). • The server compiles the configuration for the client (based on what you write) and sends it to the client. • The client checks the configuration it receives (or a cached version if it can't contact the server) against what is really on the machine and tries to fix whatever is wrong. • Client (node) configuration can be stored in LDAP, in a database or in the puppet configuration files.
  • 4. Why Puppet? • Puppet supports all of the operating systems that we are using, as well as those that we may use in the future. • Puppet comes the closest (of the currently available tools) to how we already think about our configurations. • Puppet uses SSL to securely communicate between the client and server. • Puppet has a large and active user community and is being actively developed and supported.
  • 5. What Puppet Needs • ruby • facter • puppet
  • 6. What is Facter? • Facter gathers information about the client, which can be used as variables within puppet. • You can add custom facts as needed. case $operatingsystem { freebsd: { $rootgroup = "wheel" } default: { $rootgroup = "root" } }
  • 7. Example Facts debiantest:~# facter architecture => i386 debianversion => etch domain => example.com facterversion => 1.3.8 fqdn => debiantest.example.com hardwareisa => unknown hardwaremodel => i686 hostname => debiantest id => root ipaddress => 192.168.1.41 ipaddress_eth0 => 192.168.1.41 kernel => Linux kernelrelease => 2.6.18-4-686 macaddress => 00:0C:29:DC:FC:D9 macaddress_eth0 => 00:0C:29:DC:FC:D9 manufacturer => VMware, Inc.
  • 8. Example Facts continued memoryfree => 214.37 MB memorysize => 250.95 MB operatingsystem => Debian operatingsystemrelease => 2.6.18-4-686 processor0 => Intel(R) Xeon(TM) CPU 3.06GHz processorcount => 1 productname => VMware Virtual Platform ps => ps -ef puppetversion => 0.23.2 rubysitedir => /usr/local/lib/site_ruby/1.8 rubyversion => 1.8.5 serialnumber => VMware-56 4d 99 87 23 bb 5e 0e-bb 1e e8 75 32 dc fc d9 swapfree => 235.29 MB swapsize => 235.29 MB uniqueid => 00000000
  • 9. What Can Puppet Do? • Puppet manages objects on the client, called resources. • Resources are come in different types. Some of the types are: – cron – exec – file – group – host – mailalias – package – service – user
  • 10. Types and Providers • Types are implemented by providers. • Puppet automatically figures out which provider to use on which platform. • For example, package management is done with apt-get by default on debian, but by up2date on redhat. • You can override the type if you want.
  • 11. Getting Started • Install puppet (and facter and ruby). • Set up the server (puppetmasterd). • Write a manifest for your node and upload it to the server. • Start puppetmasterd on the server. • Run puppetd on the node.
  • 12. Basic File Architecture Production Manifests Site.pp Node default { ---------------------------------- ----------------------------------- ----------------------------------- } Node centos { ---------------------------------------- ---------------------------------------- ---------------------------------------- }
  • 13. What is a Node? ● A configuration block matching a client ● Can contain types, classes ● “default” node matches any client without a node block
  • 14. What is a Manifest? • Manifest are recipes that Puppet uses to build the client configuration. • Let's create a simple manifest: node default { file { ‘/etc/motd’: owner => ‘root’, group => ‘root’, mode => ‘0644’, content => “nThis is the Test Servern” } } • This creates a file called motd, in /etc/ with text "This is the Test Server"
  • 15. A More Useful Class class bacula-client { package { "bacula-client": ensure => present; } service { "bacula-fd": ensure => running, enable => true, } file {"/etc/bacula/bacula-fd.conf": mode => "644", owner => "root", group => "root", ensure => present, content => template("bacula/bacula-fd.conf"), } }
  • 16. Templates class apache2 { define simple-vhost ( $admin = "webmaster", $aliases, $docroot) { file { "/etc/apache2/sites-available/$name": mode => "644", require => [ Package["apache2"], Package["cronolog"], Service["apache2"] ], content => template("apache/vhost.conf"), } } } node debiantest { include apache2 apache2::simple-vhost { "debian.example.com": admin => "system@example.com", aliases => [ “debiantest.examplet.com”], ["debian" ], docroot => "/var/www/debian"} }
  • 17. vhost.conf Template • Puppet uses Ruby's ERB template system: <VirtualHost *> ServerAdmin <%= admin %> DocumentRoot <%= docroot %> ServerName <%= name %> <% aliases.each do |al| -%> ServerAlias <%= al %> <% end -%> ErrorLog "|/usr/bin/cronolog /var/log/apache/<%= name %>/%Y-%m/error-%d" CustomLog "|/usr/bin/cronolog /var/log/apache/<%= name %>/%Y-%m/access %d" sane </VirtualHost>
  • 18. Template Output # more /etc/apache2/sites-available/debian.example.com <VirtualHost *> ServerAdmin system@example.com DocumentRoot /var/www/debian ServerName debian.example.com ServerAlias debiantest.example.com ServerAlias debian ErrorLog "|/usr/bin/cronolog /var/log/apache/debian.example.com/%Y-%m/error-%d" CustomLog "|/usr/bin/cronolog /var/log/apache/debian.example.com/%Y-%m/access-%d" sane </VirtualHost>
  • 19. Classes and Definitions • Classes are groups of resources. • Definitions are similar to classes, but they can be instantiated multiple times with different arguments on the same node. class apache2 { define simple-vhost ( $admin = "webmaster", $aliases, $docroot) { file { "/etc/apache2/sites-available/$name": mode => "644", require => [ Package["apache2"], Service["apache2"] ], content => template("apache/vhost.conf"), } } } node debiantest { include apache2 apache2::simple-vhost { "debian.example.com": docroot => "/var/www/debian"} apache2::simple-vhost { "test.example.com": docroot => "/var/www/test"} }
  • 20. Dependencies • Dependencies allow you specify the order objects will be applied. For example, you don't want to try to put a file in /etc/apache2 if apache2 is not installed yet. class apache2 { define simple-vhost ( $admin = "webmaster", $aliases, $docroot) { file { "/etc/apache2/sites-available/$name": mode => "644", require => [ Package["apache2"], Service["apache2"] ], content => template("apache/vhost.conf"), } } }
  • 21. Notify, Subscribe and Exec • Let us make sure mail to postmaster goes to root and run newaliases when we update this: mailalias { "postmaster": ensure => present, recipient => "root", notify => Exec["newaliases"], } exec { "newaliases": path => ["/usr/bin", "/usr/sbin"], refreshonly => true, } • On the other hand, we can tell puppet that a service should be restarted when a file changes: service { "nrpe": ensure => running, enable => true, subscribe => File["/etc/nagios/nrpe.cfg"]; }
  • 22. Inheritance • Puppet types can inherit from similar types and override if needed: class bacula-client { package { "bacula-client": ensure => present; } service { "bacula-fd": ensure => running, enable => true, } file {"/etc/bacula/bacula-fd.conf": mode => "644", content => template("bacula/bacula-fd.conf"), } } class bacula-special inherits bacula-client { File[“/etc/bacula/bacula-fd.conf”] { content => template("bacula/bacula-fd.conf-special"), } } • A node that includes bacula-special will also have the package installed and the service running, but /etc/bacula/bacula-fd.conf will be taken from the second template.
  • 23. Modules • Modules allow you to group both the logic and the files for an application together. • Puppet automatically searches its module path to find modules. • Modules can contain four types of files, each of which must be stored in a separate subdirectory: – Manifests - must be stored in manifests/, and if you create manifests/init.pp then that file will be loaded if you import the module name directly, e.g. import "mymodule". – Templates - must be stored in templates/, and the module name must be added to the template name: template("mymodule/mytemplate.erb") – Files - stored in files/, these are available from the file server under modules/<module name>/files/<file name>. – Plugins – additional types, providers or facts.
  • 24. Fileserver & Filebucket • Puppet also includes a file server which you can use for transferring files from the server to the client. • If you configure it, puppet can also save a backup of each file that is changed on the client to the server. The backups go in a filebucket and can be retrieved later.
  • 25. Client Install on Debian Linux debiantest:~# cat >> /etc/apt/sources.list: deb http://debian.example.com etch main ^D debiantest:~# aptitude update debiantest:~# aptitude install puppet
  • 28. Advanced Topics • Tags • Reports • CA • SSL issues

Notes de l'éditeur

  1. The ssh public keys are also in the facts, but have been removed from this slide.
  2. There are other types, but these are the main ones we care about for our site.
  3. This class now makes sure that the package named &amp;quot;bacula-client&amp;quot; is installed, the service called &amp;quot;bacula-fd&amp;quot; is running and will restart on boot (enabled). Also, the file &amp;quot;/etc/bacula/bacula-fd.conf&amp;quot; is there, and its contents are taken from that template. We will get to templates in a minute.
  4. Hostname is taken from facter, baculaserver is set in manifest