Skip to main content

Light weight configuration management using Consul

Project description

Light weight configuration management using Consul

Passport is a command line tool for rendering templates containing information gained from Consul’s Service Discovery API and Key/Value database.

Version Downloads License

Installation

Passport is available via pypi and can be installed with easy_install or pip:

pip install passport

Usage

usage: passport.py [-h] [--host HOST] [--port PORT] [--datacenter DATACENTER]
                   {kv,file} path destination

Example

As an example, the following template is stored in the KV database as templates/memcached/memcached.conf

{% set nodes = ['%s:%s' % (r['Address'], r['ServicePort']) for r in consul.catalog.service('memcached')] %}

[memcached]
    servers = {{ ','.join(nodes) }}

Invoking passport will render the file with a list of all memcached nodes to /etc/memcached.conf.

passport kv templates/memcached/memcached.conf /etc/memcached.conf

And the output would look something like:

[memcached]
    servers = 172.17.0.7:11211,172.17.0.8:11211

Template rendering is done via the Tornado Template engine.

Todo

  • Add a managed mode where Passport will check for new services on a regular interval and when changes occur, update the rendered template and notify a process using HUP
  • Add daemonization for managed mode
  • Add the ability to specify pairs of templates/destinations in a single invocation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for passport, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size passport-0.1.1.tar.gz (4.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page