A cloud deployment, automation, and orchestration platform for everyone.
The canonical Python client and cli for the stackd.io API
This is a small set of tools for internal use of stackd.io. After cloning this repo, you should be able to quickly get up and running with your own stacks.
Advanced usage like creating custom blueprints or writing your own formulas is beyond the scope of this.
We recommend using virtualenv via virtualenvwrapper to install this in a virtualenv. If you consider yourself a knowledgeable Pythonista, feel free to install this however you’d like, but this document will assume that you are using virtualenvwrapper. See the full virtualenvwrapper docs for details, but in short you can install it on most systems like:
pip install virtualenvwrapper
Once you’ve got it, installing this tool goes something like:
mkvirtualenv stackdio-client pip install stackdio
You’ll see a few things scrolling by, but should be set after this. To use this later, you’ll need to re-activate the virtualenv like:
Whenever it’s activated, stackdio-cli should be on your path.
The first time that you fire up stackdio-cli, you’ll need to run the configure command. This will prompt you for your LDAP username and password, and store them securely in your OS keychain for later use. It will import some standard formula, and create a few commonly used blueprints.
$ stackdio-cli None @ None > configure # YOU WILL BE WALKED THROUGH A SIMPLE SET OF QUESTIONS
All of the following assume that you have run initial_setup successfully. To launch the cli, simply type:
You can run help at any point to see available commands. For details on a specific command you can run help COMMAND, e.g. help stacks. The rest of these commands assume you have the cli running.
Stacks are launched from blueprints. To launch the 3 node HBase stack that’s included with this you do:
> stacks launch cdh450-ipa-3 MYSTACKNAME
To avoid DNS namespace collisions, the stack name needs to be unique. An easy way to ensure this is to include your name in the stack name.
When you are done with a stack you can delete it. This is destructive and cannot be recovered from, so think carefully before deleting your stack!
> stacks delete STACK_NAME
Alternatively you can terminate a stack which will terminate all instances, but leave the stack definition in place.
Occassionally something will go wrong when launching your stack, e.g. network connections may flake out causing some package installations to fail. If this happens you can manually provision your stack, causing everything to be brought back up to date:
> stacks provision STACK_NAME
Once you have launched a stack, you can then monitor the status of it like:
> stacks history STACK_NAME
This displays the top level information for a stack. You can supply additional arguments to pull back additional info about a stack. For example, to get a list of FQDNs (aka hostnames) for a stack:
> stacks hostnames STACK_NAME
There are various logs available that you can access with the stacks logs command.
For anything not covered by this tool, you’ll need to use the stackdio-server web UI or API directly. For more information on that, check out http://docs.stackd.io.
Release history Release notifications
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size stackdio-0.7.3-py2.py3-none-any.whl (36.3 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View hashes|
|Filename, size stackdio-0.7.3.tar.gz (22.2 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
Hashes for stackdio-0.7.3-py2.py3-none-any.whl