Slide 1

Slide 1 text

HashiCorp Tools for the Windows Ecosystem @hibri Consultant at @ContinoHQ

Slide 2

Slide 2 text

The Developer Machine @hibri WinOps October 2016

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

How is this solved ? • Golden images. • Not refreshed regularly • Designed by committee • Doesn’t fit individual needs • Requires someone spending a day or two to build. • Every developer has special needs. • Self built • Not repeatable • Time wasted, less productive @hibri WinOps October 2016

Slide 5

Slide 5 text

Packer @hibri WinOps October 2016

Slide 6

Slide 6 text

What does Packer look like? @hibri WinOps October 2016

Slide 7

Slide 7 text

• Download Packer from https://www.packer.io/ • Clone https://github.com/joefitzgerald/packer- windows • packer build windows_10.json @hibri WinOps October 2016

Slide 8

Slide 8 text

Provisioning with Packer @hibri WinOps October 2016

Slide 9

Slide 9 text

Packer does cloud too.. @hibri WinOps October 2016

Slide 10

Slide 10 text

@hibri WinOps October 2016

Slide 11

Slide 11 text

Why Vagrant • Create lightweight (Windows weight ? ) environments • Repeatable • Share it • Trash it • Gateway to thinking about infrastructure as code @hibri WinOps October 2016

Slide 12

Slide 12 text

vagrant up @hibri WinOps October 2016

Slide 13

Slide 13 text

Provisioning with Vagrant @hibri WinOps October 2016

Slide 14

Slide 14 text

Provisioning with Puppet and Chocolatey @hibri WinOps October 2016

Slide 15

Slide 15 text

Do’s and Don’ts • Do script Vagrant with config management scripts • Do have a Vagrant file per project • Do use the same config management scripts as used for production services. • Avoid provisioning heavyweight apps ( Visual Studio, SQL server) . Use Packer to build these instead. • Encourage reuse within your organisation. • Also see Boxen (https://github.com/boxen) and Boxstarter (http://boxstarter.org/) @hibri WinOps October 2016

Slide 16

Slide 16 text

Terraform @hibri WinOps October 2016

Slide 17

Slide 17 text

Why do I useTerraform ? • Tool for building, changing and versioning infrastructure. • Manages dependencies between infrastructure components. • Share your infrastructure code. • Use the same declarative language between different providers. @hibri WinOps October 2016

Slide 18

Slide 18 text

With Powershell @hibri WinOps October 2016

Slide 19

Slide 19 text

With Terraform @hibri WinOps October 2016

Slide 20

Slide 20 text

@hibri WinOps October 2016

Slide 21

Slide 21 text

Resources @hibri WinOps October 2016

Slide 22

Slide 22 text

Resources and Modules @hibri WinOps October 2016

Slide 23

Slide 23 text

Resources and Modules @hibri WinOps October 2016

Slide 24

Slide 24 text

Do’s and Dont’s • Do use CI pipeline to apply changes from the beginning of a project. • Don’t use Terraform to provision applications. Use appropriate tooling for it. Puppet, Chef etc. • Do use Terraform to provision the infrastructure so that other provisioners can run. @hibri WinOps October 2016

Slide 25

Slide 25 text

Summary • Packer to build Vagrant boxes for virtualisation and cloud images. • Vagrant to spin up and share development environment setups. • Terraform to simplify creating infrastructure and to version. • All of these tools are automation friendly. • Add automation tactically @hibri WinOps October 2016

Slide 26

Slide 26 text

Links • Packer for Windows https://github.com/ joefitzgerald/packer-windows • Packer for Windows 2016 and Windows Containers https://github.com/StefanScherer/packer-windows • Terraform Azure Provider https://www.terraform.io/ docs/providers/azurerm/index.html @hibri WinOps October 2016

Slide 27

Slide 27 text

Fin Questions ? [email protected] twitter @hibri http://www.hibri.net @hibri WinOps October 2016