SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Bootstrapping	
  Puppet	
  &	
  
Applica3on	
  Deployment	
  	
  
PuppetConf	
  ‘13	
  
August	
  22,	
  2013	
  
Presented by:
Robert de Macedo Soares
Application Security Engineer
Business Wire
robert.soares@businesswire.com
@argher
#puppetconf
Purpose	
  of	
  Puppet	
  
•  What	
  problems	
  are	
  we	
  trying	
  to	
  solve?	
  
•  RemediaBon	
  or	
  improvement?	
  
•  Are	
  our	
  exisBng	
  servers	
  a	
  mess?	
  	
  
•  What	
  are	
  our	
  plaDorms?	
  
	
  
	
  
	
  
Scenario	
  –	
  Best	
  Case	
  
•  Servers	
  are	
  new	
  
•  Servers	
  are	
  uniform	
  
•  No	
  fixes	
  needed	
  
•  Everyone	
  on	
  the	
  same	
  page	
  
•  One	
  operaBng	
  system	
  
	
  
Idealis)c	
  
	
  
Scenario	
  -­‐	
  Reality	
  
•  No	
  baseline	
  configuraBon	
  
•  Inconsistent	
  management	
  pracBces	
  
•  Many	
  fixes	
  required	
  
•  Teams	
  have	
  differing	
  requirements	
  
•  MulBple	
  operaBng	
  systems	
  
	
  
Realis)c	
  
	
  
Divergent	
  Needs	
  
Developers	
  
•  Need	
  deployment	
  soluBon	
  
•  Idempotence	
  
System	
  Administrators	
  
•  System	
  ConfiguraBon	
  
•  Password	
  &	
  User	
  Management	
  
	
  
Divergent	
  Needs	
  (cont.)	
  
Security	
  &	
  Management	
  
•  Host-­‐based	
  firewall	
  management	
  
•  Auditability	
  
•  Compliance	
  
•  ReporBng	
  
Divergent	
  Opera3ng	
  Systems	
  
•  Linux	
  
– Different	
  DistribuBons	
  (RedHat,	
  Debian,	
  etc.)	
  
•  Windows	
  
– Different	
  GeneraBons	
  
•  UNIX	
  
– Solaris?	
  HP-­‐UX?	
  
	
  
	
  
Decision	
  Time	
  
•  Right	
  tool	
  for	
  the	
  job	
  
– Puppet	
  Enterprise	
  vs.	
  Open	
  Source	
  
•  Test	
  before	
  comming	
  
•  Older	
  or	
  uncommon	
  operaBng	
  systems?	
  
– Puppet	
  Enterprise	
  simplifies	
  deployment	
  
•  <=10	
  servers?	
  
– Puppet	
  Enterprise	
  is	
  free	
  for	
  10	
  servers	
  
	
  
Open	
  Source	
  –	
  Why?	
  
•  Free	
  
•  Valuable	
  user	
  community	
  
•  Foreman	
  
– Complex	
  but	
  powerful	
  
•  Free	
  
	
  
Puppet	
  Enterprise	
  –	
  Why?	
  
•  Integrated	
  Dashboard	
  
– Auditability	
  /	
  ReporBng	
  
– Server	
  status	
  at	
  a	
  glance	
  
– MCollecBve	
  integraBon	
  (Live	
  Management)	
  
•  Prebuilt	
  Solaris	
  and	
  Linux	
  packages	
  
•  Support!	
  
– DownBme	
  more	
  expensive	
  than	
  licenses	
  
	
  
	
  
Bootstrapping	
  Puppet	
  
Infrastructure	
  Deployment	
  
•  What’s	
  our	
  architecture?	
  
– How	
  many	
  Bers?	
  
– How	
  many	
  Puppet	
  masters?	
  
– ReplicaBon?	
  
•  AutomaBon	
  tool	
  
Suggested	
  Architecture	
  
