Vagrant/Packer for Continuous Delivery of Application Infrastructure
Vagrant and Packer Session
[] Todo - Ask Ross to link his presentation here [] Todo - Ask Ross to link his sample code
Ross Niemi presenting
Two people in the room had used Vagrant. None had used Packer
? How does it compare it Veewee, written by Patrick Debois
Presentation includes links to playground boxes.
Ross jumped into demo mode.
- Brought up vagrant docs
- Install virtual box first
- Showed us a vagrant file
? List available options for puppet - see vagrant docs - Puppet Apply and Puppet Agent
Pass through any legal Puppet command
? Do they require any special syntax? See docs
? Can I use my existing virtual machine
You can
Ross “At a point where provisioning tools should be treated as a commodity.”
- I should be able to switch my underlying technology without changing my provisioning tool
Automated tests for the provisioning code
Nobody in the room was writing automated tests for their provisioning code Julian commented that he has tried and failed many times
Ross showed an example of the test for his puppet script
? Does the TDD code in chef or puppet feel more like duplication than it would in Java, for example?
Ross says the Unit testing does feel a bit duplicative - but it at least offers some protection like double-entry book keeping does for accountants.
Unit testing validates that the configuration values match the test (i.e. assert that "rm -rf" is defined - instantaneous feedback) Integration/System validates the final outcome of the setting a configuration is as expected (i.e. rm -rf actually removes a file/directory from disk - feedback is delayed by the length of time it takes to execute the command and all preceding commands).
Ross says you should do both types of testing - Unit and Integration/System.
Segue into Packer ——
Bento open source project highly recommended.
Packer is still evolving
Ross recommends IRC channels for questions
Interesting testing tools - cucumber and server spec
The Master Plan
See Ross’s presentation
All these tools together allow for cross-pollination amongst the groups in the organization
Ross differentiated OS, Infrastructure, and Application layers. (See presentation)
Ross presented his master plan. (See presentation)