infrastructure-as-code and cloud deployments with opscode chef & co
DESCRIPTION
This talk was held at a Zühlke internal meetup of architects in 2012. It explains the motivation behind DevOps and Infrastructure-as-Code, then introduces Chef, looking at the essential Chef concepts and the Chef recipe DSL. Next comes a brief outlook to Vagrant for managing VMs, Librarian for dependency management, and various Chef testing tools. Finally, different options for cloud deployments with Chef are discussed: AWS CloudFormation, Mccloud and knife-ec2.TRANSCRIPT
![Page 1: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/1.jpg)
© Zühlke 2012
Torben Knerr
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
20. Juli 2012 Slide 1
![Page 2: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/2.jpg)
© Zühlke 2012
Topics
Motivation
DevOps & Infrastructure-As-Code
Introduction to Chef
Terms & Concepts (with Examples)
Chef vs. Puppet
Cloud Deployment
Different Approaches for Cloud Provisioning
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 2
![Page 3: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/3.jpg)
© Zühlke 2012
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Torben Knerr
Motivation
DevOps & Infrastructure-As-Code
20. Juli 2012 Slide 3
![Page 4: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/4.jpg)
© Zühlke 2012
Motivation DevOps & Infrastructure-As-Code
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
DevOps
Drivers: Cloud & Virtualisation Mass Server Management Agile & Continous Delivery
Philosophy: Collaboration between Devs and Ops Devs understand the needs of Ops Ops learn from Devs (Infrastructure-As-Code) Ops are part of the (SCRUM) team
Disciplines: Operations, Monitoring Automation Programming (Ruby) Configuration Management
Goals: Traceability, Auditability Maintainability Reproducability Speed / Time-To-Market
Infrastructure-As-Code
20. Juli 2012 Slide 4
![Page 5: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/5.jpg)
© Zühlke 2012
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Torben Knerr
Introduction to Chef
Knife, Cookbooks, Recipes, etc…
20. Juli 2012 Slide 5
![Page 6: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/6.jpg)
© Zühlke 2012
Introduction to Chef What‘s in a Chef Repository?
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
chef-repo
20. Juli 2012 Slide 6
![Page 7: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/7.jpg)
© Zühlke 2012
Introduction to Chef What‘s in a Chef Repository?
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
chef-repo
cookbooks
databags
environments
roles
20. Juli 2012 Slide 7
![Page 8: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/8.jpg)
© Zühlke 2012
Introduction to Chef What‘s in a Chef Repository?
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
recipes
attributes
files
templates chef-repo
cookbooks
databags
environments
roles
20. Juli 2012 Slide 8
![Page 9: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/9.jpg)
© Zühlke 2012
Introduction to Chef Chef Solo vs. Chef Server
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
node
couchdb cookbooks
roles databags
nodes … Chef Server
node node node node
chef-client
poll for node’s run_list and converge node
node
cookbooks roles
databags solo.rb
chef-solo
read run_list from solo.rb and converge node
Chef Solo Runs chef-solo locally No server required Easier to get started with Good for few nodes, onetime
bootstraps
chef-repo
upload to node
20. Juli 2012 Slide 9
![Page 10: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/10.jpg)
© Zühlke 2012
Introduction to Chef Chef Solo vs. Chef Server
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
node
couchdb cookbooks
roles databags
nodes … Chef Server
node node node node
chef-client
poll for node’s run_list and converge node
node
cookbooks roles
databags solo.rb
chef-solo
read run_list from solo.rb and converge node
Chef Server chef-client polls regularly More complex workflow Additional features:
Search, WebUI Good for ongoing
operations of many nodes chef-repo
upload to chef server
20. Juli 2012 Slide 10
![Page 11: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/11.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
The Chef Repository is the place where cookbooks, roles, config files and other artifacts for managing systems with Chef will live, typically stored in a version control system.
20. Juli 2012 Slide 11
![Page 12: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/12.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Cookbooks are the fundamental units of distribution in Chef. They encapsulate all the resources you need to automate your infrastructure and are easily sharable with other Chef users.
20. Juli 2012 Slide 12
![Page 13: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/13.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Attributes are node data such as the IP address, hostname, etc... New attributes can be defined on cookbook, environment, role and node level.
cookbooks/apache2/attributes/default.rb
20. Juli 2012 Slide 13
![Page 14: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/14.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Recipes encapsulate collections of resources which are executed in order to configure the system.
cookbooks/apache2/recipes/default.rb
20. Juli 2012 Slide 14
![Page 15: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/15.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Recipes encapsulate collections of resources which are executed in order to configure the system.
Resources
cookbooks/apache2/recipes/default.rb
20. Juli 2012 Slide 15
![Page 16: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/16.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Resources are the cross platform abstraction of the thing you're configuring on the node. Examples:
20. Juli 2012 Slide 16
![Page 17: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/17.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Resources are the cross platform abstraction of the thing you're configuring on the node. Examples:
20. Juli 2012 Slide 17
![Page 18: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/18.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Resources are the cross platform abstraction of the thing you're configuring on the node. Examples:
20. Juli 2012 Slide 18
![Page 19: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/19.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Resources are the cross platform abstraction of the thing you're configuring on the node. Examples:
20. Juli 2012 Slide 19
![Page 20: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/20.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Resources are the cross platform abstraction of the thing you're configuring on the node. Examples:
20. Juli 2012 Slide 20
![Page 21: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/21.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Resources are the cross platform abstraction of the thing you're configuring on the node. Examples: Many, many more in the Opscode Wiki:
http://wiki.opscode.com/display/chef/Resources
You can also write your own: http://wiki.opscode.com/display/chef/Lightweight+Resources+and+Providers+%28LWRP%29
20. Juli 2012 Slide 21
![Page 22: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/22.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Data bags provide an arbitrary stores of globally available JSON data…
chef-repo/data_bags/users/bofh.json
20. Juli 2012 Slide 22
![Page 23: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/23.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
…which are then used in Recipes:
cookbooks/users/recipes/default.rb
20. Juli 2012 Slide 23
![Page 24: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/24.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
A role provides a means of grouping similar features of similar nodes, providing a mechanism for easily composing sets of functionality.
chef-repo/roles/webserver.rb
20. Juli 2012 Slide 24
![Page 25: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/25.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Environments in Chef provide a mechanism for managing different environments such as production, staging, development, testing, etc
chef-repo/environments/dev.rb
20. Juli 2012 Slide 25
![Page 26: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/26.jpg)
© Zühlke 2012
Chef Repo
Cookbooks
Attributes
Recipes
Resources
Databags
Roles
Environments
Nodes
Introduction to Chef Terms & Concepts
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Nodes are the thing that Recipes and Roles are applied to. The primary features of a node, from Chef's point of view, are its Attributes and its run list.
chef-repo/nodes/web.example.com.rb
20. Juli 2012 Slide 26
![Page 27: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/27.jpg)
© Zühlke 2012
How to get started?
• If you are working on Windows use Bill’s Kitchen https://ikm.zuehlke.com/topics/Pages/Bill's%20Kitchen.aspx
• Start with Vagrant and Chef-Solo (you will love Vagrant…) http://vagrantup.com/v1/docs/provisioners/chef_solo.html
• Get familiar with cookbook development and testing https://github.com/tknerr/bills-kitchen/blob/master/COOKBOOK_DEVELOPMENT.md
• Set up a Chef Server using knife-server http://fnichol.github.com/knife-server/
• Use Vagrant with Chef-Server Provisioning http://vagrantup.com/v1/docs/provisioners/chef_server.html
• Get familiar with knife and use advanced features like search, bootstrap, etc.. http://wiki.opscode.com/display/chef/Knife
Introduction to Chef Getting Started with Chef Development
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 27
![Page 28: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/28.jpg)
© Zühlke 2012
Introduction to Chef VirtualBox Automation with Vagrant
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Vagranfile
20. Juli 2012 Slide 28
![Page 29: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/29.jpg)
© Zühlke 2012
Introduction to Chef Cookbook Dependency Management with Librarian
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Cheffile
20. Juli 2012 Slide 29
![Page 30: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/30.jpg)
© Zühlke 2012
Introduction to Chef Test-Driven Infrastrucure!
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Lint Checking
• foodcritic
Unit-Level Testing
• chefspec
• fauxhai
Smoke Tests (from the inside)
• chef-minitest-handler
Acceptance Testing (from the outside)
• cucumber-nagios
20. Juli 2012 Slide 30
![Page 31: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/31.jpg)
© Zühlke 2012
It doesn’t really matter (for us)
Same concepts, slightly different terminology
External vs. internal DSL (like Maven vs. Gradle)
Both have solo / standalone mode
There are more Puppet books than Chef books
Both have a very active community (mailing list, IRC, etc..)
Do you have in-house knowledge of Chef/Puppet?
Introduction to Chef Chef vs. Puppet
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 31
![Page 32: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/32.jpg)
© Zühlke 2012
It doesn’t really matter (for us)
Same concepts, slightly different terminology
External vs. internal DSL (like Maven vs. Gradle)
Both have solo / standalone mode
There are more Puppet books than Chef books
Both have a very active community (mailing list, IRC, etc..)
Do you have in-house knowledge of Chef/Puppet?
Introduction to Chef Chef vs. Puppet
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Use the tool that “operations” understands!
20. Juli 2012 Slide 32
![Page 33: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/33.jpg)
© Zühlke 2012
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Torben Knerr
Cloud Deployment
Different Approaches for Provisioning Cloud Instances
20. Juli 2012 Slide 33
![Page 34: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/34.jpg)
© Zühlke 2012
Cloud Deployment The Basic Mechanism: EC2 User Data
You can pass arbitrary user data when launching an instance…
…and access it on the instance via the metadata service:
Notes:
User data is limited to 16K in raw form (before base64 encoding)
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 34
![Page 35: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/35.jpg)
© Zühlke 2012
Cloud Deployment Option 1: Provisioning with Shell Scripts
Convention: if the user data script starts with a `#!` it will be run at first boot
Notes:
Might not be supported on all AMIs (for the official Ubuntu AMIs it is)
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
path/to/bootstrap.sh
20. Juli 2012 Slide 35
![Page 36: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/36.jpg)
© Zühlke 2012
Cloud Deployment Option 1: Provisioning with Shell Scripts
Convention: if the user data script starts with a `#!` it will be run at first boot
Notes:
Might not be supported on all AMIs (for the official Ubuntu AMIs it is)
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
path/to/bootstrap.sh
easiest method good if bootstrapping is simple one-off bootstrap (first boot)
20. Juli 2012 Slide 36
![Page 37: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/37.jpg)
© Zühlke 2012
VM instances are bootstrapped with Chef/Puppet via Cloud-init
The rest is just AWS CloudFormation Templates
Supports Chef Server, Chef Solo and Puppet Client Server
Cloud Deployment Option 2: AWS CloudFormation Templates
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 37
![Page 38: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/38.jpg)
© Zühlke 2012
VM instances are bootstrapped with Chef/Puppet via Cloud-init
The rest is just AWS CloudFormation Templates
Supports Chef Server, Chef Solo and Puppet Client Server
Cloud Deployment Option 2: AWS CloudFormation Templates
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
good for more complex scenarios
official, AWS supported documentation available
not meant for humans to read 20. Juli 2012 Slide 38
![Page 39: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/39.jpg)
© Zühlke 2012
Vagrant-like approach for managing VMs in the cloud
Supports Chef, Puppet and Shell provisioning
Currently focused on AWS but other providers possible
Supports stacks via AWS CloudFormation Templates
Cloud Deployment Option 3: Mccloud
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 39
![Page 40: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/40.jpg)
© Zühlke 2012
Vagrant-like approach for managing VMs in the cloud
Supports Chef, Puppet and Shell provisioning
Currently focused on AWS but other providers possible
Supports stacks via AWS CloudFormation Templates
Cloud Deployment Option 3: Mccloud
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Yay! :-) 20. Juli 2012 Slide 40
![Page 41: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/41.jpg)
© Zühlke 2012
knife-ec2
knife plugin to let you launch, bootstrap and provision EC2 VMs with Chef
Works only with Chef Server – no Chef Solo support
Puppet Cloud Provisioner
Puppet extension to launch, bootstrap and provision EC2 VMs with Puppet
Works only with Puppet Master – no Puppet Standalone mode (?)
Cloud Deployment Option 4: Native Chef / Puppet Tools
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 41
![Page 42: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/42.jpg)
© Zühlke 2012
knife-ec2
knife plugin to let you launch, bootstrap and provision EC2 VMs with Chef
Works only with Chef Server – no Chef Solo support
Puppet Cloud Provisioner
Puppet extension to launch, bootstrap and provision EC2 VMs with Puppet
Works only with Puppet Master – no Puppet Standalone mode (?)
Cloud Deployment Option 4: Native Chef / Puppet Tools
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
You can’t have both: it’s Chef OR Puppet Fallback if the generic tools (Option 2 & 3)
don’t work out as expected No Solo / Standalone mode
20. Juli 2012 Slide 42
![Page 43: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/43.jpg)
© Zühlke 2012
Vagrant – create and configure lightweight, reproducible, and portable development environments
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr
Vagranfile
20. Juli 2012 Slide 43
![Page 44: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/44.jpg)
© Zühlke 2012
EC2 User Data Scripts http://alestic.com/2009/06/ec2-user-data-scripts https://help.ubuntu.com/community/CloudInit http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html
AWS CloudFormation Templates with Chef/Puppet https://s3.amazonaws.com/cloudformation-examples/IntegratingAWSCloudFormationWithOpscodeChef.pdf https://s3.amazonaws.com/cloudformation-examples/IntegratingAWSCloudFormationWithPuppet.pdf
Mccloud https://github.com/jedi4ever/mccloud https://github.com/jedi4ever/mccloud-demo https://gist.github.com/3175267
knife-ec2 http://wiki.opscode.com/display/chef/Launch+Cloud+Instances+with+Knife
Puppet Cloud Provisioner http://docs.puppetlabs.com/guides/cloud_pack_getting_started.html
Cloud Deployment Overview & Resources
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co | Torben Knerr 20. Juli 2012 Slide 44
![Page 45: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/45.jpg)
© Zühlke 2012
Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co
Torben Knerr
Discussion Time!
Puppet, Mccloud, Foo, Bar, Baz
DevOps, NoOps, Blablabla
Vagrant, Chef, Deployment Stuff
Cloudy Cloud!
20. Juli 2012 Slide 45
![Page 46: Infrastructure-As-Code and Cloud Deployments with Opscode Chef & Co](https://reader034.vdocuments.us/reader034/viewer/2022051400/554df2a3b4c905f6598b522c/html5/thumbnails/46.jpg)
Thank You! And let’s continue the discussion here: