Cloud Provisioning Templates with Python Fabric
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
applications
src
test
.gitignore
README.md
hive.py

README.md

Honeybee

Honeybee is a templating structure built around the Python Fabric library to organize the shell provisioning of various servers in a cloud cluster. By setting a standard for where provision commands are stored, and placing installation instructions in centralized locations, Honeybee allows for reusability of installation instructions across various web application servers. This facilitates rapid, provider agnostic, server provisioning, easy infrastructure expansion, and seamless server migrations.

See full tutorial.

Generating Application Stack

Using the Hive script, define the application stack and add server types

./hive.py generate app lamp
./hive.py generate server lamp apache
./hive.py generate server lamp mysql

Defining Instructions

Use centralized shell commands, wrapped in Python functions, to define server provisioning

apache2()
php55()

SSH tunnels allow for bypassing advanced firewall rules

tunnel('56.23.53.58', '2024', '289.23.57.34')
mysql56()

Pass dynamic variables into template files to push to cluster

template('templates/mongo/mongod.conf', '/etc/mongod.conf', {'%%BIND-IP%%':mongo_ip})

Clean, limited Python Fabric tasks

Available commands:

    mysql.harvest
    mysql.plant
    mysql.pollinate
    apache.harvest
    apache.plant
    apache.pollinate

Plant, initial server set up, occurs once

fab apache.plant

Pollinate, push config files to the cluster

fab apache.pollinate 

Harvest, deploy the application

fab apache.harvest