GithubHelp home page GithubHelp logo

vagrant-ganeti's Introduction

Vagrant files for a Ganeti tutorial and/or Ganeti testing environment.

Set of Vagrant files used for deploying a single or multi-node Ganeti cluster. The original goal of this was to provide a testing environment for the Ganeti Web Manager team at the OSUOSL. It can also be used as a Ganeti training platform using a tutorial I have written up. (TODO).

Vagrant will setup up to three Ganeti nodes with the basics to install Ganeti, Ganeti Instance Image, and Ganeti Web Manager. You can deploy any number of nodes for the uses you want. Ganeti will already be initialized on node1.

This was originally used for Hands on Virtualization with Ganeti at OSCON 2011 and has been adapted for use with Vagrant. The intention of this is for instructional and testing purposes only.

Requirements

  • VirtualBox >=4.1.x
  • vagrant >=1.0.3

Setup

  1. Install VirtualBox by going to their download page.

  2. Install Vagrant

    gem install vagrant

  3. Initialize submodule(s)

    ./update

Using Vagrant

The Vagrantfile is setup to where you can deploy one, two, or three nodes depending on your use case. Node1 will have Ganeti already initialized while the other two will only have Ganeti installed and primed.

For more information on how to use Vagrant, please check out their site.

Starting a single node

vagrant up node1
vagrant ssh node1

Starting node2

NOTE: Root password is 'vagrant'.

vagrant up node2
vagrant ssh node1
gnt-node add -s 33.33.34.12 node2

Starting node3

NOTE: Root password is 'vagrant'.

vagrant up node3
vagrant ssh node1
gnt-node add -s 33.33.34.13 node3

Accessing the nodes

Add the following to your /etc/hosts files for easier access locally.

33.33.33.10 ganeti.example.org
33.33.33.11 node1.example.org
33.33.33.12 node2.example.org
33.33.33.13 node3.example.org

All the nodes are using hostonly networking with the following IP's:

  • ganeti.example.org (cluster IP) = 33.33.33.10
  • node1.example.org = 33.33.33.11
  • node2.example.org = 33.33.33.12
  • node3.example.org = 33.33.33.13

Additionally, I have setup several VM DNS names in the /etc/hosts of each node that you can use:

  • instance1.example.org
  • instance2.example.org
  • instance3.example.org
  • instance4.example.org

RAPI Access

The RAPI user setup for use on the cluster uses the following credentials.

  • user: vagrant
  • pass: vagrant

Running different Ganeti versions

This repo has been setup to deal with a variety of Ganeti versions for testing. Currently it only supports 2.4.x, 2.5.x, 2.6.x and any git tagged releases. Currently 2.7.x is not supported but will be soon. To switch between the versions do the following:

  • edit modules/ganeti_tutorial/node{1-3}.pp
  • if using git, change git to true
  • change ganeti_version to desired version
  • redeploy the vm(s) (destroy, up)

Node Operating System

By default we use Ubuntu 12.04 for our node OS but we do have support for the following operating systems. Just run the vagrant commands from inside the appropriate folder.

  • Ubuntu 11.10 (ubuntu-11.10)
  • Ubuntu 12.04 (ubuntu-12.04)
  • Ubuntu 12.10 (ubuntu-12.10)
  • Ubuntu 13.04 (ubuntu-13.04) (work in progress)
  • Debian 6 (debian-6)
  • Debian 7 (debian-7) (pre-release)
  • CentOS 6 (centos-6)
  • CentOS 5 (work in progress)

Deploying Ganeti Web Manager (GWM)

NOTE: This is currently broken. Please avoid trying this for now

This repo also supports automatically deploying GWM inside of the node1 instance. You can achieve this by changing the puppet manifest for node1 to point to node1-gwm.pp instead.

NOTE: This is still not quite working right. I hope to have this fixed with the 0.9 release of GWM

Copyright

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.

vi: set tw=80 ft=markdown :

vagrant-ganeti's People

Contributors

ramereth avatar pramttl avatar

Watchers

Josiah avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.