SlideShare a Scribd company logo
1 of 59
Cloud Infrastructure 
as Code 
Andrew Parker 
Puppet Labs 
@aparker42
In 1889
Tickets please
Eureka !
Herman's Invention
Herman, grows a Mustache
The Tabulating Machine
Automation makes IT better!
Puppet 
A language and infrastructure
Puppet Resources 
• Describes the desired configuration state of 
individual elements of the system being 
managed 
user { 'henrik': # A user named 'henrik' 
ensure => present, # should exist 
shell => '/bin/bash' # with this shell 
}
Puppet Resources 
package{ 'apache2': # A packaged named 'apache2' 
ensure => present # should be installed 
}
Puppet Language 
• The Puppet Language has constructs to 
– compose sets of resources into classes 
– define order of operations on resources 
– define custom resources
Common Pattern; Package, File, 
Service 
class webserver { 
package{ 'apache2': 
ensure => present 
} 
file { '/etc/apache2/apache2.conf': 
content => template('apache2/apache2.erb'), 
require => Package['apache2'] 
} 
service { 'apache2': 
ensure => running, 
subscribe => File['/etc/apache2/apache2.conf'] 
} 
}
Presto – a Web Server 
• Now we can build a webserver with this: 
node kermit.example.com { 
include webserver 
}
Infra == Code == Text
Infra == Code == Text
Infra == Code == Text
Cloud Infrastructure 
(as Code)
Turtles All The Way Down
Turtles All The Way Down 
Cloud
Google Compute Engine 
• Express infrastructure as 
– VM Instances 
– Networks 
– Firewalls 
– Disks
Build your own? 
puppet module install puppetlabs-gce_compute
A Disk 
gce_disk { 'mydisk': 
ensure => present, 
size_gb => '2' 
}
A Network 
gce_network { 'mynetwork': 
ensure => present, 
gateway => '10.0.1.1', 
range => '10.0.1.0/24' 
}
An Instance 
gce_instance { 'myinstance': 
ensure => present, 
zone => 'us-central1-a', 
machine => 'n1-standard-1', 
image => "${images}/ubuntu-12-04-v20120621" 
}
New Pattern; Network, Firewall, 
(Disk), Instance 
class app_stack { 
gce_network { 'appnet': 
ensure => present, 
range => '10.0.1.0/24' 
} -> 
gce_firewall { 'webhttp': 
ensure => present, 
allow => 'tcp:80', 
network => 'appnet' 
} -> 
gce_instance { 'server1': 
ensure => present, 
network => 'appnet' 
} 
}
Turtles All The Way Down 
Application 
Cloud
Modules & Classes 
gce_instance { 'myinstance': 
ensure => present, 
. . . 
modules => [ 'puppetlabs-mysql', 
'martasd/mediawiki', 
. . . 
], 
enc_classes => { 
mediawiki => {server_name => "$gce_external_ip"} 
} 
}
Turtles All The Way Down 
Puppet 
Cloud
Setting up a master 
gce_instance { 'pe-master': 
ensure => present, 
. . . 
startupscript => ‘puppet-enterprise.sh’, 
metadata => { 
‘pe_role’ => ‘master’, ‘pe_version’ => ‘3.6.1’ } 
} 
gce_instance { ‘agent-1’: 
ensure => present, 
. . . 
startupscript => ‘puppet-enterprise.sh’, 
metadata => { 
‘pe_role’ => ‘agent’, ‘pe_version’ => ‘3.6.1’, 
‘pe_master’ => ‘pe-master’ } 
}
Turtles All The Way Down 
Application 
Puppet 
Cloud
Security 90s Style 
Master 
Agent 
Agent
Autosign 
# Whether (and how) to autosign certificate requests. 
# This setting 
# is only relevant on a puppet master acting as a 
# certificate authority (CA). 
# 
# Valid values are true (autosigns all certificate 
# requests; not recommended), 
# false (disables autosigning certificates), or the 
# absolute path to a file. 
[master] 
autosign = true
Autosign 
# Whether (and how) to autosign certificate requests. 
# This setting 
# is only relevant on a puppet master acting as a 
# certificate authority (CA). 
# 
# Valid values are true (autosigns all certificate 
# requests; not recommended), 
# false (disables autosigning certificates), or the 
# absolute path to a file. 
[master] 
autosign = $confdir/autosign.conf
Autosign 
# Whether (and how) to autosign certificate requests. 
# This setting 
# is only relevant on a puppet master acting as a 
# certificate authority (CA). 
# 
# Valid values are true (autosigns all certificate 
# requests; not recommended), 
# false (disables autosigning certificates), or the 
# absolute path to a file. 
[master] 
autosign = $confdir/my_autosign 
trusted_node_data = true 
[agent] 
csr_attributes = $confdir/csr_attributes.yaml
Autosign 
# Produce attributes for the csr based on instance 
metadata 
MD="http://metadata/computeMetadata/v1/instance" 
INSTANCE=$(curl -fs -H "Metadata-Flavor: Google" 
$MD/zone) 
NAME=$(curl -fs -H "Metadata-Flavor: Google" 
$MD/attributes/puppet_instancename) 
UUID=$(curl -fs -H "Metadata-Flavor: Google" $MD/id) 
cat > $PUPPET_DIR/csr_attributes.yaml <<END
Autosign 
# Produce attributes for the csr based on instance 
metadata 
MD="http://metadata/computeMetadata/v1/instance" 
INSTANCE=$(curl -fs -H "Metadata-Flavor: Google" 
$MD/zone) 
NAME=$(curl -fs -H "Metadata-Flavor: Google" 
$MD/attributes/puppet_instancename) 
UUID=$(curl -fs -H "Metadata-Flavor: Google" $MD/id) 
cat > $PUPPET_DIR/csr_attributes.yaml <<END
Trust your data 
Master Agent 
CSR 
Certificate 
Facts/Certificate 
Catalog
Why do this? 
• How fast can you change? 
• How frequent? 
• At what cost? 
• What is your level of automation?
So what became of Herman Hollerith?
So what became of Herman Hollerith?
So what became of Herman Hollerith?
Questions ?
Puppetize!

