Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

BSDploy is a tool to deploy FreeBSD jails.

Not wanting to re-invent the wheel, under the hood it uses mr.awsome for provisioning, ansible for configuration and fabric for maintenance.

Features

  • configure multiple hosts and jails in one canonical ini-file

  • bootstrap complete jail hosts from scratch - both virtual machines, as well as physical ones. bsdploy will take care of installing FreeBSD for you, including configuration of ZFS pools and even encrypts them by default(!) using GELI.

  • create new jails simply by adding two or more lines to your configuration file and running ploy start – bsdploy will take care of configuring the required IP address on the host

  • ansible support – no more mucking about with host files: all hosts and their variables defined in ploy.conf are automatically exposed to ansible. Run them with ploy playbook path/to/playbook.yml.

  • ditto for Fabric – run fabric scripts with ploy do JAILNAME TASKNAME and have all your hosts and their variables at your disposal in fab.env.

  • jails receive private IP addresses by default, so they are not reachable from the outside - for configuration access (i.e. applying ansible playbooks to them or running fabric scripts inside of them) bsdploy transparently configures SSH ProxyCommand based access.

  • Easily configure ipnat on the jail host to white-list access from the outside – this greatly reduces (sadly not eliminates) the chance of accidentally exposing services to the outside world that shouldn’t be.

With bsdploy you can create and configure one or more jail hosts with one or more jails inside them, all configured in one canonical ini style configuration file (by default in etc/ploy.conf):

[ez-master:vm-master]
host = 127.0.0.1
port = 47022

[ez-instance:webserver]
ip = 10.0.0.2
fqdn = test.local
fabfile = deployment/webserver.py

[ez-instance:database]
ip = 10.0.0.3
dbname = production

[ez-instance:application]
ip = 10.0.0.4
version = 1.2.3

Examples

To give it a spin, best check out the example repository.

TODO

  • documentation cough

  • make rc.conf a template (to support non-DHCP jailhost scenario)

  • allow for offline installation of ezjail

  • allow for offline installation of pkgng

  • include poudriere support

  • eliminate need for proxycommand, proxyhost and hooks entries for jail configuration in ploy.conf

  • make the private network for the jails configurable (the hard coded 10.0.0.x is not always desirable)

Metadata

Release files for bsdploy 0.1alpha1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bsdploy 0.1alpha1
File Size Uploaded
bsdploy-0.1alpha1.zip 19.8 kB Details

Release files / bsdploy-0.1alpha1.zip

Download URL bsdploy-0.1alpha1.zip
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
70b86ed515367d0c549a30c71ba9668460033fb070168fa97db8490440db834d
BLAKE2b-256 checksum
How to use checksums
61a96fb4288cce75297afc167b30a43ed638b1a18a8ec1f4297c3c03b3d54f85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page