Skip to main content

Quickly generate files and installer images for unattended OpenBSD installation.

Project description

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!

Project details


Download files

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

Source Distribution

puffmatic-0.1.0a6.tar.gz (25.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

puffmatic-0.1.0a6-py3-none-any.whl (33.3 kB view details)

Uploaded Python 3

File details

Details for the file puffmatic-0.1.0a6.tar.gz.

File metadata

  • Download URL: puffmatic-0.1.0a6.tar.gz
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for puffmatic-0.1.0a6.tar.gz
Algorithm Hash digest
SHA256 659623e8b480b51a9d7236251cfebe67866a0b3e683ee4bd11f7db7bcee93ae3
MD5 7be128e048fea8aa9156a4b6cb0234a7
BLAKE2b-256 4640d3cee48fbe6816379d98ce2755e76dafbe60048206660103ea84ef63a00b

See more details on using hashes here.

File details

Details for the file puffmatic-0.1.0a6-py3-none-any.whl.

File metadata

  • Download URL: puffmatic-0.1.0a6-py3-none-any.whl
  • Upload date:
  • Size: 33.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for puffmatic-0.1.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 4356cce9eaf4376af470fbfcfdfa26a3ca3af27aa3992139a5b727b0b634cc23
MD5 da7c64872ac5a9fd72eeb9e9e37abc84
BLAKE2b-256 0bda8384631b70a21f4a82ba9ba87b3e6e04706573db273db0f7fcd0130a6e23

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page