More Related Content

What's hot

More tips n tricks
More tips n tricksMore tips n tricks
More tips n tricksbcoca
 
Ansible leveraging 2.0
Ansible leveraging 2.0Ansible leveraging 2.0
Ansible leveraging 2.0bcoca
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadBram Vogelaar
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmusBram Vogelaar
 
Observability with Consul Connect
Observability with Consul ConnectObservability with Consul Connect
Observability with Consul ConnectBram Vogelaar
 
Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryMauro Rocco
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Masahiro Nagano
 
An Introduction to Celery
An Introduction to CeleryAn Introduction to Celery
An Introduction to CeleryIdan Gazit
 
Celery - A Distributed Task Queue
Celery - A Distributed Task QueueCelery - A Distributed Task Queue
Celery - A Distributed Task QueueDuy Do
 
Ansible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / QuickstartAnsible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / QuickstartHenry Stamerjohann
 
Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2nottings
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Simon McCartney
 
Django Celery - A distributed task queue
Django Celery - A distributed task queueDjango Celery - A distributed task queue
Django Celery - A distributed task queueAlex Eftimie
 
Why Task Queues - ComoRichWeb
Why Task Queues - ComoRichWebWhy Task Queues - ComoRichWeb
Why Task Queues - ComoRichWebBryan Helmig
 
AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricksjimi-c
 
Introduction to Nodejs
Introduction to NodejsIntroduction to Nodejs
Introduction to NodejsGabriele Lana
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)Soshi Nemoto
 

What's hot (20)

More tips n tricks
More tips n tricksMore tips n tricks
More tips n tricks
 
Ansible leveraging 2.0
Ansible leveraging 2.0Ansible leveraging 2.0
Ansible leveraging 2.0
 
Puppet modules for Fun and Profit
Puppet modules for Fun and ProfitPuppet modules for Fun and Profit
Puppet modules for Fun and Profit
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomad
 
Testing your infrastructure with litmus
Testing your infrastructure with litmusTesting your infrastructure with litmus
Testing your infrastructure with litmus
 
Observability with Consul Connect
Observability with Consul ConnectObservability with Consul Connect
Observability with Consul Connect
 
Europython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & CeleryEuropython 2011 - Playing tasks with Django & Celery
Europython 2011 - Playing tasks with Django & Celery
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
 
