a Python tool to provision, keep in sync and manage FreeBSD boxes and jails
Free software: BSD license
PyPi: https://pypi.python.org/pypi/pybsd
Github: https://github.com/rebost/pybsd
Read the Docs: http://pybsd.readthedocs.org/
Tested on Python 2.7, Python 3.4 and PyPy
docs | |
tests | |
package |
Provisioning, keeping in sync and maintaining even a medium-sized pool of FreeBSD boxes and jails can quickly become a time-consuming and complex task. Tools like Ansible , Fabric and ezjail provide welcome help in one aspect or another and it makes sense to integrate them into a Python-based interface that allows centralized, push-oriented and automated interaction.
A project like bsdploy already leverages these tools to great effect albeit in a very inflexible way that cannot easily be applied to an existing deployment. PyBSD-Project aims at providing a fully customizable Python tool that can be used to maintain an existing array of servers as well as set one up and at making available as well as safely, easily and quickly deployable a wide array of pre-configured, clonable and configurable jails to implement, in a DevOps spirit, tools such as:
- nginx
- Django
- Flask
- JSON Web Tokens
- NodeJS / io.js
- Grunt , Bower and Gulp
- PostgreSQL
- MySQL / MariaDB / Percona
- Redis
- mongoDB
- Memcached
- Solr
- Elasticsearch
- Varnish
- HaProxy
- Jenkins
- Sentry
- statsd + collectd + Graphite
- logstash
- InfluxDB
- Grafana
- Pypi
- Gitolite
- RabbitMQ
- poudriere
- Let's Encrypt
- Postfix + Dovecot + amavis + SpamAssassin
Somewhere down the line interfacing with tsuru or an equivalent is a goal. On the other hand, once the above shopping list is completed, Docker on FreeBSD will probably be a reality 8P.
pip install pybsd
from pybsd import Master
box01 = Master(name='box01', ext_if=('re0', ['8.8.8.8/24']))
box01.ezjail_admin.list()
https://pybsd.readthedocs.org/
To run the all tests run:
tox -e 2.7,3.4,pypy