While browsing in Google+ I encountered blessed-contrib and I wanted to share.
Build dashboards (or any other application) using ascii/ansi art and javascript.
Development, Operations and Design
While browsing in Google+ I encountered blessed-contrib and I wanted to share.
Build dashboards (or any other application) using ascii/ansi art and javascript.
Excellent Presentation from Brendan Gregg’s Talk at SCaLE 11x
Slides…
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:
OVF
filetypeOVA
filetypeIMG
filetypeCheck 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
})
If some degree of personalization and optimization of the VMs is required you can do so calling scripts.
# Build a new VM based on Definition
veewee fusion build jasper-centos65-minimal
The outcome is a VM image ready to use in Vagrant, can be imported in VMware Fusion and/or ESXi
I presented to all the CoralCEA’s team what I have been working on in my spare time for the last few weeks.
On top of my development tasks I’m also in charge of deployments which includes Virtual Machines creation to support our architecture.
It is not a difficult task but it takes a good amount of time whenever something gets a considerable update.
For example: A Java update or a security bug.
The down side, as discussed previously, takes a good chunk of time and it could be prone to errors.
It’s easy to forget a parameter or a specific piece of configuration or script.
Then the VM distribution propagates into all the pieces of our development cycle.
In an interesting note my team thought that my chat was about some tools but that was just a little bit of the whole equation. The end of my presentation was to change our development culture optimizing our development process.
As for the VM creation what I presented was:
The VM creation was just the beginning of the changes chain I had been working on. The next part was about provisioning and environments. Using tools like Chef and Vagrant. What I demoed to the team was how I bootstrap a whole piece of our stack from scratch and I chose the most tedious one which happens to be also the one where it was easy to forget pieces of configuration.
I also show them the code behind all this configuration magic. Some of the ideas I touched were:
But it’s more than just the tools. Everyone in the organization has to get involved. It is not just about what the developers or the guys in operations do to find common ground. The idea is to help our organization to become more responsive to changes when they arise and streamline all the areas from development to production.
It was fun to see the team attitude change from what they thought it was a meeting about tools to after the demos.
They look exited about what we could achieve in the following sprints. Even all our business wing was asking away about it.
About the end of the presentation we chatted about closing the gaps between Production/QA/Development.
I will try to post some tutorials on how we use these tools perhaps it will spark some ideas for your own process.