Slide 1

Slide 1 text

automate your dev environment chef + vagrant

Slide 2

Slide 2 text

Me

Slide 3

Slide 3 text

• CTO at Cult of Bits • 10+ years of professional Java development Me

Slide 4

Slide 4 text

What are we going to talk about?

Slide 5

Slide 5 text

What? Stop installing things by hand

Slide 6

Slide 6 text

Why?

Slide 7

Slide 7 text

Why? Because it’s Boring

Slide 8

Slide 8 text

Why? Because you will make mistakes

Slide 9

Slide 9 text

Why? Ultimately, because it’s something that your computer can do better and cheaper.

Slide 10

Slide 10 text

Chef

Slide 11

Slide 11 text

Chef Chef is an automation platform that transforms infrastructure into code. source: http://www.opscode.com/chef/

Slide 12

Slide 12 text

Chef variants

Slide 13

Slide 13 text

Chef variants Chef Server

Slide 14

Slide 14 text

Chef variants Chef Server Use it to manage many computers

Slide 15

Slide 15 text

Chef variants Chef Solo chef-solo is an open source version of the chef-client that allows using cookbooks with nodes without requiring access to a server.

Slide 16

Slide 16 text

(some) Chef concepts

Slide 17

Slide 17 text

Chef concepts Node A node is any physical, virtual, or cloud machine that is configured to be maintained by a chef-client.

Slide 18

Slide 18 text

Chef concepts Role A role is a way to define certain patterns and processes that exist across nodes in an organization as belonging to a single job function.

Slide 19

Slide 19 text

Chef concepts Cookbook A cookbook is the fundamental unit of configuration and policy distribution. Each cookbook defines a scenario, such as everything needed to install and configure MySQL, and then it contains all of the components that are required to support that scenario

Slide 20

Slide 20 text

What else are we going to talk about?

Slide 21

Slide 21 text

What? Get rid of the “it works on my machine” issues

Slide 22

Slide 22 text

Why?

Slide 23

Slide 23 text

Why? Because it’s a waste of time

Slide 24

Slide 24 text

Why? Because it reflects poorly on you

Slide 25

Slide 25 text

Vagrant

Slide 26

Slide 26 text

Vagrant Vagrant is a tool for building complete development environments. Vagrant lowers development environment setup time, increases development/production parity, and makes the "works on my machine" excuse a relic of the past. source: http://www.vagrantup.com/

Slide 27

Slide 27 text

Vagrant concepts

Slide 28

Slide 28 text

Vagrant concepts Providers Enable Vagrant to work with different backends: VirtualBox (the default), VMware Fusion (paid), AWS, Rackspace, Digital Ocean, etc…

Slide 29

Slide 29 text

Vagrant concepts Boxes Boxes are the skeleton from which Vagrant machines are constructed. They are portable files which can be used by others on any platform that runs Vagrant to bring up a working environment. ! Boxes are provider specific.

Slide 30

Slide 30 text

Vagrant concepts Vagrantfile The primary function of the Vagrantfile is to describe the type of machine required for a project, and how to configure and provision these machines. ! Commit them to version control.

Slide 31

Slide 31 text

DEMO TIME available at: https://vimeo.com/77776149

Slide 32

Slide 32 text

References

Slide 33

Slide 33 text

The Chef Homepage http://www.opscode.com/chef/ The Vagrant Homepage http://www.vagrantup.com/ A big list of available Vagrant boxes http://www.vagrantbox.es/ References

Slide 34

Slide 34 text

Thank you! @jnelas [email protected]