Lucas Arruda
lucas@ciandt.com
Virtualization and
Provisioning with
Vagrant and Puppet

Lucas Arruda
lucas@ciandt.com
Lucas Arruda
Based on Campinas-SP
DevOps @ CI&T
Open-Source enthusiast
~10 yrs on the road
Zend Certified Engineer PHP 5.3
Common
Scenario
●
Each developer has its own
predefined stack of
technologies.

Apache (native)

●

WAMP/XAMPP/MAMP

●

PHP 5.??

●

MySQL 5.?? MariaDB ?

●

Modules/Extensions

●

Libraries & Dependencies

●

PEAR/PECL/Composer

●

Frameworks

●

Tweaks, etc...
"If you've ever maintained a
large web application, one of
the hardest parts is onboarding
new resources."

"Running everything on a home
machine and remembering to
turn it all off in the end of the
day is unfeasible."

Software installation

●
"A new members comes in?
Oh... all it again. What!? Does he
uses Windows XP!? oh my..."

●

Config and tweaking

●

Platform-related issues

●

Time consuming op.
BUT IT
WORKS
ON MY
MACHINE...
It's important to build
and maintain a
software using the
same requirements on
all environments it will
be deployed.
Change
Proposal
Vagrant up!

Create and
configure
lightweight,
reproducible
and portable
development
environments.
Virtualization
Boxes
Vagrantfile
Puppet

You can easily
automate
repetitive tasks,
quickly deploy
critical
applications, and
proactively
manage changes.
Manifests
Declarative Language
Serverless
LET'S PUT
SOME
HANDS
ON!
HMMM...
THIS IS
NICE,
HUH!?
How Vagrant works
Plug-ins
Bindler
Cachier
Host Manager
AWS / OpenStack / RackSpace
CopyMyConf
Nugrant
Rsync
Windows
Node / NodeMaster / Shell Commander
VBGuest
How Puppet works
Puppet's Reusable Configuration Model
PuPHPet

ciandt.com
CAN'T WAIT
TO PUT
MY HANDS
ON IT!
Alternatives
rove.io
Debian-based distributions:

$ dpkg --get-selections > /backup/installed-software.log

# dpkg --set-selections < /backup/installed-software.log && dselect

RPM-based distributions:

$ rpm -qa > /backup/installed-software.log

# yum -y install $(cat /backup/installed-software.log)
Q&A
vagrantup.com
github.com/mitchellh/vagrant

puppetlabs.com
github.com/puppetlabs

vagrantbox.es

forge.puppetlabs.com

docs.vagrantup.com

docs.puppetlabs.com

ciandt.com
THANKS
FOR
BEING
HERE!
lunascar@gmail.com
@lunascarruda
google.com/+LucasArruda
fb.com/lucasnarruda
linkedin.com/in/larruda
github.com/larruda
coderbits.com/larruda

ciandt.com

PHP Conference Brasil 2013 - Virtualização e Provisionamento de Ambientes com Vagrant e Puppet