Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automating the Cloud (Unix)
Search
Mat Schaffer
October 27, 2012
230
3
Share
Automating the Cloud (Unix)
Mat Schaffer
October 27, 2012
More Decks by Mat Schaffer
See All by Mat Schaffer
RubyKaigi 2017: Mapping your world with Ruby
matschaffer
2
240
Test Driven Deployment
matschaffer
12
1.7k
Automating the Cloud (Windows)
matschaffer
1
200
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
280
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
190
The agentic SEO stack - context over prompts
schlessera
0
790
Code Review Best Practice
trishagee
74
20k
The Limits of Empathy - UXLibs8
cassininazir
1
350
Building Applications with DynamoDB
mza
96
7.1k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Discover your Explorer Soul
emna__ayadi
2
1.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
150
Music & Morning Musume
bryan
47
7.2k
Transcript
Automating the Cloud Mat Schaffer CPOSC October 2012
Our agenda • Me • You • Old cars •
How Chef works • Setting up Chef • An Example deployment
Mat Schaffer about.me/matschaffer
(for hire)
•Linux Sys Admin •PHP & Java •Ruby on Rails •DevOps
You
Automation & You
Expensive ($2k-$3k) Hand made 12.5 hours
$850 Heavily Automated 1.5 hours
Many early car companies failed by 1930 https://en.wikipedia.org/wiki/List_of_defunct_United_States_automobile_manufacturers
Continuous Delivery
“... continuous delivery will move from being a competitive advantage
to being a prerequisite for survival.” - Jez Humble
Configuration Management
Chef
(Chef server) b my_cookbook $ chef-client $ chef-client my_cookbook my_cookbook
$ chef-server my_cookbook ├── README.rdoc ├── attributes ├── definitions ├── files │ └── default ├── libraries ├── metadata.rb ├── providers ├── recipes │ └── default.rb ├── resources └── templates └── default
cookbook role node environment
Cookbook: mysql default['mysql']['memory'] = "32M" Role: db default_attributes 'mysql' =>
{ 'memory' = "2G" } Environment: dev "mysql" : { "memory": "1G" } Node: db3.dev.mashion.net "mysql" : { "memory": "512M" }
Step 1: Get a Chef server
http://manage.opscode.com
http://devops.mashion.net/chef-install
Step 2: Set up your workstation
wiki.opscode.com/display/ chef/Workstation+Setup
None
None
None
Step 3: Make a cookbook
Cookbooks?
39 service 'nginx' do 40 action :start 41 end Recipes
1 default['nginx']['version'] = "1.2.3" 2 default['nginx']['dir'] = "/etc/nginx" Attributes 2 DAEMON=<%= @src_binary %> 3 NAME=nginx 4 DESC=nginx 5 PID=<%= @pid %> Templates
http://community.opscode.com
gem install berkshelf berks install
github.com/matschaffer/ cposc-cloud
git clone https://github.../matschaffer/cposc-cloud cd cposc-cloud gem install berkshelf berks install
berks upload knife role from file roles/* # store cposc-cloud.pem to ./
Step 4: Prepare a server
None
None
gem install knife-ec2 # in ~/.chef/knife.rb knife[:aws_access_key_id] = "AKI..." knife[:aws_secret_access_key]
= "wmw..." knife[:availability_zone] = "us-east-1d" knife[:image] = "ami-8fac75e6" knife[:aws_ssh_key_id] = "cposc-cloud" knife ec2 server create -x ubuntu -i cposc-cloud.pem \ -r 'recipe[cposc-cloud]' github.com/opscode/knife-ec2
$ ntpdate pool.ntp.org C:\> w32tm /resync
None
Wrap-UP • Automation can save your business • CM is
a key part of your automation stack • You can get started today
Thank you! about.me/matschaffer