•  Master	
  per	
  Ber	
  
•  ReplicaBon	
  in	
  producBon	
  
– Nice	
  to	
  have	
  
•  Lab	
  master	
  and	
  clients	
  for	
  experimentaBon	
  
– Cover	
  your	
  OS	
  types	
  
•  Source	
  control	
  for	
  manifests	
  
	
  
Tiered	
  Infrastructure	
  
•  Two	
  Bers	
  minimum	
  
– Dev	
  
– ProducBon	
  
•  More	
  Bers	
  beneficial	
  
– Test	
  /	
  QA	
  Ber	
  exposes	
  problems	
  before	
  prod	
  
	
  
Introduc3on	
  to	
  Automa3on	
  
•  What	
  is	
  an	
  automaBon	
  tool?	
  
•  Why	
  use	
  one?	
  
•  Which	
  tool	
  is	
  best?	
  
– Fabric,	
  Capistrano,	
  etc.	
  
Example:	
  Fabric	
  
•  __init__.py	
  
	
  	
  	
  	
  import	
  fab_puppet_deploy	
  
•  Fab_puppet_deploy.py	
  
– Remember	
  to	
  set	
  env.hosts	
  
	
  	
  	
  	
  from	
  fabric.api	
  import	
  *	
  
	
  	
  	
  	
  @task(default=True)	
  
	
  	
  	
  	
  def	
  deploy_puppet(Ber=“dev”,uninstall=False):	
  
Automa3ng	
  the	
  Install	
  
•  Proper	
  tools	
  invaluable	
  
– Fabric,	
  Capistrano,	
  etc.	
  
•  Use	
  answers	
  files	
  
•  Expect	
  unexpected	
  problems	
  
– No	
  sudo?	
  
	
  
Automa3ng	
  the	
  Install	
  (cont.)	
  
•  Example	
  answers	
  file	
  
q_fail_on_unsuccessful_master_lookup=y	
  	
  
q_install=y	
  
q_puppet_cloud_install=n	
  
q_puppet_enterpriseconsole_install=n	
  
q_puppet_symlinks_install=y	
  
q_puppetagent_install=y	
  
q_puppetagent_server=puppet.dev.example.com	
  
q_puppetca_install=n	
  
q_puppetmaster_install=n	
  
q_vendor_packages_install=n	
  
	
  
Applica3on	
  Deployment	
  
Overview	
  
•  Source	
  control	
  integraBon	
  
•  BASH	
  scripts	
  –	
  easy	
  and	
  powerful	
  
•  Leverage	
  rake	
  API	
  
Early Approach	
  
•  Deploy	
  task	
  file	
  
– Text,	
  lists	
  packages	
  to	
  deploy	
  and	
  tagged	
  version	
  
•  Update	
  Puppet	
  groups	
  
– BASH,	
  rake	
  commands	
  to	
  alter	
  classes	
  /	
  groups	
  
•  Update	
  nodes	
  in	
  (Ber)	
  
– BASH,	
  rake	
  commands	
  to	
  alter	
  node	
  membership	
  
Source	
  Control	
  Workflow	
  
•  Update	
  module	
  -­‐>	
  new	
  tag	
  
– Don’t	
  deploy	
  from	
  trunk!	
  
•  Update	
  deploy	
  task	
  file	
  
•  Check	
  out	
  deploy	
  task	
  file	
  
– svn	
  co	
  hop://repo.example.com/puppet/deployfile	
  
•  Helper	
  script	
  
– Deploys	
  new	
  modules	
  over	
  old	
  
	
  
Introduc3on	
  to	
  Rake	
  
•  Build	
  tool	
  
– Similar	
  to	
  make	
  and	
  Ant	
  
•  Rakefiles	
  are	
  Makefiles	
  
– Standard	
  Ruby	
  syntax	
  
•  Can	
  create	
  mulB-­‐or-­‐single-­‐use	
  tasks	
  
– Namespace:task	
  
Rake	
  Tips	
  
•  Read	
  API	
  documentaBon	
  
–  hop://docs.puppetlabs.com/pe/latest/console_rake_api.html	
  
•  Rake	
  command	
  prefix	
  
–  rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/
Rakefile	
  
•  Set	
  RAILS_ENV	
  to	
  producBon	
  
– ~/.bashrc	
  or	
  in	
  script	
  
	
  
Update	
  Puppet	
  Groups	
  
#	
  Env	
  to	
  run	
  Ruby	
  in	
  
export	
  RAILS_ENV=producBon	
  
	
  
#	
  Create	
  Classes	
  
rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/Rakefile	
  
nodeclass:add	
  name=users::permissions	
  
rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/Rakefile	
  
nodeclass:add	
  name=packages::provisioner	
  
Update	
  Puppet	
  Groups	
  (cont.)	
  
#	
  Create	
  Groups	
  
rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/Rakefile	
  
nodegroup:add	
  name=provisioner	
  
	
  
#	
  Assign	
  Classes	
  to	
  Groups	
  
rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/Rakefile	
  
nodegroup:addclass	
  name=provisioner	
  class=users::permissions	
  
rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/Rakefile	
  
nodegroup:addclass	
  name=provisioner	
  
class=packages::provisioner	
  
Update	
  Nodes	
  
#	
  Env	
  to	
  run	
  Ruby	
  in	
  
export	
  RAILS_ENV=producBon	
  
	
  
#	
  Assign	
  nodes	
  to	
  groups	
  
rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/Rakefile	
  
node:groups	
  name=pro1.example.com	
  
groups=default,provisioner	
  
rake	
  -­‐f	
  /opt/puppet/share/puppet-­‐dashboard/Rakefile	
  
node:groups	
  name=pro2.example.com	
  
groups=default,provisioner,extragroup	
  
Rough	
  Spots	
  
•  Group	
  list	
  must	
  be	
  *complete*	
  
– Rake	
  will	
  recreate	
  the	
  group	
  list	
  for	
  a	
  node	
  
– No	
  incremental	
  addiBon	
  possible	
  
•  Directory	
  ownership	
  
– peadmin	
  /	
  puppet-­‐dashboard	
  or	
  custom	
  user	
  
•  Rake	
  API	
  can	
  be	
  improved	
  
– Nested	
  groups	
  only	
  Puppet	
  Enterprise	
  3.0+	
  
Rough	
  Spots	
  (cont.)	
  
•  Access	
  Control	
  
– No	
  way	
  to	
  limit	
  individual	
  commands	
  	
  
•  TargeBng	
  
– Custom	
  facts	
  and	
  hiera	
  recommended	
  
	
  
Next	
  Steps	
  
• Easy	
  tasks	
  first	
  
• Etc_facts	
  plugin	
  
• Hiera	
  is	
  useful	
  
• Package	
  repository	
  
	
  
Thanks	
  for	
  joining!	
  

Contenu connexe

Tendances

Introduction to Ansible (Pycon7 2016)
Introduction to Ansible (Pycon7 2016)Introduction to Ansible (Pycon7 2016)
Introduction to Ansible (Pycon7 2016)Ivan Rossi
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Puppet
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdminsPuppet
 
Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014Puppet
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Puppet
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Puppet
 
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
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Tim Bunce
 
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...Puppet
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecMartin Etmajer
 
Auto Deploy Deep Dive – vBrownBag Style
Auto Deploy Deep Dive – vBrownBag StyleAuto Deploy Deep Dive – vBrownBag Style
Auto Deploy Deep Dive – vBrownBag StyleRobert Nelson
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...Pablo Godel
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Puppet
 
Modern Infrastructure from Scratch with Puppet
Modern Infrastructure from Scratch with PuppetModern Infrastructure from Scratch with Puppet
Modern Infrastructure from Scratch with PuppetPuppet
 
Ansible module development 101
Ansible module development 101Ansible module development 101
Ansible module development 101yfauser
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsTomas Doran
 

Tendances (20)

Introduction to Ansible (Pycon7 2016)
Introduction to Ansible (Pycon7 2016)Introduction to Ansible (Pycon7 2016)
Introduction to Ansible (Pycon7 2016)
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
 
Tp install anything
Tp install anythingTp install anything
Tp install anything
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
 
Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014Test Driven Development with Puppet - PuppetConf 2014
Test Driven Development with Puppet - PuppetConf 2014
 
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
Continuous Infrastructure: Modern Puppet for the Jenkins Project - PuppetConf...
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
 
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
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
 
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
Orchestrated Functional Testing with Puppet-spec and Mspectator - PuppetConf ...
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
Auto Deploy Deep Dive – vBrownBag Style
Auto Deploy Deep Dive – vBrownBag StyleAuto Deploy Deep Dive – vBrownBag Style
Auto Deploy Deep Dive – vBrownBag Style
 
Perl in Teh Cloud
Perl in Teh CloudPerl in Teh Cloud
Perl in Teh Cloud
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
 
Ansible and AWS
Ansible and AWSAnsible and AWS
Ansible and AWS
 
Modern Infrastructure from Scratch with Puppet
Modern Infrastructure from Scratch with PuppetModern Infrastructure from Scratch with Puppet
Modern Infrastructure from Scratch with Puppet
 
Ansible module development 101
Ansible module development 101Ansible module development 101
Ansible module development 101
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
 
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
 

Similaire à Bootstrapping Puppet & Application Deployment with Puppet, Rake, and Fabric

MongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack SummitMiguel Zuniga
 
Puppet Development Workflow
Puppet Development WorkflowPuppet Development Workflow
Puppet Development WorkflowJeffery Smith
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAlberto Molina Coballes
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018Viresh Doshi
 
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet CampPuppet
 
Puppet camp london nov 2014 slides (1)
Puppet camp london nov 2014   slides (1)Puppet camp london nov 2014   slides (1)
Puppet camp london nov 2014 slides (1)Puppet
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T Puppet
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APIVictorSzoltysek
 
Habitat Overview
Habitat OverviewHabitat Overview
Habitat OverviewMandi Walls
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Robert Nelson
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVaidik Kapoor
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleArnaud LEMAIRE
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionStefan Schmidt
 
Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)sKaushikNarayanan
 
Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)MvkZ
 

Similaire à Bootstrapping Puppet & Application Deployment with Puppet, Rake, and Fabric (20)

MongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James BroadheadMongoDB Ops Manager and Kubernetes - James Broadhead
MongoDB Ops Manager and Kubernetes - James Broadhead
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
Automation in Cloud
Automation in CloudAutomation in Cloud
Automation in Cloud
 
Puppet Development Workflow
Puppet Development WorkflowPuppet Development Workflow
Puppet Development Workflow
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018
 
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Campmodern module development - Ken Barber 2012 Edinburgh Puppet Camp
modern module development - Ken Barber 2012 Edinburgh Puppet Camp
 
Puppet camp london nov 2014 slides (1)
Puppet camp london nov 2014   slides (1)Puppet camp london nov 2014   slides (1)
Puppet camp london nov 2014 slides (1)
 
Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
 
Automation using Puppet 3
Automation using Puppet 3 Automation using Puppet 3
Automation using Puppet 3
 
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
PuppetConf 2016: Enjoying the Journey from Puppet 3.x to 4.x – Rob Nelson, AT&T
 
Simplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI APISimplified DevOps Bliss -with OpenAI API
Simplified DevOps Bliss -with OpenAI API
 
