Skip to content

codebynumbers/Admiral

Repository files navigation

Admiral

A python based AWS deployment suite, or a watered down clone of chef

This is very much a prooof-of-concept, it is nowhere near production ready.

The idea behind it is to offer the basic functionality of OpsCode Chef, launch a fleet of servers, install packages and deploy config files except using Python instead of Ruby, Jinja for templating, fabric for server interaction, a git repo for recipe storage and Parse or similar service for storing fleet configuration.

Terminolgy

  • Node - an AWS EC2 Ubuntu instance
  • Job - Like a chef role, but didn't want to confuse with fabric roles, nodes can have multiple jobs, Job class files define how to setup a node for a particular job

Getting Started Example

Add your key, if not id_rsa

ssh-add ~/.ssh/amazon2.pem 

Launch an EC2 instance with defaults and then apply the web job to it.

 fab launch:name='web01',job='web'

The web job is just a python class that can be customized to install packages, templated configs, run commands etc.

List nodes

 fab list

Connect to the named node

 fab ssh:web01

Show the named node

 fab show:web01

Terminate the named node

 fab terminate:web01

To Do

  • Provide option to not use EBS, (EBS currently disabled)
  • Add a couple more sample jobs

About

A python based AWS deployment suite, or a watered down clone of chef

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages