SlideShare a Scribd company logo
Assembling an Open Source Tool
Chain for the Hybrid Cloud
Isaac Christoffersen
Bit Herder & Cloud Wrangler
@ichristo
Bit Herder, Cloud Wrangler
● Geek, Insomniac,
Tinkerer
● Wearer of Many
Hats
● Delivering Open
Source Solutions
for 10+ years
● Solution Architect
at Vizuri
Why the Hybrid Cloud?
Our App is going to
change the world
as we know it!
“The best way to predict the
future is to invent it”
-- Ed Catmull
Unleash the System Administrators!
source - http://commons.wikimedia.org/wiki/
Word of Mouth Spreads. Popularity Rises.
source - http://commons.wikimedia.org/wiki/File:Ford_assembly_line_-_1913.jpg
More Sys Admins and a Little Automation
SlashDot / Oprah / Twitter Effect ...
We Need More DevOps!
Your App Has Gone Global!
All Hail the Fail Whale!
source - http://www.whatisfailwhale.info/
But We Had DevOps?!
source - http://upload.wikimedia.org/wikipedia/commons/e/e0/Nagasakibomb.jpg
Cloud Bursting?
Assembling the Hybrid Cloud
Tool Chain
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Cloud Deployments
Automatically create
machine images for
multiple platforms
from a single blueprint
AWS: AMI
VMware: VMX + disks
VirtualBox: OVF + disks
DigitalOcean: Snapshots
and many more …
http://www.packer.io/docs/templates/builders.html
BoxCutter (github.com/boxcutter)
• Build VirtualBox, VMWare, and Parallels Images
• Choose your desired CM tool (Puppet, Chef,
Ansible)
Bento (https://github.com/chef/bento)
• Used by Chef Release Team for Testing
• Chef specific Configuration Managment
Automation
No human interaction. Great for
Continuous Integration / Deployment
Standardization
Use Puppet, Chef, Ansible, Bash to
configure the image
Repeatability
Template goes into version control
Image creation knowledge is now in code
Anyone can build / rebuild the base images
EXAMPLE
CentOS Image in both AWS
& Digital Ocean
{
"builders": [
{
"type"
"access_key"
"secret_key"
"region"
"source_ami"
"security_group_id"
"instance_type"
"ssh_username"
"ssh_timeout"
"ami_name"
},
…
: "amazon-ebs",
: "{{user `aws_access_key`}}",
: "{{user `aws_secret_key`}}",
: "us-east-1",
: "ami-8997afe0",
: "sg-8f7e24e4",
: "t1.micro",
: "ec2-user",
: "5m",
: "centos-baseline {{timestamp}}"
…
{
"type"
"api_key"
"client_id"
"image_id"
: "digitalocean",
: "{{user `do_api_key`}}",
: "{{user `do_client_id`}}",
: "562354",
"snapshot_name" : "centos-baseline {{timestamp}}"
}
]
…
}
$ packer validate base-image.json
Template validated successfully.
$ packer build base-image.json
amazon-ebs output will be in this color.
digitalocean output will be in this color.
…
==> amazon-ebs: Deleting temporary keypair...
Build 'amazon-ebs' finished.
==> digitalocean: Destroying droplet...
==> digitalocean: Deleting temporary ssh key...
Build 'digitalocean' finished.
==> Builds finished. The artifacts of successful builds are:
--> digitalocean: A snapshot was created: 'centos-baseline
1396457723' in region 'New York 1'
EXAMPLE
BoxCutter Provisioning of
Centos to VMWare
Isaacs-MBP-2:centos-vm isaac$
make list
Prepend 'vmware/', 'virtualbox/',
or 'parallels/' to build only one
target platform:
make vmware/centos66
Targets:
…
centos66-desktop
centos66-docker
centos66-i386
centos66
centos70-desktop
centos70-docker
centos70
Isaacs-MBP-2:centos-vm isaac$
isaac$ make vmware/centos70-docker
rm -rf output-vmware-iso
mkdir -p box/vmware
packer build -only=vmware-iso -var 'cm=nocm’ -var
'headless=' -var 'update=' -var 'version=1.0.10' -var
'ssh_username=vagrant' -var 'ssh_password=vagrant' -
var 'install_vagrant_key=true' -var
"iso_url=http://mirrors.sonic.net/centos/7/isos/x86_64/Ce
ntOS-7-x86_64-DVD-1503-01.iso" centos70-docker.json
vmware-iso output will be in this color.
…
…
==> vmware-iso: Downloading or copying ISO
vmware-iso: Downloading or copying:
http://mirrors.sonic.net/centos/7/isos/x86_64/CentOS-7-
x86_64-DVD-1503-01.iso
==> vmware-iso: Creating floppy disk...
vmware-iso: Copying:
floppy/vmware9.compat_dcache.h.patch
==> vmware-iso: Creating virtual machine disk
==> vmware-iso: Building and writing VMX file
==> vmware-iso: Starting HTTP server on port 8597
==> vmware-iso: Starting virtual machine...
==> vmware-iso: Waiting 10s for boot...
==> vmware-iso: Connecting to VM via VNC
==> vmware-iso: Typing the boot command over VNC...
==> vmware-iso: Waiting for SSH to become available..
…
+
Mature, stable, proven. Development
since Jan 2010. Used by thousands
of companies.
Deploy to Multiple Providers
vagrant up --provider=foo
AWS, DigitalOcean, HP Cloud,
Joyent, KVM, libvirt, lxc,
OpenStack, Rackspace,
Vmware, VirtualBox
Leverage your own
Packer Images
• Base image as starting point.
• Integrates with multiple
“provisioners” including Puppet,
Chef, Ansible, Bash
Automation
No human interaction. Great for
Continuous Integration / Deployment
Standardization
Use Puppet, Chef, Ansible, Bash to
configure the image
Repeatability
Template goes into version control
Image creation knowledge is now in code
Anyone can build / rebuild the base
images
Vagrant.configure("2") do |config|
config.vm.box = "dummy"
config.vm.box_url = "https://github.com/mitchellh/
vagrant-aws/raw/master/dummy.box"
config.vm.provider :aws do |aws, override|
aws.access_key_id = "YOUR KEY"
aws.secret_access_key = "YOUR SECRET KEY"
aws.keypair_name = "KEYPAIR NAME” aws.ami
= ”ami-9baa9cf2”
override.ssh.username = “ec2-user”
override.ssh.forward_agent = true
override.ssh.private_key_path = “YOUR PRIVATE
KEY”
end
EXAMPLE
Multiple CentOS Images
created in AWS from base AMI
$ vagrant up --provider=aws
Use `vagrant plugin` commands to manage plugins. This warning
will be removed in the next version of Vagrant.
Bringing machine 'test-broker' up with 'aws' provider...
Bringing machine 'test-node-01' up with 'aws' provider...
Bringing machine 'test-node-02' up with 'aws' provider…
Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Cloud Deployments
• Configuration Management tool
like Puppet, Chef, CFEngine
• Quick to get started
• Builds on familiar tools
• Run commands over SSH. No
additional agents required
…
config.vm.provision :ansible do |ansible|
ansible.sudo = true
ansible.playbook = "provisioning/ansible/playbook.yml”
ansible.verbose = true
end
- hosts: all
tasks:
- name: ensure ntpd is at the latest version
yum: pkg=ntp state=latest
notify:
- restart ntpd
handlers:
- name: restart ntpd
service: name=ntpd state=restarted
EXAMPLE
Provision a CentOS
LAMP Stack in AWS
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
boxes.each do |box|
config.vm.define box[:name], primary: box[:primary] do |config|
config.vm.box = "aws-centos"
config.vm.box_url =
https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
…
config.vm.provision :shell, :privileged => false, :inline => "sudo
yum -y install screen"
config.vm.provision :ansible do |ansible|
ansible.sudo
ansible.playbook
lamp.yml"
ansible.verbose
end
…
= true
= "provisioning/ansible/playbook-
= true
- name : Install LAMP Stack
user: ec2-user
hosts: all
tasks:
-name: Install mysql
yum: name=mysql-server state=latest
-name: install httpd
yum: name=httpd
- name: Install php for
mysql yum: name=$item
with_items:
- php
- php-mysql
- mysql-server
Only Scratching the Surface
So many categories, so little time …
●Cloud Management (Scalr, ManageIQ)
●Log Aggregation (ELK)
●Monitoring Tools (nagios, zenoss)
●Version Control (Git, Subversion)
●CI Servers (Jenkins, TravisCI)
●… and many more
OSS DevOps Tools Ecosystem
Check Out - http://www.devopsbookmarks.com/
Thank You
Isaac Christoffersen
www.vizuri.com
ichristoffersen@vizuri.com
@ichristo
vagrantup.com packer.io ansible.com

More Related Content

PDF
OpenSource ToolChain for the Hybrid Cloud
PDF
EC2 AMI Factory with Chef, Berkshelf, and Packer
PDF
Symfony Deployments on Heroku
PDF
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
PDF
Rackspace Hack Night - Vagrant & Packer
PDF
Vagrant for real codemotion (moar tips! ;-))
PDF
Docker: automation for the rest of us
PDF
A Introduction of Packer
OpenSource ToolChain for the Hybrid Cloud
EC2 AMI Factory with Chef, Berkshelf, and Packer
Symfony Deployments on Heroku
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Rackspace Hack Night - Vagrant & Packer
Vagrant for real codemotion (moar tips! ;-))
Docker: automation for the rest of us
A Introduction of Packer

What's hot (20)

PDF
Vagrant for real (codemotion rome 2016)
PPTX
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
PDF
SEP DevOps Ignite Talk - Packer
PPTX
Journey to the Cloud
PDF
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
ODP
Puppet and Apache CloudStack
PDF
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
PDF
Docker puppetcamp london 2013
PDF
Create your very own Development Environment with Vagrant and Packer
PDF
(2016-06-11) Packer: Make Multi-Platform Images
PPTX
Configuration management and deployment with ansible
PDF
DevOps(2) : Vagrant - (MOSG)
KEY
PDF
Immutable AWS Deployments with Packer and Jenkins
PDF
DevOps for Humans - Ansible for Drupal Deployment Victory!
PPT
Node.js Cloud deployment
PDF
AWS Lambda with Serverless Framework and Java
PDF
Packer demo
PDF
Preparation study of_docker - (MOSG)
PDF
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
Vagrant for real (codemotion rome 2016)
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
SEP DevOps Ignite Talk - Packer
Journey to the Cloud
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Puppet and Apache CloudStack
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
Docker puppetcamp london 2013
Create your very own Development Environment with Vagrant and Packer
(2016-06-11) Packer: Make Multi-Platform Images
Configuration management and deployment with ansible
DevOps(2) : Vagrant - (MOSG)
Immutable AWS Deployments with Packer and Jenkins
DevOps for Humans - Ansible for Drupal Deployment Victory!
Node.js Cloud deployment
AWS Lambda with Serverless Framework and Java
Packer demo
Preparation study of_docker - (MOSG)
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
Ad

