SlideShare a Scribd company logo
1 of 59
Download to read offline
Development 
with Ansible & VMs
Development with Ansible & VMs 
OUTLINE 
1. BETTER DEV 
2. ENVIRONMENT TOOLS 
3. CONFIG TOOLS 
4. WRAP-UP
Development with Ansible & VMs 
1. BETTER DEV 
2. ENVIRONMENT TOOLS 
3. CONFIG TOOLS 
4. WRAP-UP
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated 
• Production-like
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated 
• Production-like 
• Your tools
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated 
• Production-like 
• Your tools 
• Shareable
Development with Ansible & VMs 
1. BETTER DEV 
2. ENVIRONMENT TOOLS 
3. CONFIG TOOLS 
4. WRAP-UP
Development with Ansible & VMs 
PIP 
• Installs Python packages
Development with Ansible & VMs 
PIP 
• Installs Python packages 
• Keep using it!
Development with Ansible & VMs 
VIRTUALENV 
• Isolates Python packages
Development with Ansible & VMs 
VIRTUALENV 
• Isolates Python packages 
• Doesn’t go far enough…
Development with Ansible & VMs 
VM 
• Isolates entire box
Development with Ansible & VMs 
VM 
• Isolates entire box 
• Python packages
Development with Ansible & VMs 
VM 
• Isolates entire box 
• Python packages 
• System packages
Development with Ansible & VMs 
VM 
• Isolates entire box 
• Python packages 
• System packages 
• Production-like
Development with Ansible & VMs 
VM SETUP
Development with Ansible & VMs 
VM SETUP 
$ vagrant init hashicorp/precise64! 
$ vagrant up! 
$ vagrant ssh
Development with Ansible & VMs 
VM SETUP 
Vagrant::configure("2") do |config|! 
config.vm.box = "hashicorp/precise64"! 
config.vm.hostname = "chewse"! 
config.vm.network "private_network", ip: "10.0.0.100"! 
! 
config.vm.provision "ansible" do |ansible|! 
ansible.playbook = "ansible/chewse.yml"! 
end! 
end!
Development with Ansible & VMs 
VM SETUP 
Vagrant::configure("2") do |config|! 
config.vm.box = "hashicorp/precise64"! 
config.vm.hostname = "chewse"! 
config.vm.network "private_network", ip: "10.0.0.100"! 
! 
config.vm.provision "ansible" do |ansible|! 
ansible.playbook = "ansible/chewse.yml"! 
end! 
end!
Development with Ansible & VMs 
VM SETUP 
Vagrant::configure("2") do |config|! 
config.vm.box = "hashicorp/precise64"! 
config.vm.hostname = "chewse"! 
config.vm.network "private_network", ip: "10.0.0.100"! 
! 
config.vm.provision "ansible" do |ansible|! 
ansible.playbook = "ansible/chewse.yml"! 
end! 
end!
Development with Ansible & VMs 
VM SETUP 
Vagrant::configure("2") do |config|! 
config.vm.box = "hashicorp/precise64"! 
config.vm.hostname = "chewse"! 
config.vm.network "private_network", ip: "10.0.0.100"! 
! 
config.vm.provision "ansible" do |ansible|! 
ansible.playbook = "ansible/chewse.yml"! 
end! 
end!
Development with Ansible & VMs 
VM SETUP 
Vagrant::configure("2") do |config|! 
config.vm.box = "hashicorp/precise64"! 
config.vm.hostname = "chewse"! 
config.vm.network "private_network", ip: "10.0.0.100"! 
! 
config.vm.provision "ansible" do |ansible|! 
ansible.playbook = "ansible/chewse.yml"! 
end! 
end!
Development with Ansible & VMs 
1. BETTER DEV 
2. ENVIRONMENT TOOLS 
3. CONFIG TOOLS 
4. WRAP-UP
Development with Ansible & VMs 
CONFIGURATION 
• Defines system setup
Development with Ansible & VMs 
CONFIGURATION 
• Defines system setup 
• Written in code
Development with Ansible & VMs 
CONFIGURATION 
• Defines system setup 
• Written in code 
• Documented and versioned
Development with Ansible & VMs 
CONFIGURATION 
• Defines system setup 
• Written in code 
• Documented and versioned 
• Shareable
Development with Ansible & VMs 
CONFIGURATION SETUP 
bash
Development with Ansible & VMs 
CONFIGURATION SETUP 
bash
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: standard python system packages! 
apt: pkg={{ item }} state=installed! 
with_items:! 
- python! 
- python-dev! 
- python-pip! 
- libxml2-dev! 
- libxslt1-dev! 
sudo: yes! 
! 
- name: bootstrap pip and virtualenv! 
pip: name={{ item.name }} version={{ item.version }}! 
with_items:! 
- { name: pip, version: 1.4.1 }! 
- { name: virtualenv, version: 1.10.1 }! 
sudo: yes! 
! 
- name: install requirements.txt! 
pip: requirements=/vagrant/requirements.txt virtualenv=/var/venv! 
sudo: yes! 
! 
- name: source virtualenv in .bashrc! 
lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! 
with_items:! 
- source /var/venv/bin/activate! 
- cd /vagrant/chewse!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: standard python system packages! 
...! 
! 
- name: bootstrap pip and virtualenv! 
...! 
! 
- name: install requirements.txt! 
...! 
! 
- name: source virtualenv in .bashrc! 
...
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: standard python system packages! 
apt: pkg={{ item }} state=installed! 
with_items:! 
- python! 
- python-dev! 
- python-pip! 
- libxml2-dev! 
- libxslt1-dev! 
sudo: yes
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: standard python system packages! 
apt: pkg={{ item }} state=installed! 
with_items:! 
- python! 
- python-dev! 
- python-pip! 
- libxml2-dev! 
- libxslt1-dev! 
sudo: yes
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: standard python system packages! 
apt: pkg={{ item }} state=installed! 
with_items:! 
- python! 
- python-dev! 
- python-pip! 
- libxml2-dev! 
- libxslt1-dev! 
sudo: yes
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: standard python system packages! 
apt: pkg={{ item }} state=installed! 
with_items:! 
- python! 
- python-dev! 
- python-pip! 
- libxml2-dev! 
- libxslt1-dev! 
sudo: yes
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: bootstrap pip and virtualenv! 
pip: name={{ item.name }} version={{ item.version }}! 
with_items:! 
- { name: pip, version: 1.4.1 }! 
- { name: virtualenv, version: 1.10.1 }! 
sudo: yes!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: bootstrap pip and virtualenv! 
pip: name={{ item.name }} version={{ item.version }}! 
with_items:! 
- { name: pip, version: 1.4.1 }! 
- { name: virtualenv, version: 1.10.1 }! 
sudo: yes!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: bootstrap pip and virtualenv! 
pip: name={{ item.name }} version={{ item.version }}! 
with_items:! 
- { name: pip, version: 1.4.1 }! 
- { name: virtualenv, version: 1.10.1 }! 
sudo: yes!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: install requirements.txt! 
pip: requirements=/vagrant/requirements.txt ! 
virtualenv=/var/venv! 
sudo: yes!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: install requirements.txt! 
pip: requirements=/vagrant/requirements.txt ! 
virtualenv=/var/venv! 
sudo: yes!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: source virtualenv in .bashrc! 
lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! 
with_items:! 
- source /var/venv/bin/activate! 
- cd /vagrant/chewse!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: source virtualenv in .bashrc! 
lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! 
with_items:! 
- source /var/venv/bin/activate! 
- cd /vagrant/chewse!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: source virtualenv in .bashrc! 
lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! 
with_items:! 
- source /var/venv/bin/activate! 
- cd /vagrant/chewse!
Development with Ansible & VMs 
CONFIGURATION SETUP 
- name: standard python system packages! 
apt: pkg={{ item }} state=installed! 
with_items:! 
- python! 
- python-dev! 
- python-pip! 
- libxml2-dev! 
- libxslt1-dev! 
sudo: yes! 
! 
- name: bootstrap pip and virtualenv! 
pip: name={{ item.name }} version={{ item.version }}! 
with_items:! 
- { name: pip, version: 1.4.1 }! 
- { name: virtualenv, version: 1.10.1 }! 
sudo: yes! 
! 
- name: install requirements.txt! 
pip: requirements=/vagrant/requirements.txt virtualenv=/var/venv! 
sudo: yes! 
! 
- name: source virtualenv in .bashrc! 
lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! 
with_items:! 
- source /var/venv/bin/activate! 
- cd /vagrant/chewse!
Development with Ansible & VMs 
1. BETTER DEV 
2. ENVIRONMENT TOOLS 
3. CONFIG TOOLS 
4. WRAP-UP
Development with Ansible & VMs 
OUR INSTALL 
• Install VirtualBox and Vagrant
Development with Ansible & VMs 
OUR INSTALL 
• Install VirtualBox and Vagrant 
• Git clone chewse
Development with Ansible & VMs 
OUR INSTALL 
• Install VirtualBox and Vagrant 
• Git clone chewse 
• Vagrant up
Development with Ansible & VMs 
OUR INSTALL 
• Install VirtualBox and Vagrant 
• Git clone chewse 
• Vagrant up 
• Dev nirvana
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated 
• Production-like
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated 
• Production-like 
• Your tools
Development with Ansible & VMs 
DEV WISH LIST 
• Standardized 
• Repeatable 
• Isolated 
• Production-like 
• Your tools 
• Shareable
Development with Ansible & VMs 
Jeff Schenck CTO & Co-Founder 
twitter: @jeffschenck 
! 
www.chewse.com

More Related Content

What's hot

Rackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & PackerRackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & Packer
Marc Cluet
 

What's hot (20)

Ansible and AWS
Ansible and AWSAnsible and AWS
Ansible and AWS
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
 
Migrating to a bazel based CI system: 6 learnings
Migrating to a bazel based CI system: 6 learnings Migrating to a bazel based CI system: 6 learnings
Migrating to a bazel based CI system: 6 learnings
 
Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)Fabric workshop(1) - (MOSG)
Fabric workshop(1) - (MOSG)
 
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
 
Docker puppetcamp london 2013
Docker puppetcamp london 2013Docker puppetcamp london 2013
Docker puppetcamp london 2013
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet tree
 
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and AnsibleLocal Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
Local Dev on Virtual Machines - Vagrant, VirtualBox and Ansible
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)
 
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...
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
 
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
Workshop: Know Before You Push 'Go': Using the Beaker Acceptance Test Framewo...
 
Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2Testing your-automation-code (vagrant version) v0.2
Testing your-automation-code (vagrant version) v0.2
 
Rackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & PackerRackspace Hack Night - Vagrant & Packer
Rackspace Hack Night - Vagrant & Packer
 
Vagrant and CentOS 7
Vagrant and CentOS 7Vagrant and CentOS 7
Vagrant and CentOS 7
 
Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點Ansible 實戰:top down 觀點
Ansible 實戰:top down 觀點
 
