poni - a systems configuration software
Python Shell Other
Failed to load latest commit information.
doc Release Poni 0.8 Mar 11, 2015
examples aws: provisioning spot instances Dec 5, 2012
poni pylint: disable a couple of warnings May 12, 2015
tests python 3 compatibility: don't rely on unicode/str/bytes/int/long Feb 26, 2015
.gitignore draft Makefile targets and resource files for debian packaging Nov 29, 2010
.travis.yml Release Poni 0.8 Mar 11, 2015
LICENSE changed the license to Apache 2.0 Dec 5, 2012
MANIFEST.in draft Makefile targets and resource files for debian packaging Nov 29, 2010
README.rst setup, version, doc and travis: python 3 compatibility Feb 26, 2015
package.mk debian package: refactor package generation Feb 26, 2015
poni.spec rpm package: build a python3 package Feb 26, 2015
pylintrc tests: silence more pylint warnings Feb 19, 2015
setup.cfg initial version Nov 28, 2010
setup.py setup, version, doc and travis: python 3 compatibility Feb 26, 2015
version.py setup, version, doc and travis: python 3 compatibility Feb 26, 2015


Poni readme


Poni is a simple system configuration management tool implemented in Python.

General Information

source repo:https://github.com/melor/poni
email:mika dot eloranta at gmail dot com
bug tracker:https://github.com/melor/poni/issues
build status:BuildStatus


Installing and operating Poni requires:

  • Python 2.6, 2.7 or 3.4 or greater
  • setuptools installed
  • Internet connection for downloading the dependency Python packages from PyPI

Using Amazon EC2 requires setting the following environment variables:

export AWS_ACCESS_KEY_ID=<your aws access key>
export AWS_SECRET_ACCESS_KEY=<your aws secret access key>

Additionally, running the included automated tests requires:

Building HTML files from the included ReST documentation requires:


NOTE: during installation the following package and its dependencies are automatically installed from PyPI:

  • Argh (command-line argument parsing)

Installing the following Python libraries will add optional functionality:

  • Cheetah (text-based templating language)
  • Genshi (XML-based templating language)
  • Mako (text-based templating language)
  • Paramiko (Remote node control using SSH)
  • GitPython (Version controlling the repository with Git)
  • Boto (Amazon EC2 virtual machine provisioning)
  • pyvsphere (VMWare virtual machine provisioning)
  • libvirt-python (libvirt virtual machine provisioning)
  • lxml (libvirt provisioning dependency)
  • dnspython (libvirt provisioning dependency)
  • PyDNS (used if dnspython isn't available)

Installation using pip or easy_install

Poni can be installed from Python Package Index (PyPI) by running pip install poni or easy_install poni.

Manual Installation steps

  1. Unpack the poni-v.vv.tar.gz package
  2. cd poni-v.vv/
  3. python setup.py install

Verifying the installation

  • You should be able to import poni from Python
  • The poni command-line tool is installed (to a platform-specific location), try running poni -h for help
  • Running automated tests: make tests


Please refer to the documentation under the doc/ directory (published at http://melor.github.com/poni/) and to the example systems under the examples/ directory.


Thanks for the contributions!

  • Oskari Saarenmaa (features)
  • Santeri Paavolainen (fixes)
  • Lakshmi Vyas (new features for AWS-EC2 support)
  • Lauri Heiskanen (enabling pseudo-tty)
  • F-Secure Corporation (major improvements, VMWare vSphere and libvirt support)

License (Apache 2.0)

This package is licensed under the open-source "Apache License, Version 2.0".

The full license text is available in the file LICENSE and at http://www.apache.org/licenses/LICENSE-2.0.txt

Note: poni versions older than 0.6 were licensed under the MIT license.