Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The Neova Health
Build Tool Chain
Packer
Automagically create machine images for
multiple platforms from a single blueprint.
Multiple Platforms
VirtualBox: OVF + disks
VMware: VMX + disks
http://www.packer.io/docs/templates/builders.html
What we like
Automation
● No interaction needed
● Supporting Continuous Integration / Deployment
Standardization
● Use Vag...
An Example
Building the NH Base Centos VM Image,
Targeting VBox / VMWare.
"builders": [
{
"type": "virtualbox-iso",
"boot_command": [
"<tab> text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ks-vbox.cf...
+
Leverage your own
Packer Images
Vagrant
Automagically ensure consistency of production,
UAT and development environments.
What we like
Automation
● No interaction needed
● Supporting Continuous Integration / Deployment
Standardization
● Prevent...
An Example
Environments for developers.
https://git.neovahealth.co.uk/tree/toolchain%2Fnh-vagrant.git
config.vm.define "ci" do |ci|
ci.vm.box = "nh-base"
config.v...
+
Ansible
● Automagically provision environments
What we like
Automation
● Runs over SSH; no agents required
● Supporting Continuous Integration / Deployment
Standardizati...
An Example
Provision CI, UAT & Production code
from GIT repo.
https://git.neovahealth.co.uk/summary/?r=toolchain/nh-ansible.git
# From Vagrant
config.vm.define "ci" do |ci|
ci.vm.box =...
Our thanks to...
The Neova Health  Open Source Tool Chain
Upcoming SlideShare
Loading in …5
×

The Neova Health Open Source Tool Chain

848 views

Published on

How Neova Health use Packer, Vagrant and Ansible to delivery high quality health care applications to our NHS clients through ensuring consistent and version controlled environments from development to release.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

The Neova Health Open Source Tool Chain

  1. 1. The Neova Health Build Tool Chain
  2. 2. Packer Automagically create machine images for multiple platforms from a single blueprint.
  3. 3. Multiple Platforms VirtualBox: OVF + disks VMware: VMX + disks http://www.packer.io/docs/templates/builders.html
  4. 4. What we like Automation ● No interaction needed ● Supporting Continuous Integration / Deployment Standardization ● Use Vagrant to share the image Repeatable ● Template goes into version control ● Image creation knowledge is now in code ● Anyone can build / rebuild the base images
  5. 5. An Example Building the NH Base Centos VM Image, Targeting VBox / VMWare.
  6. 6. "builders": [ { "type": "virtualbox-iso", "boot_command": [ "<tab> text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ks-vbox.cfg<enter><wait>" ], "boot_wait": "10s", "disk_size": 32768, "guest_os_type": "RedHat_64", "http_directory": "http", "vm_name": "nh-centos-6.6-x86_64-base-vbox", "iso_urls": [ "iso/CentOS-6.6-x86_64-minimal.iso" ], "virtualbox_version_file": ".vbox_version", "vboxmanage": [ https://git.neovahealth.co.uk/tree/toolchain%2Fnh-packer.git
  7. 7. +
  8. 8. Leverage your own Packer Images Vagrant Automagically ensure consistency of production, UAT and development environments.
  9. 9. What we like Automation ● No interaction needed ● Supporting Continuous Integration / Deployment Standardization ● Preventing a 'works for me' scenario Repeatability ● Base box goes into version control ● Anyone can reuse the shared Box
  10. 10. An Example Environments for developers.
  11. 11. https://git.neovahealth.co.uk/tree/toolchain%2Fnh-vagrant.git config.vm.define "ci" do |ci| ci.vm.box = "nh-base" config.vm.provision "ansible" do |ansible| ansible.playbook = "core/provisioning/nh-clinical-servers.yml" ansible_ssh_user = "root" ansible.extra_vars = { version: "ci_latest" } ansible.groups = { "ci-latest" => ["ci"], "nh-clinical-servers:children" => ["ci-latest"] } end end config.vm.define "uat" do |uat| uat.vm.box = "nh-base"
  12. 12. +
  13. 13. Ansible ● Automagically provision environments
  14. 14. What we like Automation ● Runs over SSH; no agents required ● Supporting Continuous Integration / Deployment Standardization ● Quick adoption; builds on familiar tools Repeatability ● Playbooks managed with version control
  15. 15. An Example Provision CI, UAT & Production code from GIT repo.
  16. 16. https://git.neovahealth.co.uk/summary/?r=toolchain/nh-ansible.git # From Vagrant config.vm.define "ci" do |ci| ci.vm.box = "nh-base" config.vm.provision "ansible" do |ansible| ansible.playbook = "core/provisioning/nh-clinical-servers.yml" ansible_ssh_user = "root" ansible.extra_vars = { version: "ci_latest" } ansible.groups = { "ci-latest" => ["ci"], "nh-clinical-servers:children" => ["ci-latest"] } # From Ansible - hosts: nh-clinical-servers user: root vars: - odoo_addons_path: "{{ root_deploy_path }}/odoo-addons" - odoo_tag: openeobs-8-12 roles : - python27 - postgresql
  17. 17. Our thanks to...

×