Code Monkey home page Code Monkey logo

hil's Introduction

https://travis-ci.org/CCI-MOC/hil.svg?branch=master

HaaS

HaaS is a low-level tool for reserving physical machines and connecting them via isolated networks. It does not prescribe a particular method for imaging/managing said machines, allowing the user to use any solution of their choosing.

HaaS keeps track of available resources in a database, which a system administrator must populate initially.

This includes information such as:

  • What machines are available
  • What network interfaces they have
  • Where those NICs are connected (what port on what switch)

From there, a regular user may:

  • Reserve physical machines
  • Create isolated logical networks
  • Create "headnodes," which are small virtual machines usable for management/provisioning purposes
  • Connect network interfaces belonging to physical and/or headnodes to logical networks.
  • Reboot their machines, view the serial consoles -- aditionaly such management features may exist in the future.

A typical user workflow might look like:

  1. Reserve some machines.
  2. Create a logical "provisioning" network.
  3. Connect a NIC from each machine to the provisioning network. In particular, one could connect a NIC from which the machine will attempt to boot.
  4. Create a headnode, and attach it to the provisioning network
  5. Log in to the headnode, set up a PXE server, reboot the nodes, and deploy an operating system on them via the network.

Requirements

Required software/hardware for running a production HaaS include:

  • Network switches:
    • At least one switch from the Cisco Nexus 5xxx or Dell PowerConnect 55xx families
    • For environments including more than one switch, all VLANs must be trunked to all managed switches
  • A single node that has the following:
    • A webserver capable of supporting the WSGI standard (Apache/mod_wsgi is the only one tested)
    • python 2.7, with the ability to install packages via pip
    • Access to:
      • The Internet or intranet (a way for users to connect to the HaaS service)
      • The administrative telnet IP on the managed switches
    • Currently only CentOS and RHEL 7.x have been tested, though any node that otherwise meets these requirements should function.
  • Database: a Postgres database server. Sqlite works but is not recommended for production.

For IPMI proxy functionality:

  • Network access from the HaaS service node to the IPMI interfaces of node under management
  • Nodes that support IPMI v2+
  • A recent version of ipmitool installed on the HaaS service node

For headnode functionality:

  • A recent Linux version for the HaaS service node that has libvirt with KVM installed
  • Some number of VM templates
  • A trunk port connected between the switch and HaaS service node that carries all VLANs accessible from HaaS

Documentation

  • The full documentation is availalbe at ReadTheDocs in a beautiful and easy to navigate web interface.
  • The docs directory contains all the documentation in .rst and .md format
  • examples contains examples of config files, templates for creating headnode VM images and a script to register nodes with HaaS.

Please note that the documentation is a mix of Markdown and reStructured Text, since the latter is preferred by the python and OpenStack communities and the former was what was originally used.

Mass Open Cloud

This project is part of the larger Massachusetts Open Cloud. For a description of the team and other information, see https://github.com/CCI-MOC/moc-public/blob/master/README.md.

hil's People

Contributors

zenhack avatar gsilvis avatar sahiltikale avatar linzhaoliang avatar henn avatar ryabouza avatar loki8 avatar naved001 avatar knikolla avatar linzertorte avatar shuwens avatar ron-unrau avatar okrieg avatar kylehogan avatar hoodsy avatar matsuuran avatar jbshagendaz avatar ritesh277coe avatar amohn9 avatar pjd-nu avatar baluluyakalulu avatar starbops avatar igibek avatar xuhang57 avatar ludelafo avatar rohgarg avatar spectranaut avatar apoorvemohan avatar viggnesh avatar

Watchers

 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.