Similar to Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Cloud Deployments (20)

PDF
Vagrant For DevOps
PDF
Virtualization with Vagrant (ua.pycon 2011)
PDF
Create Development and Production Environments with Vagrant
PDF
Vagrant - Version control your dev environment
PDF
FreeBSD: Dev to Prod
PPT
Linux containers and docker
PPTX
Vagrant and Chef on FOSSASIA 2014
PPTX
Industrialization, be fast be furious!
PDF
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
PDF
Intro to vagrant
PDF
From Dev to DevOps
KEY
Using Vagrant
PDF
SCALE 2011 Deploying OpenStack with Chef
PDF
Mihai Criveti - PyCon Ireland - Automate Everything
PDF
TXLF: Automated Deployment of OpenStack with Chef
PDF
Deployment automation
PPTX
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
PDF
Integrating icinga2 and the HashiCorp suite
KEY
From Dev to DevOps - ApacheCON NA 2011
PPTX
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Vagrant For DevOps
Virtualization with Vagrant (ua.pycon 2011)
Create Development and Production Environments with Vagrant
Vagrant - Version control your dev environment
FreeBSD: Dev to Prod
Linux containers and docker
Vagrant and Chef on FOSSASIA 2014
Industrialization, be fast be furious!
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Intro to vagrant
From Dev to DevOps
Using Vagrant
SCALE 2011 Deploying OpenStack with Chef
Mihai Criveti - PyCon Ireland - Automate Everything
TXLF: Automated Deployment of OpenStack with Chef
Deployment automation
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
Integrating icinga2 and the HashiCorp suite
From Dev to DevOps - ApacheCON NA 2011
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Ad

More from POSSCON (20)

