Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Command line tools to manage clouds
Python TeX Shell CSS
Latest commit 1b90323 @novel Merge pull request #12 from digitalism/feature/fix-documentation
Fix command to list all available cloud drivers
Failed to load latest commit information.
doc fix command to list all available cloud drivers
lctools decode format string using 'string-escape'
man Just look for 'ronn' in PATH.
media Add logos by Wladyslaw Fedorov (
provider_specific Add lc-gg-ip-list -- a tool to list IPs assigned to GoGrid account.
scripts Use realpath(1) as latex2html seems to like abs paths better.
test Add a test for default config settings.
.gitignore Add various latex temp files to gitignore.
LICENSE Add license and add classifiers for pypi. Update MANIFEST to include provider_specific scripts and VERSION file.
NEWS Prepare release Add link to the project's page in README.
TODO Add lb-* script to
VERSION Prepare release
lb-add Fix lb-add after libcloud -> loadbalancer rename.
lb-destroy Chase lb API changes for lb-destroy.
lb-list Chase lb API changes for lb-list.
lb-member-add Rename lb-node-add to lb-member-add.
lb-member-list Rename lb-node-list to lb-member-list.
lb-member-remove Rename lb-node-remove to lb-member-remove.
lc-drivers-list Fix import for lc-drivers-list.
lc-image-list Add support for filtering images by location.
lc-locations-list Implement a tool to list locations.
lc-node-add Use formatted print for lc-node-add isntead of printing raw object.
lc-node-do Skip non-existing nodes in mass node operations in lc-node-do instead of
lc-node-list Setuptoolize.
lc-sizes-list Setuptoolize. Bump VERSION and update min supported libcloud version.


lc-tools is a set of command line tools to control various clouds. It uses libcloud for cloud related stuff so should support as much cloud providers as libcloud does.


sudo python install


Tutorial for the latest version is available online:

This README contains basic information how to get started.

Getting started

We will use GoGrid as example.

First, create config file: ~/.lcrc with the following content:

driver = gogrid
access_id = your_key_id
secret_key = your_password

It is self-explanatory. Don't forget to run chmod 600 on it to keep your credentials secret.

When you're done with the configuration file, you can start managing your servers. To list the available image, fire up lc-image-list command in your shell:

$ lc-image-list|grep -i centos
image CentOS 5.2 (32-bit) w/ RightScale (id = 62)
image CentOS 5.2 (64-bit) w/ RightScale (id = 63)
image CentOS 5.3 (32-bit) w/ None (id = 1531)
image CentOS 5.3 (64-bit) w/ None (id = 1532)

Now, to get a list of available node sizes, do:

$ lc-sizes-list
size 512MB (id=512MB, ram=512, disk=30 bandwidth=None)
size 4GB (id=4GB, ram=4096, disk=240 bandwidth=None)
size 2GB (id=2GB, ram=2048, disk=120 bandwidth=None)
size 8GB (id=8GB, ram=8192, disk=480 bandwidth=None)
size 1GB (id=1GB, ram=1024, disk=60 bandwidth=None)

So now you know ids of the images and available sizes, you can use them to create a new node like that:

lc-node-add -i 62 -s 1GB -n mynewnode

It will create a centos node (id = 64) of size 1GB (id = '1GB') with name 'mynewnode'.

Now, to get a list of nodes, use:

$ lc-node-list
100xxx  mynode1     173.204.xx.yy  Running
100xxx  mynode2    173.204.xx.zz  Running

When you're done with the node, you can remove it:

$ lc-node-do -i node_id destroy

where node_id is an id of the node you want to destroy. If you want to reboot node, just pass 'reboot' argument to this command instead of 'destroy'.


Any feedback is welcome! You can use github to contact me or plain old email:

Something went wrong with that request. Please try again.