Habitat Overview
Habitat OverviewHabitat Overview
Habitat Overview
 
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
Enjoying the Journey from Puppet 3.x to Puppet 4.x (PuppetConf 2016)
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
DevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & AnsibleDevOps, A brief introduction to Vagrant & Ansible
DevOps, A brief introduction to Vagrant & Ansible
 
Devops
DevopsDevops
Devops
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & Distribution
 
Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)
 
Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)Big datatraining.in devops-part2 (1)
Big datatraining.in devops-part2 (1)
 

Plus de 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
 

Plus de 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
 

Dernier

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Dernier (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Bootstrapping Puppet & Application Deployment with Puppet, Rake, and Fabric

  • 1. Bootstrapping  Puppet  &   Applica3on  Deployment     PuppetConf  ‘13   August  22,  2013   Presented by: Robert de Macedo Soares Application Security Engineer Business Wire robert.soares@businesswire.com @argher #puppetconf
  • 2. Purpose  of  Puppet   •  What  problems  are  we  trying  to  solve?   •  RemediaBon  or  improvement?   •  Are  our  exisBng  servers  a  mess?     •  What  are  our  plaDorms?        
  • 3. Scenario  –  Best  Case   •  Servers  are  new   •  Servers  are  uniform   •  No  fixes  needed   •  Everyone  on  the  same  page   •  One  operaBng  system     Idealis)c    
  • 4. Scenario  -­‐  Reality   •  No  baseline  configuraBon   •  Inconsistent  management  pracBces   •  Many  fixes  required   •  Teams  have  differing  requirements   •  MulBple  operaBng  systems     Realis)c    
  • 5. Divergent  Needs   Developers   •  Need  deployment  soluBon   •  Idempotence   System  Administrators   •  System  ConfiguraBon   •  Password  &  User  Management    
  • 6. Divergent  Needs  (cont.)   Security  &  Management   •  Host-­‐based  firewall  management   •  Auditability   •  Compliance   •  ReporBng  
  • 7. Divergent  Opera3ng  Systems   •  Linux   – Different  DistribuBons  (RedHat,  Debian,  etc.)   •  Windows   – Different  GeneraBons   •  UNIX   – Solaris?  HP-­‐UX?      
  • 8. Decision  Time   •  Right  tool  for  the  job   – Puppet  Enterprise  vs.  Open  Source   •  Test  before  comming   •  Older  or  uncommon  operaBng  systems?   – Puppet  Enterprise  simplifies  deployment   •  <=10  servers?   – Puppet  Enterprise  is  free  for  10  servers    
  • 9. Open  Source  –  Why?   •  Free   •  Valuable  user  community   •  Foreman   – Complex  but  powerful   •  Free    
  • 10. Puppet  Enterprise  –  Why?   •  Integrated  Dashboard   – Auditability  /  ReporBng   – Server  status  at  a  glance   – MCollecBve  integraBon  (Live  Management)   •  Prebuilt  Solaris  and  Linux  packages   •  Support!   – DownBme  more  expensive  than  licenses      
  • 12. Infrastructure  Deployment   •  What’s  our  architecture?   – How  many  Bers?   – How  many  Puppet  masters?   – ReplicaBon?   •  AutomaBon  tool  
  • 13. Suggested  Architecture   •  Master  per  Ber   •  ReplicaBon  in  producBon   – Nice  to  have   •  Lab  master  and  clients  for  experimentaBon   – Cover  your  OS  types   •  Source  control  for  manifests    
  • 14. Tiered  Infrastructure   •  Two  Bers  minimum   – Dev   – ProducBon   •  More  Bers  beneficial   – Test  /  QA  Ber  exposes  problems  before  prod    
  • 15. Introduc3on  to  Automa3on   •  What  is  an  automaBon  tool?   •  Why  use  one?   •  Which  tool  is  best?   – Fabric,  Capistrano,  etc.  
  • 16. Example:  Fabric   •  __init__.py          import  fab_puppet_deploy   •  Fab_puppet_deploy.py   – Remember  to  set  env.hosts          from  fabric.api  import  *          @task(default=True)          def  deploy_puppet(Ber=“dev”,uninstall=False):  
  • 17. Automa3ng  the  Install   •  Proper  tools  invaluable   – Fabric,  Capistrano,  etc.   •  Use  answers  files   •  Expect  unexpected  problems   – No  sudo?    
  • 18. Automa3ng  the  Install  (cont.)   •  Example  answers  file   q_fail_on_unsuccessful_master_lookup=y     q_install=y   q_puppet_cloud_install=n   q_puppet_enterpriseconsole_install=n   q_puppet_symlinks_install=y   q_puppetagent_install=y   q_puppetagent_server=puppet.dev.example.com   q_puppetca_install=n   q_puppetmaster_install=n   q_vendor_packages_install=n    
  • 20. Overview   •  Source  control  integraBon   •  BASH  scripts  –  easy  and  powerful   •  Leverage  rake  API  
  • 21. Early Approach   •  Deploy  task  file   – Text,  lists  packages  to  deploy  and  tagged  version   •  Update  Puppet  groups   – BASH,  rake  commands  to  alter  classes  /  groups   •  Update  nodes  in  (Ber)   – BASH,  rake  commands  to  alter  node  membership  
  • 22. Source  Control  Workflow   •  Update  module  -­‐>  new  tag   – Don’t  deploy  from  trunk!   •  Update  deploy  task  file   •  Check  out  deploy  task  file   – svn  co  hop://repo.example.com/puppet/deployfile   •  Helper  script   – Deploys  new  modules  over  old    
  • 23. Introduc3on  to  Rake   •  Build  tool   – Similar  to  make  and  Ant   •  Rakefiles  are  Makefiles   – Standard  Ruby  syntax   •  Can  create  mulB-­‐or-­‐single-­‐use  tasks   – Namespace:task  
  • 24. Rake  Tips   •  Read  API  documentaBon   –  hop://docs.puppetlabs.com/pe/latest/console_rake_api.html   •  Rake  command  prefix   –  rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/ Rakefile   •  Set  RAILS_ENV  to  producBon   – ~/.bashrc  or  in  script    
  • 25. Update  Puppet  Groups   #  Env  to  run  Ruby  in   export  RAILS_ENV=producBon     #  Create  Classes   rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/Rakefile   nodeclass:add  name=users::permissions   rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/Rakefile   nodeclass:add  name=packages::provisioner  
  • 26. Update  Puppet  Groups  (cont.)   #  Create  Groups   rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/Rakefile   nodegroup:add  name=provisioner     #  Assign  Classes  to  Groups   rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/Rakefile   nodegroup:addclass  name=provisioner  class=users::permissions   rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/Rakefile   nodegroup:addclass  name=provisioner   class=packages::provisioner  
  • 27. Update  Nodes   #  Env  to  run  Ruby  in   export  RAILS_ENV=producBon     #  Assign  nodes  to  groups   rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/Rakefile   node:groups  name=pro1.example.com   groups=default,provisioner   rake  -­‐f  /opt/puppet/share/puppet-­‐dashboard/Rakefile   node:groups  name=pro2.example.com   groups=default,provisioner,extragroup  
  • 28. Rough  Spots   •  Group  list  must  be  *complete*   – Rake  will  recreate  the  group  list  for  a  node   – No  incremental  addiBon  possible   •  Directory  ownership   – peadmin  /  puppet-­‐dashboard  or  custom  user   •  Rake  API  can  be  improved   – Nested  groups  only  Puppet  Enterprise  3.0+  
  • 29. Rough  Spots  (cont.)   •  Access  Control   – No  way  to  limit  individual  commands     •  TargeBng   – Custom  facts  and  hiera  recommended    
  • 30. Next  Steps   • Easy  tasks  first   • Etc_facts  plugin   • Hiera  is  useful   • Package  repository     Thanks  for  joining!