An Introduction to Celery
An Introduction to CeleryAn Introduction to Celery
An Introduction to Celery
 
Django Celery
Django Celery Django Celery
Django Celery
 
Celery - A Distributed Task Queue
Celery - A Distributed Task QueueCelery - A Distributed Task Queue
Celery - A Distributed Task Queue
 
Ansible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / QuickstartAnsible Meetup Hamburg / Quickstart
Ansible Meetup Hamburg / Quickstart
 
Introduction to Celery
Introduction to CeleryIntroduction to Celery
Introduction to Celery
 
Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2Puppet camp chicago-automated_testing2
Puppet camp chicago-automated_testing2
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013
 
Django Celery - A distributed task queue
Django Celery - A distributed task queueDjango Celery - A distributed task queue
Django Celery - A distributed task queue
 
Why Task Queues - ComoRichWeb
Why Task Queues - ComoRichWebWhy Task Queues - ComoRichWeb
Why Task Queues - ComoRichWeb
 
AnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and TricksAnsibleFest 2014 - Role Tips and Tricks
AnsibleFest 2014 - Role Tips and Tricks
 
Introduction to Nodejs
Introduction to NodejsIntroduction to Nodejs
Introduction to Nodejs
 
DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)DevOps(4) : Ansible(2) - (MOSG)
DevOps(4) : Ansible(2) - (MOSG)
 

Similar to Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code

Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Carlos Sanchez
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011Carlos Sanchez
 
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
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOpsAgile Spain
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the CloudWesley Beary
 
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
 
From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011Carlos Sanchez
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetAchieve Internet
 
Does your configuration code smell?
Does your configuration code smell?Does your configuration code smell?
Does your configuration code smell?Tushar Sharma
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierCarlos Sanchez
 
Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Puppet
 
Bootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stackBootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stackBram Vogelaar
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013grim_radical
 
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapDive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapProvectus
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012Carlos Sanchez
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStackPuppet
 

Similar to Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code (20)

Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
 
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
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
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
 
From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
infra-as-code
infra-as-codeinfra-as-code
infra-as-code
 
Does your configuration code smell?
Does your configuration code smell?Does your configuration code smell?
Does your configuration code smell?
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Puppet @ Seat
Puppet @ SeatPuppet @ Seat
Puppet @ Seat
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
Puppet
PuppetPuppet
Puppet
 
Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014
 
Bootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stackBootstrap your Cloud Infrastructure using puppet and hashicorp stack
Bootstrap your Cloud Infrastructure using puppet and hashicorp stack
 
Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013Puppet: Eclipsecon ALM 2013
Puppet: Eclipsecon ALM 2013
 
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr TsapDive into DevOps | March, Building with Terraform, Volodymyr Tsap
Dive into DevOps | March, Building with Terraform, Volodymyr Tsap
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
 

More from Puppet

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

More from Puppet (20)

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

Recently uploaded

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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%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 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
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
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 

Recently uploaded (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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%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 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
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
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
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
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

Puppet Camp Seattle 2014: Puppet: Cloud Infrastructure as Code

  • 1. Cloud Infrastructure as Code Andrew Parker Puppet Labs @aparker42
  • 3.
  • 4.
  • 8. Herman, grows a Mustache
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Puppet A language and infrastructure
  • 23. Puppet Resources • Describes the desired configuration state of individual elements of the system being managed user { 'henrik': # A user named 'henrik' ensure => present, # should exist shell => '/bin/bash' # with this shell }
  • 24. Puppet Resources package{ 'apache2': # A packaged named 'apache2' ensure => present # should be installed }
  • 25. Puppet Language • The Puppet Language has constructs to – compose sets of resources into classes – define order of operations on resources – define custom resources
  • 26. Common Pattern; Package, File, Service class webserver { package{ 'apache2': ensure => present } file { '/etc/apache2/apache2.conf': content => template('apache2/apache2.erb'), require => Package['apache2'] } service { 'apache2': ensure => running, subscribe => File['/etc/apache2/apache2.conf'] } }
  • 27. Presto – a Web Server • Now we can build a webserver with this: node kermit.example.com { include webserver }
  • 28. Infra == Code == Text
  • 29. Infra == Code == Text
  • 30. Infra == Code == Text
  • 31.
  • 33. Turtles All The Way Down
  • 34. Turtles All The Way Down Cloud
  • 35. Google Compute Engine • Express infrastructure as – VM Instances – Networks – Firewalls – Disks
  • 36. Build your own? puppet module install puppetlabs-gce_compute
  • 37. A Disk gce_disk { 'mydisk': ensure => present, size_gb => '2' }
  • 38. A Network gce_network { 'mynetwork': ensure => present, gateway => '10.0.1.1', range => '10.0.1.0/24' }
  • 39. An Instance gce_instance { 'myinstance': ensure => present, zone => 'us-central1-a', machine => 'n1-standard-1', image => "${images}/ubuntu-12-04-v20120621" }
  • 40. New Pattern; Network, Firewall, (Disk), Instance class app_stack { gce_network { 'appnet': ensure => present, range => '10.0.1.0/24' } -> gce_firewall { 'webhttp': ensure => present, allow => 'tcp:80', network => 'appnet' } -> gce_instance { 'server1': ensure => present, network => 'appnet' } }
  • 41. Turtles All The Way Down Application Cloud
  • 42. Modules & Classes gce_instance { 'myinstance': ensure => present, . . . modules => [ 'puppetlabs-mysql', 'martasd/mediawiki', . . . ], enc_classes => { mediawiki => {server_name => "$gce_external_ip"} } }
  • 43. Turtles All The Way Down Puppet Cloud
  • 44. Setting up a master gce_instance { 'pe-master': ensure => present, . . . startupscript => ‘puppet-enterprise.sh’, metadata => { ‘pe_role’ => ‘master’, ‘pe_version’ => ‘3.6.1’ } } gce_instance { ‘agent-1’: ensure => present, . . . startupscript => ‘puppet-enterprise.sh’, metadata => { ‘pe_role’ => ‘agent’, ‘pe_version’ => ‘3.6.1’, ‘pe_master’ => ‘pe-master’ } }
  • 45. Turtles All The Way Down Application Puppet Cloud
  • 46. Security 90s Style Master Agent Agent
  • 47. Autosign # Whether (and how) to autosign certificate requests. # This setting # is only relevant on a puppet master acting as a # certificate authority (CA). # # Valid values are true (autosigns all certificate # requests; not recommended), # false (disables autosigning certificates), or the # absolute path to a file. [master] autosign = true
  • 48. Autosign # Whether (and how) to autosign certificate requests. # This setting # is only relevant on a puppet master acting as a # certificate authority (CA). # # Valid values are true (autosigns all certificate # requests; not recommended), # false (disables autosigning certificates), or the # absolute path to a file. [master] autosign = $confdir/autosign.conf
  • 49. Autosign # Whether (and how) to autosign certificate requests. # This setting # is only relevant on a puppet master acting as a # certificate authority (CA). # # Valid values are true (autosigns all certificate # requests; not recommended), # false (disables autosigning certificates), or the # absolute path to a file. [master] autosign = $confdir/my_autosign trusted_node_data = true [agent] csr_attributes = $confdir/csr_attributes.yaml
  • 50. Autosign # Produce attributes for the csr based on instance metadata MD="http://metadata/computeMetadata/v1/instance" INSTANCE=$(curl -fs -H "Metadata-Flavor: Google" $MD/zone) NAME=$(curl -fs -H "Metadata-Flavor: Google" $MD/attributes/puppet_instancename) UUID=$(curl -fs -H "Metadata-Flavor: Google" $MD/id) cat > $PUPPET_DIR/csr_attributes.yaml <<END
  • 51. Autosign # Produce attributes for the csr based on instance metadata MD="http://metadata/computeMetadata/v1/instance" INSTANCE=$(curl -fs -H "Metadata-Flavor: Google" $MD/zone) NAME=$(curl -fs -H "Metadata-Flavor: Google" $MD/attributes/puppet_instancename) UUID=$(curl -fs -H "Metadata-Flavor: Google" $MD/id) cat > $PUPPET_DIR/csr_attributes.yaml <<END
  • 52. Trust your data Master Agent CSR Certificate Facts/Certificate Catalog
  • 53. Why do this? • How fast can you change? • How frequent? • At what cost? • What is your level of automation?
  • 54. So what became of Herman Hollerith?
  • 55.
  • 56. So what became of Herman Hollerith?
  • 57. So what became of Herman Hollerith?

Editor's Notes

  1. Like to take you back – before Cloud, and to a time when Infrastructure meant Railroads. More precisely, I like to take you back to 1889.
  2. The first number of Wall Street Journal was published, and all business news thereafter was printed on pink paper. In April, only a few days apart, Charlie Chaplin, and Adolf Hitler were born. The Eiffel Tower was inaugurated and served as the entrance to the 1889 Paris World's Fair. Seattle Burned Down in the great fire and was rebuilt...on floor lower than the current street level. The Nintendo Company is formed, publishing HANA FUDA Playing Cards. Harry Nyquist is born 26 juni - I Norge införs 7-årig skolplikt. Det fastslås även att den norska folkskolan skall benämnas "folkeskole" och inte "allmueskole" 12 oktober - Gillis Bildt avgår som svensk statsminister och efterträds av Gustaf Åkerhielm.[3] Dette året utvandrer omkring 29 000 nordmenn til USA. Dette er det største antall utvandringer registrert i ett enkelt år
  3. But more specifically, lets start with Herman, on one specific morning in 1889. That morning when Herman woke up… he had not slept well as he was mulling on a problem. Every 10 years the United States performs a census enumerating the population. Herman's problem this morning was that United States Census office where Herman worked as a stati stic ian needed to do more with less. The census of 1880 had so many questions that it took about 8 years to count and publish the results from the 50 million population. And for the upcoming census there were going to be even more questions and the population had grown to 63 million (as they were about to find out). Estimates were that it would take 13 years to tabulate the data. ----- drop the rest 1889 – An Electric Tabulating System 1890 The United States decennial census (enumerating the population every 10 years) – the next is 2020
  4. This morning, Herman had a train to catch. It was incredibly busy. And Herman found it hard to concentrate.
  5. This man changed everything
  6. Herman was intrigued by the cuts made in his ticket – and he had an idea !
  7. And this is what Herman Invented – a card on which the answers to the census questions could be recorded by punching holes. Herman wasn’t the first to have the idea of punching holes into a card. It had been used for a long time to control looms and music players, but Herman had the novel idea of putting it to use for data. At this point we could go off on a long tangent of data as code and code as data....but let’s try to keep our eye on the prize. Herman realized that In order to punch the holes and then be able to read the answers – someone had to invent the machinery to do so, and then build and supply these machines. So what did Herman do?
  8. Considers a neck beard, but decides on a stylish mustache – now that he is about to start his own business building hardware…
  9. He named his invention "The tabulating machine". It was a huge success – the 1890 census was finished in under 1 year with far fewer staff – more than a 10x performance boost. So what has this got to do with Clouds-Infrastructure as Code ?
  10. The simple moral of the story is THAT WITH THE RIGHT TOOLS YOU CAN DO THINGS FASTER AND MORE ACCURATELY. Not only should you be automating IT, but also automating the making of the automation  LETS FAST FORWARD
  11. Do you really build something like this manually ? You would be surprised to amount of companies that maintain infrastructure at this scale with technology where a Tabulating Machine would be high tech! (I am told this picture is from Google)
  12. This is also google – we can only guess at the level of automation
  13. Or how long it takes to get anything deployed – or improved in this infrastructure.
  14. Maybe your manually hacked system infrastructure isn't as bad as this? Imagine what it looks like on the inside – is this a secure system? So what are you going to do?
  15. LETS MOVE TO THE CLOUD ! Now you have a new set of problems. Just because you can't see the wiring and the boxes does not mean that the complexities went away. ALL THOSE CABLES ARE NOW INSTRUCTIONS TO A COMPUTER – OUR INFRASTRUCTURE HAS BECOME CODE ! Now your infrastructure only exists because you provided instructions to a computer.
  16. Code is naturally something we write down so we don't forget – so we can follow the instructions later… On velum of course
  17. Everyone in IT is known for their penmanship and writing skills.
  18. And sometimes people collaborate and integrate all their favorite scripts.
  19. nhaggggghhhhhhhh uuuuhhhhhhhh As everyone can see, this cat is suffering from a complexity overdose.
  20. COMPLEXITY OVERDOSE….
  21. Let’s start over How would (or should) you do this now?
  22. THE BEST PRACTICES FROM SOFTWARE DEVELOPMENT version control review of changes
  23. THE BEST PRACTICES FROM SOFTWARE DEVELOPMENT testing
  24. THE BEST PRACTICES FROM SOFTWARE DEVELOPMENT build tools artifacts
  25. Wait a second...back up! I started out with the promise of getting away from all of those cables and other hardware into the promised land of the cloud. What does that have to do with files and packages and web servers? Let’s think about it a little. What is the cloud?
  26. Let’s think about it a little. What is the cloud? Ok, that question may be unanswerable. Let’s stick to something more concrete. What is EC2 or GCE? They are APIs to create resources. And we have resources that hold other resources!
  27. So let’s start at the bottom of this stack. At the layer we’ll call “Cloud”...because well, that is what we are talking about.
  28. The GCE module is really well documented, so I won’t rehash everything here.
  29. The next level up is what we are going to do on those instances. There are two ways we can approach this. Mastered or masterless. Let’s take a look at masterless first.
  30. This will make sure that we have an instance, it will install puppet, those modules, and then apply those classes. If that is all that we wanted to do, then we would be done. However life isn’t often that simple and we need some more central control, or there is information that we can’t put on every instance (for security purposes).
  31. Lets take a different path this time. Instead of going straight for software on the instance, let’s setup a management infrastructure. The GCE module makes this pretty easy since it has some scripts built into it to install puppet agents and puppet master (open source as well as PE).
  32. The GCE module makes this pretty easy since it has some scripts built into it to install puppet agents and puppet master (open source as well as PE).
  33. Once you have your puppet master infrastructure all set up, you can now start controlling those GCE instances by deploying manifests to your master and using the PE classifier to classify your nodes (instances).
  34. 1890s that is. Look, this software is written in portland. They really are living the dream of the 90s. What’s the situation? Well, say you are like a lot of organizations and you have part of your infrastructure out in the cloud and part of it in datacenters you control. So how do you handle this?
  35. This will make sure that we have an instance, it will install puppet, those modules, and then apply those classes. If that is all that we wanted to do, then we would be done. However life isn’t often that simple and we need some more central control, or there is information that we can’t put on every instance (for security purposes).
  36. This will make sure that we have an instance, it will install puppet, those modules, and then apply those classes. If that is all that we wanted to do, then we would be done. However life isn’t often that simple and we need some more central control, or there is information that we can’t put on every instance (for security purposes).
  37. This will make sure that we have an instance, it will install puppet, those modules, and then apply those classes. If that is all that we wanted to do, then we would be done. However life isn’t often that simple and we need some more central control, or there is information that we can’t put on every instance (for security purposes).
  38. This is cribbed from the gce_compute module. It has this built in, but you can built out your own based on how this works. The basic idea is that there is a source of truth that you can trust. By passing through some known information the master can now know that it is communicating with one of your real instances and can automatically let it into the system!
  39. This is cribbed from the gce_compute module. It has this built in, but you can built out your own based on how this works. The basic idea is that there is a source of truth that you can trust. By passing through some known information the master can now know that it is communicating with one of your real instances and can automatically let it into the system! Custom attributes are only part of the certificate request. Extension requests will be preserved as part of the signed certificate.
  40. This is cribbed from the gce_compute module. It has this built in, but you can built out your own based on how this works. The basic idea is that there is a source of truth that you can trust. By passing through some known information the master can now know that it is communicating with one of your real instances and can automatically let it into the system!
  41. Why did Herman start making his machines? Because he needed to keep up with the change in his country. Automation got him there.
  42. People didn’t like that there were only 63 million people. They wanted it to be 65 million. The New York Herald: SLIPSHOD WORK HAS SPOILED THE CENSUS MISMANAGEMENT THE RULE The number was right. And his machines were used for the next 2 censuses and in various other countries around the world.
  43. Eventually his company started to merge with competitors.
  44. That company eventually became known as “Business International Machines”....no....”International Business Machines”
  45. … AND BECAME A HIPSTER!