Vagrant to-aws-flow
Vagrant to-aws-flowVagrant to-aws-flow
Vagrant to-aws-flow
 
Towards Continuous Deployment with Django
Towards Continuous Deployment with DjangoTowards Continuous Deployment with Django
Towards Continuous Deployment with Django
 
Deploying on the cutting edge
Deploying on the cutting edgeDeploying on the cutting edge
Deploying on the cutting edge
 

Similar to Development with Ansible & VMs

Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
Andreas Heim
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012
Carlos Sanchez
 
Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13
Rafael Dohms
 
5 minute intro to virtualenv
5 minute intro to virtualenv5 minute intro to virtualenv
5 minute intro to virtualenv
amenasse
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
Carlos Sanchez
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
Carlos Sanchez
 

Similar to Development with Ansible & VMs (20)

Virtualenv
VirtualenvVirtualenv
Virtualenv
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012
 
Composer: putting dependencies on the score
Composer: putting dependencies on the scoreComposer: putting dependencies on the score
Composer: putting dependencies on the score
 
DevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and WebminDevOps tools for everyone - Vagrant, Puppet and Webmin
DevOps tools for everyone - Vagrant, Puppet and Webmin
 
Vagrant
VagrantVagrant
Vagrant
 
Vagrant introduction for Developers
Vagrant introduction for DevelopersVagrant introduction for Developers
Vagrant introduction for Developers
 
Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13
 
