Vagrant test environment for Monasca
Go to file
2014-05-06 10:52:31 -06:00
bin Added some convenience commands for bringing up/halting all vms. 2014-03-27 16:41:18 -06:00
data_bags Removed tags and added dimensions to agent databag. 2014-04-23 10:13:51 -06:00
files/default renamed alarm enabled->actions_enabled 2014-04-15 12:13:24 -07:00
recipes Switched apt repos back to the HP Public Cloud ones. 2014-04-21 14:49:12 -06:00
roles apt-cacher-ng is fixed! hlinux added packages.gz to their repo 2014-04-21 12:06:02 -06:00
templates Fixed hostname for the packer box 2014-04-22 16:21:24 -06:00
tests Updated TODO list 2014-05-06 10:52:31 -06:00
.gitignore Added .idea to gitignore 2014-05-01 14:27:39 -06:00
Berksfile Move the percona cookbook to the mini-mon branch 2014-05-02 10:51:47 -06:00
metadata.rb Changes to allow the new version of Berkshelf to work 2014-04-17 11:03:41 -06:00
README.md remove doctoc reference 2014-04-24 09:14:04 -06:00
Vagrantfile Increased base VM memory to 768MB, persister to 1GB 2014-05-02 09:32:10 -06:00

Table of Contents

Install's a mini monitoring environment based on vagrant. Intended for development and monitoring of the monitoring infrastructure.

Installation

Get the Code

git clone https://git.hpcloud.net/mon/mini-mon.git

Setup Vagrant

Install Vagrant

Assumes you have home homebrew installed, if not download and install VirtualBox and Vagrant from their websites then continue with Setup Berkshelf.

brew tap phinze/cask
brew install brew-cask
brew cask install virtualbox 
brew cask install vagrant

Setup Berkshelf

vagrant plugin install vagrant-berkshelf
gem install berkshelf  or gem install --http-proxy <http://some-proxy.foo.com:8088> berkshelf

Using mini-mon

  • Your home dir is synced to /vagrant_home on each vm
  • Vms created
    • api at 192.168.10.4
    • kafka at 192.168.10.10 - mon-notification runs on this box also
    • mysql at 192.168.10.6
    • persister at 192.168.10.12
    • thresh at 192.168.10.14
    • vertica at 192.168.10.8
  • Run vagrant help for more info
  • Run vagrant ssh <vm name> to login to a particular vm
  • Can also run ssh vagrant@<ip address> to login
    • password is vagrant

Start mini-mon

Berkshelf will download some cookbooks from the community so http_proxy and https_proxy environment variables must be set if applicable. From within the mini-mon directory, to start all the vms run:

bin/vup

The standard vagrant commands can also be used, the vup script just starts things up in a dependency order using parallel startup.

Halt mini-mon

In some cases halting mini-mon can result in certain vms being left in an odd state, to avoid this a script has been made to halt boxes in the correct order

bin/vhalt

Updating a VM

When someone updates the config for a vm this process should allow you to bring up an updated vm.

  • git pull
  • berks update
  • vagrant destroy vm - Where vm is the name of the vm being updated, for example 'vertica'
  • vagrant up vm

Improving Provisioning Speed

The slowest part of the provisioning process is the downloading of deb packages. To speed this up a local apt-cacher-ng can be used. To install on a mac

brew install apt-cacher-ng

Run apt-cacher-ng -c /usr/local/etc/apt-cacher-ng/ or optionally follow the instructions from brew to start up the cache automatically. That is all that is needed from now on the cache will be used.

A report from the cache is found at http://localhost:3142/acng-report.html

Running hLinux as the base OS

hLinux can be installed and run as the base OS for all the vms defined in mini-mon. To this comment/uncomment the appropriate lines in the Vagrantfile. Also switch to the proper base apt repos in recipes/default.rb. There are a couple of minor problem which would slow down development and are why at this point hLinux has not been turned on by default:

  • The vboxsf filesystem driver is not working correctly in hLinux, this prevents home directory syncing.
  • Slow network performance of the hLinux vbox image makes some tasks annoying.

Creating a new hLinux box

The hLinux box used in mini-mon is created via packer, config is in the templates directory.

  • Install packer
    • brew tap homebrew/binary
    • brew install packer
  • Run packer
    • cd templates
    • packer build hlinux.json
  • From the mini-mon directory run vagrant box add hlinux templates/packer_virtualbox-iso_virtualbox.box
    • If you have an existing hLinux box you man need to first remove it vagrant box remove hlinux
    • Also upload to a server for others to download.