PDF
Why Meteor.JS?
PDF
Vagrant 101
PDF
Tools for Open Source Systems Administration
PPTX
Accelerating Application Delivery with OpenShift
PDF
Openstack 101
ODP
Community Building: The Open Source Way
PPTX
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
PDF
Software Defined Networking (SDN) for the Datacenter
PDF
Application Security on a Dime: A Practical Guide to Using Functional Open So...
ODP
Why Your Open Source Story Matters
PDF
How YARN Enables Multiple Data Processing Engines in Hadoop
PPTX
Google Summer of Code
PDF
Introduction to Hadoop
PDF
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
PPTX
Cyber Security and Open Source
PDF
Intro to AngularJS
PDF
Docker 101: An Introduction
PDF
Graph the Planet!
PDF
Software Freedom Licensing: What You Must Know
PDF
Contributing to an Open Source Project 101
Why Meteor.JS?
Vagrant 101
Tools for Open Source Systems Administration
Accelerating Application Delivery with OpenShift
Openstack 101
Community Building: The Open Source Way
I Know It Was MEAN, But I Cut the Cord to LAMP Anyway
Software Defined Networking (SDN) for the Datacenter
Application Security on a Dime: A Practical Guide to Using Functional Open So...
Why Your Open Source Story Matters
How YARN Enables Multiple Data Processing Engines in Hadoop
Google Summer of Code
Introduction to Hadoop
How to Use Cryptography Properly: The Common Mistakes People Make When Using ...
Cyber Security and Open Source
Intro to AngularJS
Docker 101: An Introduction
Graph the Planet!
Software Freedom Licensing: What You Must Know
Contributing to an Open Source Project 101

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
A Presentation on Artificial Intelligence
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
Cloud computing and distributed systems.
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Digital-Transformation-Roadmap-for-Companies.pptx
Big Data Technologies - Introduction.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
A Presentation on Artificial Intelligence
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Approach and Philosophy of On baking technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation theory and applications.pdf
Cloud computing and distributed systems.
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

