Giter Site home page Giter Site logo

collective's Introduction

collective

The new collective repo.

Manage vagrant/vbox clusters easily, with a quasi dedicated chef server. Safe for bridged networks.

This app helps syncronize developers working on cluster software.

Environment Setup

# env
gem install bundler

bundle install

# install vagrant plug-ins; yes, slightly confusing - download|install...
rake download:plugins

# Project deps
rake download:gems # should just run bundle

rake download:files # for various files needed by the app

rake download:repos # for various repos needed by the app

rake download:cookbooks # grabs cookbooks via berkshelf

# !! Now you can do either a cluster or manual setup !!

Cluster setup (recommended)

# Cluster?
rake vm:cluster:base:up

# Upload and sync all nodes with chef
rake vm:cluster:base:sync

# Start the whole thing over again (destructive)?
rake vm:cluster:base:rebirth

What does Cluster run?

Below are manual commands which cluster will run

# Re-provision?
rake vm:cluster:base:provision

# Re-bootstrap nodes?
rake vm:cluster:base:bootstrap

# Re-upload chef data?
rake vm:cluster:base:upload

# Re-Prepare node1, etc...
rake vm:cluster:base:prepare

# Re-Sync nodes with chef server
rake vm:cluster:base:sync

Manual setup

Manually boot the above with Node1 and a Chef node?

rake vm:chef:up

rake vm:chef:provision

rake vm:node1:up

rake vm:node1:provision

rake vm:cluster:base:bootstrap

rake vm:cluster:base:upload

rake vm:cluster:base:sync

Clif Notes

Remember, all the above can be easily be done via:

rake vm:cluster:base:up

Or by doing a full rebirth which will FROM SCRATCH delete and restart the provisioning process again (if you messed something up)

rake vm:cluster:base:rebirth

collective's People

Contributors

jasongiedymin avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

collective's Issues

Box Export

Box export, maybe with veewee so that the clusters don't take so long.

Would be nice to do: vm:cluster:base:export

Install chef server

Using my 0.0.7 branch

First:
# In core.yml, replace the ci box with chef as well as adding it to the base cluster

clusters: # cluster config
  - cluster:
      name: 'base'
      nodes: 
        - 'chef'
        - 'dev'


nodes:  # node registry
  - node:
      hostname: 'chef'
      box: 'chef'
      cpus: 1
      mem: 256
      ip: '10.10.10.10'
      mac: '080027EB6B03'
      url: 'ubuntu_13_04_lts.box'
      init: 'init.sh'
    `mkdir manifests/chef`

Then create an init file:
cp manifests/dev manifests/chef

This cluster can be brought up or down via: rake vm:cluster:base:up.

Side note, would also be nice to clean up the manifests folder to something like [manifests/init, manifest/src], instead of everything sitting in one folder.

The rest makes more sense as we need that box to install open source chef server.

This server will help deploy openstack via chef recipes. The recipes are 'production' quality and this chef server should also be first class.

Front creative

I'd like nothing more than to design it myself, and i may still do it :-)

But seems to be a good alternative that is 'mainstream'.

Would like to see better use of typography and add some more 'response' to the elements.

Move from Repo to berkshelf

On the chef server, move from the git cookbook to berkshelf. Manifest is shared so this can be done from the host and the manage_chef.sh script can upload to the server (as it is executed on the chef server).

Install OpenStack with Chef and not DevStack

Depends on Issue #10 to be complete first.

The Node1 vm should install OpenStack via the chef server, not DevStack. This server install will be production like to give us a leg up on getting our environment ready when that time comes.

Wrangle Travis

If Travis is doable, lets do it.

vagrant -> ubuntu -> docker -> travis

after that, we can try to force travis to use docker instead of whatever it does today

Add Thor, command & subcommand structure

Would like to move to using Thor instead of Rake. This would make it cleaner (possibly) and remove the need for rake pre-pending the command. This moves us closer to utility mode and allows for a higher level from which we can switch providers (openstack/docker via libcloud, away from vagrant as exclusive)

Possibilites:
collective --cluster base start # starts cluster 'base'
collective --node chef start # starts node 'base'
collective --provider vagrant --node chef -- command start

Add Cluster config to specify 'unmanaged' machines such as bare metal

Add Cluster config to specify 'unmanaged' machines such as bare metal

# core.yml
clusters: 
  - cluster:
      name: 'jnet'
      managed: false # <= here we flag that this cluster is not managed via vagrant
                     #    and that we expect the machines to be when interacting with it
      admin_account: admin # under a vagrant managed box, the user is vagrant
                          # this is ignored if managed

Mavericks + Vbox + Vagrant Driver Issue

Kernel drivers are not being loaded if you install Mavericks. Work around is to re-install vbox, until the next reboot. Then your up the creek again. Need a fix.

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.