Magneticore

Development, Operations and Design

  • Articles
  • Resume
  • About Me
  • Contact
  • DevOps
  • Featured
  • Astronomy
  • Portfolio
  • UI/UX
You are here: Home / Articles / DevOps seeds

DevOps seeds

July 31, 2013 by Jorge Morales

Success

As promised let’s chat about the tools we at Coral now use in our development process. The first tool is for easy VM creation.

Veewee is a tool for easily (and repeatedly) building custom Vagrant base boxes, KVMs, and virtual machine images.

With Veewee I demo to my team how to create a VM from the OS ISO in just a few minutes.

Veewee isn’t only for Vagrant. It currently supports exporting VM images for the following providers:

  • VirtualBox – exports to OVF filetype
  • VMware (Fusion) – exports to OVA filetype
  • KVM – exports to IMG filetype

Check Veewee on GitHub

A sample of the settings available to tuned your VMs are:


Veewee::Session.declare({
  :cpu_count => '2',
  :memory_size=> '2048',
  :disk_size => '256000',
  :disk_format => 'VDI',
  :hostiocache => 'off',
  :os_type_id => 'RedHat6_64',
  :iso_file => "CentOS-6.5-x86_64-minimal.iso",
  :iso_src => "http://yum.singlehop.com/CentOS/6.5/isos/x86_64/CentOS-6.5-x86_64-minimal.iso",
  :iso_md5 => "0d9dc37b5dd4befa1c440d2174e88a87",
  :iso_download_timeout => 1000,
  :boot_wait => "10",
  :boot_cmd_sequence => [
    ' text ks=http://%IP%:%PORT%/ks.cfg'
  ],
  :kickstart_port => "7122",
  :kickstart_timeout => 10000,
  :kickstart_file => "ks.cfg",
  :ssh_login_timeout => "10000",
  :ssh_user => "veewee",
  :ssh_password => "veewee",
  :ssh_key => "",
  :ssh_host_port => "7222",
  :ssh_guest_port => "22",
  :sudo_cmd => "echo '%p'|sudo -S sh '%f'",
  :shutdown_cmd => "/sbin/halt -h -p",
   :postinstall_files => [
    "base.sh",
    "vmwaretools.sh",
    "dynmotd",
    "coral.sh",
    "cleanup.sh",
    "zerodisk.sh"
  ],
  :postinstall_timeout => 10000
})

Post-Install files and scripts

If some degree of personalization and optimization of the VMs is required you can do so calling scripts.

  • Base.sh
    • Installs Epel Repo and standard build essential packages
  • vmwaretools.sh
    • VMWARE Tools for ESXi/Vsphere
  • dynmotd
    • Provides servers basic information after ssh session ie. IP address/Server Name
  • coral.sh
    • Creates Coral User with privileges and directories
  • cleanup.sh
    • Deletes temp files, removes persistent network config (MAC) and Sets HOSTNAME
  • zerodisk.sh
    • Zero out the free space to save space in the final image

DEMO…

TERMINAL

# Build a new VM based on Definition						
veewee fusion build jasper-centos65-minimal
  • veewee
    • fusion (Provider)
    • build (Command)
    • jasper-centos65-minimal (Definition)

OK THAT’S NICE BUT…

WHAT ABOUT THE REST?

 The outcome is a VM image ready to use in Vagrant, can be imported in VMware Fusion and/or ESXi
 Will leave Chef and Deployment for another day.
Stay tuned!

Filed Under: Articles, DevOps Tagged With: devops

About the author

My name is Jorge Morales and I am an Electronics Engineer by training, a technology starter by choice and Open Source fan.
My curiosity led me to get involved in many areas from Instrumentation, Support, Operations to Development.
Often as a member of multidisciplinary teams, sometimes leading or working as a senior individual contributor.

I spend my time remixing the web Open Source style!
UNAM and Ottawa Startup Weekend Alumni, Co-founder of @YourBookBuddy.
I lead the implementation on Coral platform and production systems at CoralCEA.

Recent Articles

  • Kano Computer for Kids based on Raspberry pi
  • Welcome Home App and Meteor part 2
  • Welcome Home App and Meteor
  • Are we alone in the universe?
  • A new car UI
I'm currently looking for new opportunities. Are you interested, let's chat!

Work with Jorge Now

Previous role

Project Lead at CoralCEA where I led the implementation on Coral platform and Coral's production systems.

 

I’m also in here…

  • Email
  • GitHub
  • LinkedIn
  • Twitter

Copyright © 2025 · Magneticore · My online Resume

Copyright © 2025 · Log in