One of OpenBSD’s cool features is the install process itself. It’s fast and customizable.
I often have the need to install identical OpenBSD systems, such as firewalls or cluster members and the install process makes this extremely easy.
Every fileset that you can choose through the OpenBSD installer is a simple tarball that is extracted against the chrooted / of your new system. What makes the OpenBSD installer exiting is that you can roll out your own filesets in exactly the same manor.
You simply create a tarball called siteXX.tgz, where XX equals the OpenBSD release number that you are trying to install, like site41.tgz for OpenBSD 4.1. That tarball could contain configuration files or other stuff that needs to be changed on a particular type of machine. The installer understands suffixes so you can create tarballs called site40-firewall.tgz, site41-webserver.tgz or site41-clusternode12.tgz. Upload them to a FTP or HTTP server that you can reach from the machine that you want to install OpenBSD on and once you have reached the point in the install process where you are prompted for additional filesets you simply tell the installer where to fetch the additional fileset(s).
That’s a pretty nifty feature — but there is more. Once the installer has finished rolling out your tarball it looks for an executable file, install.site or upgrade.site respectively, inside the root directory of the newly installed or upgraded machine and executes that file. You can use them to automatically install extra software, add users or update the source tree which makes them an extremely powerful tool.
Rudimentary backup and restore is another thing that siteXX.tgz files are useful for.
I can install a complete firewall in less then 10 minutes and toss it into production without the need for any manual configuration. That’s impressive.
Once installed, you could use tools like csync2, a very capable cluster synchronization tool, to ensure the consistency of deployed machines.