Skip to main content
Pre-release

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

Puffmatic - OpenBSD Autoinstall Generator

This script streamlines the preparation of files for unattended OpenBSD installations using USB thumb drives and HTTP.

It modifies the USB installer image with autoinstall(8) response files and site sets.

Additionally, the script can create a collection of response files, disk label files, and site set archives, which are suitable for serving through httpd(8).

This approach is particularly beneficial for faster provisioning on budget VPS systems where TFTP boot is not an option. Simply boot the installer from the vendor-provided image and direct it to the self-hosted response file. Installation assets can be secured using basic authentication (don't forget about TLS!).

Provided example.com domain configuration can be tested using vmd(8) and httpd(8) locally.

Installation

Installing from PyPI

Puffmatic is released to PyPI, so you can install it using pip:

python3 -m venv venv
. venv/bin/activate
pip install puffmatic

Running from source directory

This script runs on OpenBSD and requires Python 3. All dependencies are in base system or are installed by pip. Checkout source directory from git to boostrap it:

make bootstrap

It will create venv and install handful of dependencies to run, test and develop puffmatic.

If you are using envrc, provided .envrc will ensure venv is activated, and PYTHONPATH and PATH are updated for seamless use.

If you don't run envrc, you can source the shell environment manually to the same effect:

. .envrc

Test with:

python3 -m puffmatic help

Last but not least, you must grant access to some shell utilities in priviledged mode. Put this in your /etc/doas.conf:

permit nopass user cmd mount
permit nopass user cmd umount
permit nopass user cmd vnconfig
permit nopass user cmd install

If you are concerned about elevated priviledges, create a dedicated user account.

example.com

Once installed, you should explore the example. Go stright to example.com README.md, where you will find further documentation and a tutorial runnable using vmd(8).

The example is "self documenting" in the sense that all elements are covered by adjacent README.md files scattered around.

Enjoy!

Metadata

Release files for puffmatic 0.1.0a6

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

Source distribution (sdist)

Source distribution for puffmatic 0.1.0a6
File Size Uploaded
puffmatic-0.1.0a6.tar.gz 25.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for puffmatic 0.1.0a6
File Interpreter ABI Platform
puffmatic-0.1.0a6-py3-none-any.whl Python 3 none any Details

Total release size: 58.7 kB

Release files / puffmatic-0.1.0a6.tar.gz

Download URL puffmatic-0.1.0a6.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
659623e8b480b51a9d7236251cfebe67866a0b3e683ee4bd11f7db7bcee93ae3
BLAKE2b-256 checksum
How to use checksums
4640d3cee48fbe6816379d98ce2755e76dafbe60048206660103ea84ef63a00b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / puffmatic-0.1.0a6-py3-none-any.whl

Download URL puffmatic-0.1.0a6-py3-none-any.whl
Size 33.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4356cce9eaf4376af470fbfcfdfa26a3ca3af27aa3992139a5b727b0b634cc23
BLAKE2b-256 checksum
How to use checksums
0bda8384631b70a21f4a82ba9ba87b3e6e04706573db273db0f7fcd0130a6e23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11
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