hipops

command module
v0.0.0-...-19f8562 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 3, 2015 License: Apache-2.0 Imports: 7 Imported by: 0

README

#hipops Docker Orchestration Configuration

hipops is an agentless orchestration configuration tool for servers running Docker containers, whether it's local or remote. It's a JSON-based configuration of your environments. hipops is a wrapper around the popular orchestration tool, ansible. Ansible Playbooks are powerful for managing configurations and deployments for the remote machines or local VMs. When it comes to docker deployments, there is a need for a configurable orchestration of containers. hipops will allow you to orchestrate cluster of your servers (CoreOS, ubuntu, etc...) with a configuration template locally in VMs and then remotely to AWS or other providers. hipops works with CoreOS, ubuntu, and other linux servers.

##Concept The idea behind hipops configuration is to define a series of apps and re-use them in playbooks, so you just focus on the orchestration of your containers, whether across different physical hosts or the same host. Here is a sample configuration for hipops:

{
  "id": "demo",
  "description": "my demo",
  "env": "dev",
  "dest": "/data",
  "oses": [{
    "user": "ubuntu"
  }],
  "apps": [{
    "name": "mongo",
    "type": "db",
    "image": "aminjam/mongodb:latest",
    "ports": [27017]
  }, {
    "name": "backend-api",
    "type": "nodejs",
    "host": "backend-api-host.com",
    "repository": {
      "branch": "master",
      "sshUrl": "github.com/aminjam/hipops-SAMOMY-backend.git"
    },
    "image": "aminjam/nodejs:latest",
    "ports": [3001]
  }],
  "playbooks": [{
    "inventory": "tag_App-Role_DEMO",
    "apps": ["{{index .Apps 0}}"],
    "containers": [{
      "params": "-v {{.App.Dest}}:/home/app -d {{.App.Image}} /run.sh"
    }]
  }, {
    "inventory": "tag_App-Role_DEMO",
    "apps": ["{{index .Apps 1}}"],
    "state": "deploying",
    "containers": [{
      "params": "-v {{.App.Dest}}:/home/app -e NODE_ENV=development --link {{(index .Apps 0).Name}}:mongo -d {{.App.Image}} /run.sh"
    }]
  }]
}

I am defining two apps: mongo and backend-api, and then I define the first playbook to run {{index .Apps 0}} which in this case is mongo and then the second playbook to run {{index .Apps 1}} which is backend-api.

##Install

Compiled binary

https://github.com/aminjam/hipops/releases

From source

  • git clone https://github.com/aminjam/hipops.git
  • cd hipops && make

##Next steps

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL