SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
© Copyright 2015 Coveros, Inc. All rights reserved.
Creating Disposable Test Environments
with Vagrant and Puppet
Gene Gotimer, Senior Architect
gene.gotimer@coveros.com
2© Copyright 2015 Coveros, Inc. All rights reserved.
 Coveros helps organizations accelerate the delivery of
business value through secure, reliable software
About Coveros
3© Copyright 2015 Coveros, Inc. All rights reserved.
Why Disposable Test Environments?
 Destructive testing
 Known baseline
 Available on-demand
 Not shared
 No vested interest in keeping them long-term
 Always up-to-date
4© Copyright 2015 Coveros, Inc. All rights reserved.
Tools Involved
 VirtualBox
– virtualization software
 Vagrant
– virtualization automation
 Puppet
– configuration management and automation
– Chef, Ansible, or SaltStack would work equally well
 Packer
– machine image automation
5© Copyright 2015 Coveros, Inc. All rights reserved.
VirtualBox
6© Copyright 2015 Coveros, Inc. All rights reserved.
Oracle VM VirtualBox
 Virtualization software from Oracle
 Free
 Runs on Windows, Mac, Linux
 Runs as an application
 Allows us to use local VMs
 Easy to install
 Works well with Vagrant
https://www.virtualbox.org/
7© Copyright 2015 Coveros, Inc. All rights reserved.
Vagrant
8© Copyright 2015 Coveros, Inc. All rights reserved.
Vagrant
 Virtualization workflow software from HashiCorp
 Free, open-source
 Runs on Windows, Mac, Linux
 Easy to install
 Works well with Puppet, Chef, Shell
– many other provisioners
 Works well with VirtualBox, VMware, Amazon Web Services
– many other providers
https://www.vagrantup.com/
9© Copyright 2015 Coveros, Inc. All rights reserved.
Creating a Vagrant Box
 To create a VM:
– mkdir starcanada‐vagrant
– cd starcanada‐vagrant
– vagrant box add hashicorp/precise64
– vagrant init hashicorp/precise64
– vagrant up
 vagrant box add
– downloads a “base box”
– boxes at https://atlas.hashicorp.com/search
 vagrant init
– builds a Vagrantfile with the base box
 vagrant up
– starts the VM
10© Copyright 2015 Coveros, Inc. All rights reserved.
Vagrantfile
 Vagrantfile
– lots of comments by default
– stock Vagrantfile without comments is:
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
end
11© Copyright 2015 Coveros, Inc. All rights reserved.
vagrant up
 vagrant up
– imports the base box to VirtualBox
– makes sure the base box is up to date
– sets a unique name for the VM
– sets up networking (just NAT by default)
– sets up port forwarding (just SSH by default)
– boots VM
– replaces known, insecure SSH key with a new random key
– makes sure VirtualBox Guest Additions are installed
– mounts shared folders (/vagrant by default on the VM)
– provisions software (nothing by default)
12© Copyright 2015 Coveros, Inc. All rights reserved.
Access Vagrant Box
 To access a VM:
– vagrant ssh
 vagrant ssh
– connects to the VM via the forwarded SSH port
 requires an SSH client installed
– Git (https://msysgit.github.io/)
– openssh on Cygwin (http://www.cygwin.com/)
– PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/)
 requires converting the key format
13© Copyright 2015 Coveros, Inc. All rights reserved.
Rebuild Vagrant Box
 To rebuild a VM:
– vagrant destroy
– vagrant up
 vagrant destroy
– deletes a VM
 vagrant up
– starts the VM
14© Copyright 2015 Coveros, Inc. All rights reserved.
Puppet
15© Copyright 2015 Coveros, Inc. All rights reserved.
Puppet
 Configuration management software from PuppetLabs
 Vaguely Ruby-based, domain-specific language
 Free, open-source
 Runs on Windows, Mac, Linux
 Easy to install
 Works well with Vagrant
 Similar to Chef, Ansible, SaltStack
https://puppetlabs.com/
16© Copyright 2015 Coveros, Inc. All rights reserved.
Install Apache with Puppet
 Modify the Vagrantfile:
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.network "private_network", ip: "192.168.33.10"
config.puppet_install.puppet_version = '3.8.1'
config.vm.provision "shell", inline: <<‐SHELL
sudo puppet module install puppetlabs‐apache
SHELL
config.vm.provision "puppet" do |puppet|
puppet.manifests_path = "manifests"
puppet.manifest_file = "site.pp"
puppet.module_path = "modules"
end
end
17© Copyright 2015 Coveros, Inc. All rights reserved.
Vagrant Networking
 config.vm.network "private_network", ip: "192.168.33.10"
– sets up a new network interface on the box
– private_network = host-only
 only this box and other VMs on this box can reach it
18© Copyright 2015 Coveros, Inc. All rights reserved.
Vagrant Modules
 config.puppet_install.puppet_version = '3.8.1'
– Vagrant module from
https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins
– vagrant‐puppet‐install
 installs Puppet version 3.8.1
 could have been :latest, but I want control
19© Copyright 2015 Coveros, Inc. All rights reserved.
Shell Provisioning
 config.vm.provision "shell", inline: <<‐SHELL
sudo puppet module install puppetlabs‐apache
SHELL
– here-doc that runs all the commands until SHELL
– this command installs a Puppet module from
https://forge.puppetlabs.com/puppetlabs
20© Copyright 2015 Coveros, Inc. All rights reserved.
Puppet Provisioning
 config.vm.provision "puppet" do |puppet|
puppet.manifests_path = "manifests"
puppet.manifest_file = "site.pp"
puppet.module_path = "modules"
end
– sets up a standard Puppet layout
– commands in manifests/site.pp
– reusable modules in modules
21© Copyright 2015 Coveros, Inc. All rights reserved.
Example Puppet Code
 Example init.pp file in the modules/website/manifests directory:
class website {
class { 'apache': }
apache::vhost { "${::fqdn}":
vhost_name => '*',
default_vhost => true,
port          => '80',
docroot => '/var/www',
}
file { '/var/www/index.html':
ensure  => 'file',
content => template('website/index.html.erb'),
owner   => 'root',
group   => 'www‐data',
mode    => '0640',
require => Class['apache'],
}
}
22© Copyright 2015 Coveros, Inc. All rights reserved.
Installing Apache httpd
 class { 'apache:' } 
– installs Apache httpd server
– sets up default configuration
23© Copyright 2015 Coveros, Inc. All rights reserved.
Configuring Apache httpd
 apache::vhost { "${::fqdn}":
vhost_name => '*',
default_vhost => true,
port          => '80',
docroot => '/var/www',
}
– sets up default virtual host
– listening on port 80
– document root is /var/www
24© Copyright 2015 Coveros, Inc. All rights reserved.
Installing Templated Content
 file { '/var/www/index.html':
ensure  => 'file',
content => template('website/index.html.erb'),
owner   => 'root',
group   => 'www‐data',
mode    => '0640',
require => Class['apache'],
}
– copies file from host box
– sets owner, group, and permissions
25© Copyright 2015 Coveros, Inc. All rights reserved.
Automation Advantages
 Deploy is now automated
 Automated = repeatable, easy, quick
 Test on the system, make any changes we want, then
destroy it, recreate it in a pristine condition
 Reuse the deployment scripts in all environments
– including production
– especially production
26© Copyright 2015 Coveros, Inc. All rights reserved.
Other Possibilities
 Template files
 Variable substitution/Configuration database
– YAML
– JSON
– Encrypted
 Multiple machines
 Different providers
– Managed
– VMware
– Amazon Web Services (AWS)
 Chef, Ansible, or SaltStack
27© Copyright 2015 Coveros, Inc. All rights reserved.
Packer
28© Copyright 2015 Coveros, Inc. All rights reserved.
Packer
 Machine image automation from HashiCorp
 Free, open-source
 Runs on Windows, Mac, Linux
 Easy to install
 Works well with Puppet, Chef, Shell
– many other provisioners
 Works well with VirtualBox, VMware, Amazon Web Services
– many other providers
https://packer.io/
29© Copyright 2015 Coveros, Inc. All rights reserved.
Packer Templates
 Packer templates on GitHub from Shiguredo, Inc.
 Templates for
– CentOS Linux 6.4, 6.5, 6.6, 7.0, 7.1
– Scientific Linux 6.4, 6.5, 7.0
– Ubuntu Linux 12.04, 14.04
 Fork and edit to create you own base boxes
https://github.com/shiguredo/packer-templates
30© Copyright 2015 Coveros, Inc. All rights reserved.
Wrap-Up
31© Copyright 2015 Coveros, Inc. All rights reserved.
Tools Recap
 VirtualBox
– virtualization software
– https://www.virtualbox.org/
 Vagrant
– virtualization automation
– https://www.vagrantup.com/
– Boxes: https://atlas.hashicorp.com/search
– Plugins:
https://github.com/mitchellh/vagrant/wiki/Available-
Vagrant-Plugins
32© Copyright 2015 Coveros, Inc. All rights reserved.
Tools Recap
 Puppet
– configuration management and automation
– https://puppetlabs.com/
– Modules: https://forge.puppetlabs.com/puppetlabs
 Packer
– machine image automation
– https://packer.io/
– Templates: https://github.com/shiguredo/packer-
templates
33© Copyright 2015 Coveros, Inc. All rights reserved.
Questions?
Gene Gotimer
gene.gotimer@coveros.com
http://www.coveros.com
@CoverosGene

Weitere ähnliche Inhalte

Was ist angesagt?

Jump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & GithubJump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & Githubhubx
 
How To Set a Vagrant Development System
How To Set a Vagrant Development SystemHow To Set a Vagrant Development System
How To Set a Vagrant Development SystemPaul Bearne
 
OpenStack Upstream Training Cisco Live!
OpenStack Upstream Training Cisco Live!OpenStack Upstream Training Cisco Live!
OpenStack Upstream Training Cisco Live!openstackcisco
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and KamailioGiacomo Vacca
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Nicolas Poggi
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application ManagementClark Everetts
 
Features supported by squid proxy server
Features supported by squid proxy serverFeatures supported by squid proxy server
Features supported by squid proxy serverProxies Rent
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and AgentRanjit Avasarala
 
Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8Lance Albertson
 
Docker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesDocker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesSujay Pillai
 
Howto: Install openQRM 5.1 on Debian Wheezy
Howto: Install openQRM 5.1 on Debian WheezyHowto: Install openQRM 5.1 on Debian Wheezy
Howto: Install openQRM 5.1 on Debian WheezyopenQRM Enterprise GmbH
 
Dockerin10mins
Dockerin10minsDockerin10mins
Dockerin10minsDawood M.S
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
How to master OpenStack in 2 hours
How to master OpenStack in 2 hoursHow to master OpenStack in 2 hours
How to master OpenStack in 2 hoursOpenCity Community
 
Python virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutesPython virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutesLarry Cai
 
Building a Cauldron for Chef to Cook In
Building a Cauldron for Chef to Cook InBuilding a Cauldron for Chef to Cook In
Building a Cauldron for Chef to Cook Inasync_io
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To RunningGiacomo Vacca
 
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...Puppet
 

Was ist angesagt? (20)

Jump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & GithubJump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & Github
 
How To Set a Vagrant Development System
How To Set a Vagrant Development SystemHow To Set a Vagrant Development System
How To Set a Vagrant Development System
 
Vagrant
VagrantVagrant
Vagrant
 
OpenStack Upstream Training Cisco Live!
OpenStack Upstream Training Cisco Live!OpenStack Upstream Training Cisco Live!
OpenStack Upstream Training Cisco Live!
 
Continuous Integration and Kamailio
Continuous Integration and KamailioContinuous Integration and Kamailio
Continuous Integration and Kamailio
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
 
Features supported by squid proxy server
Features supported by squid proxy serverFeatures supported by squid proxy server
Features supported by squid proxy server
 
Installaling Puppet Master and Agent
Installaling Puppet Master and AgentInstallaling Puppet Master and Agent
Installaling Puppet Master and Agent
 
Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8
 
Docker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesDocker Basics & Alfresco Content Services
Docker Basics & Alfresco Content Services
 
Vagrant and CentOS 7
Vagrant and CentOS 7Vagrant and CentOS 7
Vagrant and CentOS 7
 
Howto: Install openQRM 5.1 on Debian Wheezy
Howto: Install openQRM 5.1 on Debian WheezyHowto: Install openQRM 5.1 on Debian Wheezy
Howto: Install openQRM 5.1 on Debian Wheezy
 
Dockerin10mins
Dockerin10minsDockerin10mins
Dockerin10mins
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
How to master OpenStack in 2 hours
How to master OpenStack in 2 hoursHow to master OpenStack in 2 hours
How to master OpenStack in 2 hours
 
Python virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutesPython virtualenv & pip in 90 minutes
Python virtualenv & pip in 90 minutes
 
Building a Cauldron for Chef to Cook In
Building a Cauldron for Chef to Cook InBuilding a Cauldron for Chef to Cook In
Building a Cauldron for Chef to Cook In
 
Docker - From Walking To Running
Docker - From Walking To RunningDocker - From Walking To Running
Docker - From Walking To Running
 
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
 

Ähnlich wie Create Disposable Test Environments with Vagrant and Puppet

DevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: VagrantDevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: VagrantAntons Kranga
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantBrian Hogan
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
Web Technology Management Lecture IV
Web Technology Management Lecture IVWeb Technology Management Lecture IV
Web Technology Management Lecture IVsopekmir
 
Conhecendo o Vagrant
Conhecendo o VagrantConhecendo o Vagrant
Conhecendo o VagrantLeandro Nunes
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackB1 Systems GmbH
 
Kubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slidesKubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slidesSimone Morellato
 
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클Oracle Korea
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in developmentAdam Culp
 
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Acquia
 
20180607 master your vms with vagrant
20180607 master your vms with vagrant20180607 master your vms with vagrant
20180607 master your vms with vagrantmakker_nl
 
Professional deployment
Professional deploymentProfessional deployment
Professional deploymentIvelina Dimova
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for DevelopersAntons Kranga
 
Vagrant - Version control your dev environment
Vagrant - Version control your dev environmentVagrant - Version control your dev environment
Vagrant - Version control your dev environmentbocribbz
 

Ähnlich wie Create Disposable Test Environments with Vagrant and Puppet (20)

Security Testing Using Infrastructure-As-Code
Security Testing Using Infrastructure-As-CodeSecurity Testing Using Infrastructure-As-Code
Security Testing Using Infrastructure-As-Code
 
DevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: VagrantDevOps Hackathon - Session 1: Vagrant
DevOps Hackathon - Session 1: Vagrant
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Vagrant
VagrantVagrant
Vagrant
 
Vagrant Up in 5 Easy Steps
Vagrant Up in 5 Easy StepsVagrant Up in 5 Easy Steps
Vagrant Up in 5 Easy Steps
 
Web Technology Management Lecture IV
Web Technology Management Lecture IVWeb Technology Management Lecture IV
Web Technology Management Lecture IV
 
Conhecendo o Vagrant
Conhecendo o VagrantConhecendo o Vagrant
Conhecendo o Vagrant
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Kubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slidesKubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slides
 
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in development
 
Intro to vagrant
Intro to vagrantIntro to vagrant
Intro to vagrant
 
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
 
20180607 master your vms with vagrant
20180607 master your vms with vagrant20180607 master your vms with vagrant
20180607 master your vms with vagrant
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for Developers
 
Vagrant - Version control your dev environment
Vagrant - Version control your dev environmentVagrant - Version control your dev environment
Vagrant - Version control your dev environment
 
Vagrant For DevOps
Vagrant For DevOpsVagrant For DevOps
Vagrant For DevOps
 

Mehr von Gene Gotimer

A Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes SecurityA Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes SecurityGene Gotimer
 
How I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy CodeHow I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy CodeGene Gotimer
 
Ten Ways To Doom Your DevOps
Ten Ways To Doom Your DevOpsTen Ways To Doom Your DevOps
Ten Ways To Doom Your DevOpsGene Gotimer
 
Keeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureKeeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureGene Gotimer
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureGene Gotimer
 
Explain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for ManagersExplain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for ManagersGene Gotimer
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureGene Gotimer
 
Creative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems IICreative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems IIGene Gotimer
 
Creative Solutions to Already Solved Problems
Creative Solutions to Already Solved ProblemsCreative Solutions to Already Solved Problems
Creative Solutions to Already Solved ProblemsGene Gotimer
 
Get to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy CodeGet to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy CodeGene Gotimer
 
DevOps for Leadership
DevOps for LeadershipDevOps for Leadership
DevOps for LeadershipGene Gotimer
 
Pyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow OrganizationsPyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow OrganizationsGene Gotimer
 
A better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the governmentA better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the governmentGene Gotimer
 
Building the Pipeline of My Dreams
Building the Pipeline of My DreamsBuilding the Pipeline of My Dreams
Building the Pipeline of My DreamsGene Gotimer
 
Tests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be MissingTests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be MissingGene Gotimer
 
A Definition of Done for DevSecOps
A Definition of Done for DevSecOpsA Definition of Done for DevSecOps
A Definition of Done for DevSecOpsGene Gotimer
 
A Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software DeliveryA Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software DeliveryGene Gotimer
 
Open Source Security Tools for the Pipeline
Open Source Security Tools for the PipelineOpen Source Security Tools for the Pipeline
Open Source Security Tools for the PipelineGene Gotimer
 
Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Gene Gotimer
 
Add Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineAdd Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineGene Gotimer
 

Mehr von Gene Gotimer (20)

A Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes SecurityA Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes Security
 
How I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy CodeHow I Learned to Stop Worrying and Love Legacy Code
How I Learned to Stop Worrying and Love Legacy Code
 
Ten Ways To Doom Your DevOps
Ten Ways To Doom Your DevOpsTen Ways To Doom Your DevOps
Ten Ways To Doom Your DevOps
 
Keeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster SecureKeeping Your Kubernetes Cluster Secure
Keeping Your Kubernetes Cluster Secure
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster Secure
 
Explain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for ManagersExplain DevOps To Me Like I’m Five: DevOps for Managers
Explain DevOps To Me Like I’m Five: DevOps for Managers
 
Keeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster SecureKeeping your Kubernetes Cluster Secure
Keeping your Kubernetes Cluster Secure
 
Creative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems IICreative Solutions to Already Solved Problems II
Creative Solutions to Already Solved Problems II
 
Creative Solutions to Already Solved Problems
Creative Solutions to Already Solved ProblemsCreative Solutions to Already Solved Problems
Creative Solutions to Already Solved Problems
 
Get to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy CodeGet to Green: How to Safely Refactor Legacy Code
Get to Green: How to Safely Refactor Legacy Code
 
DevOps for Leadership
DevOps for LeadershipDevOps for Leadership
DevOps for Leadership
 
Pyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow OrganizationsPyramid Discussion: DevOps Adoption in Large, Slow Organizations
Pyramid Discussion: DevOps Adoption in Large, Slow Organizations
 
A better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the governmentA better faster pipeline for software delivery, even in the government
A better faster pipeline for software delivery, even in the government
 
Building the Pipeline of My Dreams
Building the Pipeline of My DreamsBuilding the Pipeline of My Dreams
Building the Pipeline of My Dreams
 
Tests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be MissingTests Your Pipeline Might Be Missing
Tests Your Pipeline Might Be Missing
 
A Definition of Done for DevSecOps
A Definition of Done for DevSecOpsA Definition of Done for DevSecOps
A Definition of Done for DevSecOps
 
A Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software DeliveryA Better, Faster Pipeline for Software Delivery
A Better, Faster Pipeline for Software Delivery
 
Open Source Security Tools for the Pipeline
Open Source Security Tools for the PipelineOpen Source Security Tools for the Pipeline
Open Source Security Tools for the Pipeline
 
Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?Which Development Metrics Should I Watch?
Which Development Metrics Should I Watch?
 
Add Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineAdd Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery Pipeline
 

Kürzlich hochgeladen

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 

Kürzlich hochgeladen (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

Create Disposable Test Environments with Vagrant and Puppet

  • 1. © Copyright 2015 Coveros, Inc. All rights reserved. Creating Disposable Test Environments with Vagrant and Puppet Gene Gotimer, Senior Architect gene.gotimer@coveros.com
  • 2. 2© Copyright 2015 Coveros, Inc. All rights reserved.  Coveros helps organizations accelerate the delivery of business value through secure, reliable software About Coveros
  • 3. 3© Copyright 2015 Coveros, Inc. All rights reserved. Why Disposable Test Environments?  Destructive testing  Known baseline  Available on-demand  Not shared  No vested interest in keeping them long-term  Always up-to-date
  • 4. 4© Copyright 2015 Coveros, Inc. All rights reserved. Tools Involved  VirtualBox – virtualization software  Vagrant – virtualization automation  Puppet – configuration management and automation – Chef, Ansible, or SaltStack would work equally well  Packer – machine image automation
  • 5. 5© Copyright 2015 Coveros, Inc. All rights reserved. VirtualBox
  • 6. 6© Copyright 2015 Coveros, Inc. All rights reserved. Oracle VM VirtualBox  Virtualization software from Oracle  Free  Runs on Windows, Mac, Linux  Runs as an application  Allows us to use local VMs  Easy to install  Works well with Vagrant https://www.virtualbox.org/
  • 7. 7© Copyright 2015 Coveros, Inc. All rights reserved. Vagrant
  • 8. 8© Copyright 2015 Coveros, Inc. All rights reserved. Vagrant  Virtualization workflow software from HashiCorp  Free, open-source  Runs on Windows, Mac, Linux  Easy to install  Works well with Puppet, Chef, Shell – many other provisioners  Works well with VirtualBox, VMware, Amazon Web Services – many other providers https://www.vagrantup.com/
  • 9. 9© Copyright 2015 Coveros, Inc. All rights reserved. Creating a Vagrant Box  To create a VM: – mkdir starcanada‐vagrant – cd starcanada‐vagrant – vagrant box add hashicorp/precise64 – vagrant init hashicorp/precise64 – vagrant up  vagrant box add – downloads a “base box” – boxes at https://atlas.hashicorp.com/search  vagrant init – builds a Vagrantfile with the base box  vagrant up – starts the VM
  • 10. 10© Copyright 2015 Coveros, Inc. All rights reserved. Vagrantfile  Vagrantfile – lots of comments by default – stock Vagrantfile without comments is: Vagrant.configure(2) do |config| config.vm.box = "hashicorp/precise64" end
  • 11. 11© Copyright 2015 Coveros, Inc. All rights reserved. vagrant up  vagrant up – imports the base box to VirtualBox – makes sure the base box is up to date – sets a unique name for the VM – sets up networking (just NAT by default) – sets up port forwarding (just SSH by default) – boots VM – replaces known, insecure SSH key with a new random key – makes sure VirtualBox Guest Additions are installed – mounts shared folders (/vagrant by default on the VM) – provisions software (nothing by default)
  • 12. 12© Copyright 2015 Coveros, Inc. All rights reserved. Access Vagrant Box  To access a VM: – vagrant ssh  vagrant ssh – connects to the VM via the forwarded SSH port  requires an SSH client installed – Git (https://msysgit.github.io/) – openssh on Cygwin (http://www.cygwin.com/) – PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/)  requires converting the key format
  • 13. 13© Copyright 2015 Coveros, Inc. All rights reserved. Rebuild Vagrant Box  To rebuild a VM: – vagrant destroy – vagrant up  vagrant destroy – deletes a VM  vagrant up – starts the VM
  • 14. 14© Copyright 2015 Coveros, Inc. All rights reserved. Puppet
  • 15. 15© Copyright 2015 Coveros, Inc. All rights reserved. Puppet  Configuration management software from PuppetLabs  Vaguely Ruby-based, domain-specific language  Free, open-source  Runs on Windows, Mac, Linux  Easy to install  Works well with Vagrant  Similar to Chef, Ansible, SaltStack https://puppetlabs.com/
  • 16. 16© Copyright 2015 Coveros, Inc. All rights reserved. Install Apache with Puppet  Modify the Vagrantfile: Vagrant.configure(2) do |config| config.vm.box = "hashicorp/precise64" config.vm.network "private_network", ip: "192.168.33.10" config.puppet_install.puppet_version = '3.8.1' config.vm.provision "shell", inline: <<‐SHELL sudo puppet module install puppetlabs‐apache SHELL config.vm.provision "puppet" do |puppet| puppet.manifests_path = "manifests" puppet.manifest_file = "site.pp" puppet.module_path = "modules" end end
  • 17. 17© Copyright 2015 Coveros, Inc. All rights reserved. Vagrant Networking  config.vm.network "private_network", ip: "192.168.33.10" – sets up a new network interface on the box – private_network = host-only  only this box and other VMs on this box can reach it
  • 18. 18© Copyright 2015 Coveros, Inc. All rights reserved. Vagrant Modules  config.puppet_install.puppet_version = '3.8.1' – Vagrant module from https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins – vagrant‐puppet‐install  installs Puppet version 3.8.1  could have been :latest, but I want control
  • 19. 19© Copyright 2015 Coveros, Inc. All rights reserved. Shell Provisioning  config.vm.provision "shell", inline: <<‐SHELL sudo puppet module install puppetlabs‐apache SHELL – here-doc that runs all the commands until SHELL – this command installs a Puppet module from https://forge.puppetlabs.com/puppetlabs
  • 20. 20© Copyright 2015 Coveros, Inc. All rights reserved. Puppet Provisioning  config.vm.provision "puppet" do |puppet| puppet.manifests_path = "manifests" puppet.manifest_file = "site.pp" puppet.module_path = "modules" end – sets up a standard Puppet layout – commands in manifests/site.pp – reusable modules in modules
  • 21. 21© Copyright 2015 Coveros, Inc. All rights reserved. Example Puppet Code  Example init.pp file in the modules/website/manifests directory: class website { class { 'apache': } apache::vhost { "${::fqdn}": vhost_name => '*', default_vhost => true, port          => '80', docroot => '/var/www', } file { '/var/www/index.html': ensure  => 'file', content => template('website/index.html.erb'), owner   => 'root', group   => 'www‐data', mode    => '0640', require => Class['apache'], } }
  • 22. 22© Copyright 2015 Coveros, Inc. All rights reserved. Installing Apache httpd  class { 'apache:' }  – installs Apache httpd server – sets up default configuration
  • 23. 23© Copyright 2015 Coveros, Inc. All rights reserved. Configuring Apache httpd  apache::vhost { "${::fqdn}": vhost_name => '*', default_vhost => true, port          => '80', docroot => '/var/www', } – sets up default virtual host – listening on port 80 – document root is /var/www
  • 24. 24© Copyright 2015 Coveros, Inc. All rights reserved. Installing Templated Content  file { '/var/www/index.html': ensure  => 'file', content => template('website/index.html.erb'), owner   => 'root', group   => 'www‐data', mode    => '0640', require => Class['apache'], } – copies file from host box – sets owner, group, and permissions
  • 25. 25© Copyright 2015 Coveros, Inc. All rights reserved. Automation Advantages  Deploy is now automated  Automated = repeatable, easy, quick  Test on the system, make any changes we want, then destroy it, recreate it in a pristine condition  Reuse the deployment scripts in all environments – including production – especially production
  • 26. 26© Copyright 2015 Coveros, Inc. All rights reserved. Other Possibilities  Template files  Variable substitution/Configuration database – YAML – JSON – Encrypted  Multiple machines  Different providers – Managed – VMware – Amazon Web Services (AWS)  Chef, Ansible, or SaltStack
  • 27. 27© Copyright 2015 Coveros, Inc. All rights reserved. Packer
  • 28. 28© Copyright 2015 Coveros, Inc. All rights reserved. Packer  Machine image automation from HashiCorp  Free, open-source  Runs on Windows, Mac, Linux  Easy to install  Works well with Puppet, Chef, Shell – many other provisioners  Works well with VirtualBox, VMware, Amazon Web Services – many other providers https://packer.io/
  • 29. 29© Copyright 2015 Coveros, Inc. All rights reserved. Packer Templates  Packer templates on GitHub from Shiguredo, Inc.  Templates for – CentOS Linux 6.4, 6.5, 6.6, 7.0, 7.1 – Scientific Linux 6.4, 6.5, 7.0 – Ubuntu Linux 12.04, 14.04  Fork and edit to create you own base boxes https://github.com/shiguredo/packer-templates
  • 30. 30© Copyright 2015 Coveros, Inc. All rights reserved. Wrap-Up
  • 31. 31© Copyright 2015 Coveros, Inc. All rights reserved. Tools Recap  VirtualBox – virtualization software – https://www.virtualbox.org/  Vagrant – virtualization automation – https://www.vagrantup.com/ – Boxes: https://atlas.hashicorp.com/search – Plugins: https://github.com/mitchellh/vagrant/wiki/Available- Vagrant-Plugins
  • 32. 32© Copyright 2015 Coveros, Inc. All rights reserved. Tools Recap  Puppet – configuration management and automation – https://puppetlabs.com/ – Modules: https://forge.puppetlabs.com/puppetlabs  Packer – machine image automation – https://packer.io/ – Templates: https://github.com/shiguredo/packer- templates
  • 33. 33© Copyright 2015 Coveros, Inc. All rights reserved. Questions? Gene Gotimer gene.gotimer@coveros.com http://www.coveros.com @CoverosGene