Assembling an Open Source Toolchain to Manage Public, Private and Hybrid Cloud Deployments

  • 1. Assembling an Open Source Tool Chain for the Hybrid Cloud Isaac Christoffersen Bit Herder & Cloud Wrangler @ichristo
  • 2. Bit Herder, Cloud Wrangler ● Geek, Insomniac, Tinkerer ● Wearer of Many Hats ● Delivering Open Source Solutions for 10+ years ● Solution Architect at Vizuri
  • 3. Why the Hybrid Cloud?
  • 4. Our App is going to change the world as we know it! “The best way to predict the future is to invent it” -- Ed Catmull
  • 5. Unleash the System Administrators! source - http://commons.wikimedia.org/wiki/
  • 6. Word of Mouth Spreads. Popularity Rises.
  • 8. SlashDot / Oprah / Twitter Effect ...
  • 9. We Need More DevOps!
  • 10. Your App Has Gone Global!
  • 11. All Hail the Fail Whale! source - http://www.whatisfailwhale.info/
  • 12. But We Had DevOps?!
  • 14. Assembling the Hybrid Cloud Tool Chain
  • 16. Automatically create machine images for multiple platforms from a single blueprint
  • 17. AWS: AMI VMware: VMX + disks VirtualBox: OVF + disks DigitalOcean: Snapshots and many more … http://www.packer.io/docs/templates/builders.html
  • 18. BoxCutter (github.com/boxcutter) • Build VirtualBox, VMWare, and Parallels Images • Choose your desired CM tool (Puppet, Chef, Ansible) Bento (https://github.com/chef/bento) • Used by Chef Release Team for Testing • Chef specific Configuration Managment
  • 19. Automation No human interaction. Great for Continuous Integration / Deployment Standardization Use Puppet, Chef, Ansible, Bash to configure the image Repeatability Template goes into version control Image creation knowledge is now in code Anyone can build / rebuild the base images
  • 20. EXAMPLE CentOS Image in both AWS & Digital Ocean
  • 21. { "builders": [ { "type" "access_key" "secret_key" "region" "source_ami" "security_group_id" "instance_type" "ssh_username" "ssh_timeout" "ami_name" }, … : "amazon-ebs", : "{{user `aws_access_key`}}", : "{{user `aws_secret_key`}}", : "us-east-1", : "ami-8997afe0", : "sg-8f7e24e4", : "t1.micro", : "ec2-user", : "5m", : "centos-baseline {{timestamp}}"
  • 22. … { "type" "api_key" "client_id" "image_id" : "digitalocean", : "{{user `do_api_key`}}", : "{{user `do_client_id`}}", : "562354", "snapshot_name" : "centos-baseline {{timestamp}}" } ] … }
  • 23. $ packer validate base-image.json Template validated successfully. $ packer build base-image.json amazon-ebs output will be in this color. digitalocean output will be in this color. … ==> amazon-ebs: Deleting temporary keypair... Build 'amazon-ebs' finished. ==> digitalocean: Destroying droplet... ==> digitalocean: Deleting temporary ssh key... Build 'digitalocean' finished. ==> Builds finished. The artifacts of successful builds are: --> digitalocean: A snapshot was created: 'centos-baseline 1396457723' in region 'New York 1'
  • 25. Isaacs-MBP-2:centos-vm isaac$ make list Prepend 'vmware/', 'virtualbox/', or 'parallels/' to build only one target platform: make vmware/centos66 Targets: … centos66-desktop centos66-docker centos66-i386 centos66 centos70-desktop centos70-docker centos70 Isaacs-MBP-2:centos-vm isaac$
  • 26. isaac$ make vmware/centos70-docker rm -rf output-vmware-iso mkdir -p box/vmware packer build -only=vmware-iso -var 'cm=nocm’ -var 'headless=' -var 'update=' -var 'version=1.0.10' -var 'ssh_username=vagrant' -var 'ssh_password=vagrant' - var 'install_vagrant_key=true' -var "iso_url=http://mirrors.sonic.net/centos/7/isos/x86_64/Ce ntOS-7-x86_64-DVD-1503-01.iso" centos70-docker.json vmware-iso output will be in this color. …
  • 27. … ==> vmware-iso: Downloading or copying ISO vmware-iso: Downloading or copying: http://mirrors.sonic.net/centos/7/isos/x86_64/CentOS-7- x86_64-DVD-1503-01.iso ==> vmware-iso: Creating floppy disk... vmware-iso: Copying: floppy/vmware9.compat_dcache.h.patch ==> vmware-iso: Creating virtual machine disk ==> vmware-iso: Building and writing VMX file ==> vmware-iso: Starting HTTP server on port 8597 ==> vmware-iso: Starting virtual machine... ==> vmware-iso: Waiting 10s for boot... ==> vmware-iso: Connecting to VM via VNC ==> vmware-iso: Typing the boot command over VNC... ==> vmware-iso: Waiting for SSH to become available.. …
  • 28. +
  • 29. Mature, stable, proven. Development since Jan 2010. Used by thousands of companies.
  • 30. Deploy to Multiple Providers vagrant up --provider=foo AWS, DigitalOcean, HP Cloud, Joyent, KVM, libvirt, lxc, OpenStack, Rackspace, Vmware, VirtualBox
  • 31. Leverage your own Packer Images • Base image as starting point. • Integrates with multiple “provisioners” including Puppet, Chef, Ansible, Bash
  • 32. Automation No human interaction. Great for Continuous Integration / Deployment Standardization Use Puppet, Chef, Ansible, Bash to configure the image Repeatability Template goes into version control Image creation knowledge is now in code Anyone can build / rebuild the base images
  • 33. Vagrant.configure("2") do |config| config.vm.box = "dummy" config.vm.box_url = "https://github.com/mitchellh/ vagrant-aws/raw/master/dummy.box" config.vm.provider :aws do |aws, override| aws.access_key_id = "YOUR KEY" aws.secret_access_key = "YOUR SECRET KEY" aws.keypair_name = "KEYPAIR NAME” aws.ami = ”ami-9baa9cf2” override.ssh.username = “ec2-user” override.ssh.forward_agent = true override.ssh.private_key_path = “YOUR PRIVATE KEY” end
  • 35. $ vagrant up --provider=aws Use `vagrant plugin` commands to manage plugins. This warning will be removed in the next version of Vagrant. Bringing machine 'test-broker' up with 'aws' provider... Bringing machine 'test-node-01' up with 'aws' provider... Bringing machine 'test-node-02' up with 'aws' provider…
  • 37. • Configuration Management tool like Puppet, Chef, CFEngine • Quick to get started • Builds on familiar tools • Run commands over SSH. No additional agents required
  • 38. … config.vm.provision :ansible do |ansible| ansible.sudo = true ansible.playbook = "provisioning/ansible/playbook.yml” ansible.verbose = true end - hosts: all tasks: - name: ensure ntpd is at the latest version yum: pkg=ntp state=latest notify: - restart ntpd handlers: - name: restart ntpd service: name=ntpd state=restarted
  • 40. Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| boxes.each do |box| config.vm.define box[:name], primary: box[:primary] do |config| config.vm.box = "aws-centos" config.vm.box_url = https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box … config.vm.provision :shell, :privileged => false, :inline => "sudo yum -y install screen" config.vm.provision :ansible do |ansible| ansible.sudo ansible.playbook lamp.yml" ansible.verbose end … = true = "provisioning/ansible/playbook- = true
  • 41. - name : Install LAMP Stack user: ec2-user hosts: all tasks: -name: Install mysql yum: name=mysql-server state=latest -name: install httpd yum: name=httpd - name: Install php for mysql yum: name=$item with_items: - php - php-mysql - mysql-server
  • 43. So many categories, so little time … ●Cloud Management (Scalr, ManageIQ) ●Log Aggregation (ELK) ●Monitoring Tools (nagios, zenoss) ●Version Control (Git, Subversion) ●CI Servers (Jenkins, TravisCI) ●… and many more
  • 44. OSS DevOps Tools Ecosystem Check Out - http://www.devopsbookmarks.com/