5 minute intro to virtualenv
5 minute intro to virtualenv5 minute intro to virtualenv
5 minute intro to virtualenv
 
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
 
May The Nodejs Be With You
May The Nodejs Be With YouMay The Nodejs Be With You
May The Nodejs Be With You
 
Arbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenvArbeiten mit distribute, pip und virtualenv
Arbeiten mit distribute, pip und virtualenv
 
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceHosting Your Own OTA Update Service
Hosting Your Own OTA Update Service
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
 
Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & docker
 
Testing all your code through HipChat in Docker
Testing all your code through HipChat in DockerTesting all your code through HipChat in Docker
Testing all your code through HipChat in Docker
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction
 
From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012From Dev to DevOps - Codemotion ES 2012
From Dev to DevOps - Codemotion ES 2012
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
 

Recently uploaded

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Recently uploaded (20)

data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 

Development with Ansible & VMs

  • 2. Development with Ansible & VMs OUTLINE 1. BETTER DEV 2. ENVIRONMENT TOOLS 3. CONFIG TOOLS 4. WRAP-UP
  • 3. Development with Ansible & VMs 1. BETTER DEV 2. ENVIRONMENT TOOLS 3. CONFIG TOOLS 4. WRAP-UP
  • 4. Development with Ansible & VMs DEV WISH LIST • Standardized
  • 5. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable
  • 6. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated
  • 7. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated • Production-like
  • 8. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated • Production-like • Your tools
  • 9. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated • Production-like • Your tools • Shareable
  • 10. Development with Ansible & VMs 1. BETTER DEV 2. ENVIRONMENT TOOLS 3. CONFIG TOOLS 4. WRAP-UP
  • 11. Development with Ansible & VMs PIP • Installs Python packages
  • 12. Development with Ansible & VMs PIP • Installs Python packages • Keep using it!
  • 13. Development with Ansible & VMs VIRTUALENV • Isolates Python packages
  • 14. Development with Ansible & VMs VIRTUALENV • Isolates Python packages • Doesn’t go far enough…
  • 15. Development with Ansible & VMs VM • Isolates entire box
  • 16. Development with Ansible & VMs VM • Isolates entire box • Python packages
  • 17. Development with Ansible & VMs VM • Isolates entire box • Python packages • System packages
  • 18. Development with Ansible & VMs VM • Isolates entire box • Python packages • System packages • Production-like
  • 19. Development with Ansible & VMs VM SETUP
  • 20. Development with Ansible & VMs VM SETUP $ vagrant init hashicorp/precise64! $ vagrant up! $ vagrant ssh
  • 21. Development with Ansible & VMs VM SETUP Vagrant::configure("2") do |config|! config.vm.box = "hashicorp/precise64"! config.vm.hostname = "chewse"! config.vm.network "private_network", ip: "10.0.0.100"! ! config.vm.provision "ansible" do |ansible|! ansible.playbook = "ansible/chewse.yml"! end! end!
  • 22. Development with Ansible & VMs VM SETUP Vagrant::configure("2") do |config|! config.vm.box = "hashicorp/precise64"! config.vm.hostname = "chewse"! config.vm.network "private_network", ip: "10.0.0.100"! ! config.vm.provision "ansible" do |ansible|! ansible.playbook = "ansible/chewse.yml"! end! end!
  • 23. Development with Ansible & VMs VM SETUP Vagrant::configure("2") do |config|! config.vm.box = "hashicorp/precise64"! config.vm.hostname = "chewse"! config.vm.network "private_network", ip: "10.0.0.100"! ! config.vm.provision "ansible" do |ansible|! ansible.playbook = "ansible/chewse.yml"! end! end!
  • 24. Development with Ansible & VMs VM SETUP Vagrant::configure("2") do |config|! config.vm.box = "hashicorp/precise64"! config.vm.hostname = "chewse"! config.vm.network "private_network", ip: "10.0.0.100"! ! config.vm.provision "ansible" do |ansible|! ansible.playbook = "ansible/chewse.yml"! end! end!
  • 25. Development with Ansible & VMs VM SETUP Vagrant::configure("2") do |config|! config.vm.box = "hashicorp/precise64"! config.vm.hostname = "chewse"! config.vm.network "private_network", ip: "10.0.0.100"! ! config.vm.provision "ansible" do |ansible|! ansible.playbook = "ansible/chewse.yml"! end! end!
  • 26. Development with Ansible & VMs 1. BETTER DEV 2. ENVIRONMENT TOOLS 3. CONFIG TOOLS 4. WRAP-UP
  • 27. Development with Ansible & VMs CONFIGURATION • Defines system setup
  • 28. Development with Ansible & VMs CONFIGURATION • Defines system setup • Written in code
  • 29. Development with Ansible & VMs CONFIGURATION • Defines system setup • Written in code • Documented and versioned
  • 30. Development with Ansible & VMs CONFIGURATION • Defines system setup • Written in code • Documented and versioned • Shareable
  • 31. Development with Ansible & VMs CONFIGURATION SETUP bash
  • 32. Development with Ansible & VMs CONFIGURATION SETUP bash
  • 33. Development with Ansible & VMs CONFIGURATION SETUP - name: standard python system packages! apt: pkg={{ item }} state=installed! with_items:! - python! - python-dev! - python-pip! - libxml2-dev! - libxslt1-dev! sudo: yes! ! - name: bootstrap pip and virtualenv! pip: name={{ item.name }} version={{ item.version }}! with_items:! - { name: pip, version: 1.4.1 }! - { name: virtualenv, version: 1.10.1 }! sudo: yes! ! - name: install requirements.txt! pip: requirements=/vagrant/requirements.txt virtualenv=/var/venv! sudo: yes! ! - name: source virtualenv in .bashrc! lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! with_items:! - source /var/venv/bin/activate! - cd /vagrant/chewse!
  • 34. Development with Ansible & VMs CONFIGURATION SETUP - name: standard python system packages! ...! ! - name: bootstrap pip and virtualenv! ...! ! - name: install requirements.txt! ...! ! - name: source virtualenv in .bashrc! ...
  • 35. Development with Ansible & VMs CONFIGURATION SETUP - name: standard python system packages! apt: pkg={{ item }} state=installed! with_items:! - python! - python-dev! - python-pip! - libxml2-dev! - libxslt1-dev! sudo: yes
  • 36. Development with Ansible & VMs CONFIGURATION SETUP - name: standard python system packages! apt: pkg={{ item }} state=installed! with_items:! - python! - python-dev! - python-pip! - libxml2-dev! - libxslt1-dev! sudo: yes
  • 37. Development with Ansible & VMs CONFIGURATION SETUP - name: standard python system packages! apt: pkg={{ item }} state=installed! with_items:! - python! - python-dev! - python-pip! - libxml2-dev! - libxslt1-dev! sudo: yes
  • 38. Development with Ansible & VMs CONFIGURATION SETUP - name: standard python system packages! apt: pkg={{ item }} state=installed! with_items:! - python! - python-dev! - python-pip! - libxml2-dev! - libxslt1-dev! sudo: yes
  • 39. Development with Ansible & VMs CONFIGURATION SETUP - name: bootstrap pip and virtualenv! pip: name={{ item.name }} version={{ item.version }}! with_items:! - { name: pip, version: 1.4.1 }! - { name: virtualenv, version: 1.10.1 }! sudo: yes!
  • 40. Development with Ansible & VMs CONFIGURATION SETUP - name: bootstrap pip and virtualenv! pip: name={{ item.name }} version={{ item.version }}! with_items:! - { name: pip, version: 1.4.1 }! - { name: virtualenv, version: 1.10.1 }! sudo: yes!
  • 41. Development with Ansible & VMs CONFIGURATION SETUP - name: bootstrap pip and virtualenv! pip: name={{ item.name }} version={{ item.version }}! with_items:! - { name: pip, version: 1.4.1 }! - { name: virtualenv, version: 1.10.1 }! sudo: yes!
  • 42. Development with Ansible & VMs CONFIGURATION SETUP - name: install requirements.txt! pip: requirements=/vagrant/requirements.txt ! virtualenv=/var/venv! sudo: yes!
  • 43. Development with Ansible & VMs CONFIGURATION SETUP - name: install requirements.txt! pip: requirements=/vagrant/requirements.txt ! virtualenv=/var/venv! sudo: yes!
  • 44. Development with Ansible & VMs CONFIGURATION SETUP - name: source virtualenv in .bashrc! lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! with_items:! - source /var/venv/bin/activate! - cd /vagrant/chewse!
  • 45. Development with Ansible & VMs CONFIGURATION SETUP - name: source virtualenv in .bashrc! lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! with_items:! - source /var/venv/bin/activate! - cd /vagrant/chewse!
  • 46. Development with Ansible & VMs CONFIGURATION SETUP - name: source virtualenv in .bashrc! lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! with_items:! - source /var/venv/bin/activate! - cd /vagrant/chewse!
  • 47. Development with Ansible & VMs CONFIGURATION SETUP - name: standard python system packages! apt: pkg={{ item }} state=installed! with_items:! - python! - python-dev! - python-pip! - libxml2-dev! - libxslt1-dev! sudo: yes! ! - name: bootstrap pip and virtualenv! pip: name={{ item.name }} version={{ item.version }}! with_items:! - { name: pip, version: 1.4.1 }! - { name: virtualenv, version: 1.10.1 }! sudo: yes! ! - name: install requirements.txt! pip: requirements=/vagrant/requirements.txt virtualenv=/var/venv! sudo: yes! ! - name: source virtualenv in .bashrc! lineinfile: dest=/home/vagrant/.bashrc line="{{ item }}"! with_items:! - source /var/venv/bin/activate! - cd /vagrant/chewse!
  • 48. Development with Ansible & VMs 1. BETTER DEV 2. ENVIRONMENT TOOLS 3. CONFIG TOOLS 4. WRAP-UP
  • 49. Development with Ansible & VMs OUR INSTALL • Install VirtualBox and Vagrant
  • 50. Development with Ansible & VMs OUR INSTALL • Install VirtualBox and Vagrant • Git clone chewse
  • 51. Development with Ansible & VMs OUR INSTALL • Install VirtualBox and Vagrant • Git clone chewse • Vagrant up
  • 52. Development with Ansible & VMs OUR INSTALL • Install VirtualBox and Vagrant • Git clone chewse • Vagrant up • Dev nirvana
  • 53. Development with Ansible & VMs DEV WISH LIST • Standardized
  • 54. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable
  • 55. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated
  • 56. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated • Production-like
  • 57. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated • Production-like • Your tools
  • 58. Development with Ansible & VMs DEV WISH LIST • Standardized • Repeatable • Isolated • Production-like • Your tools • Shareable
  • 59. Development with Ansible & VMs Jeff Schenck CTO & Co-Founder twitter: @jeffschenck ! www.chewse.com