Virtualmin and Beastie are friends at last!

Howdy all,

I have just seen, with my own two eyes, a complete and successful (OK, one caveat), installation of Virtualmin on FreeBSD 7.0-RELEASE.

So, without further ado, let’s get down to the gritty details:

FreeBSD installation works quite a bit differently than it does on the supported Linux platforms, due to dramatic differences in the way package management is handled on FreeBSD. This is an important distinction, because it requires far more active participation on the part of the administrator of the system–there are many things that cannot be safely automated on a FreeBSD system. So here’s how things get installed:

ports

We use ports to install several of the packages that we rely on. Specifically, Apache, Subversion, ProFTPd, saslauthd, Postfix, and some of the related modules. This means you must have an up to date ports tree on your system–if you don’t have ports at all, the install script will use portsnap to download it for you (which is very time-consuming, but necessary). If you have ports, but it is old, you’re in trouble. So, if you installed the ports tree during OS installation, you need to use portsnap (or the older csup) to get the latest version of the ports tree.

pkg_add

For all of the stuff for which we can reasonably use the pkg version, we use pkg_add with the remote flag to install the packages. Unfortunately, it isn’t always possible to detect failures or successes reliably from pkg_add…so, if something goes wrong, you might not know about it until you try to use the tool. Our Configuration Check in Virtualmin will spot almost all of the problems that can arise…so feel free to ask questions if your install seems to succeed, but the configuration check fails.

Some of our FreeBSD users wanted us to use ports for everything…but the installation time with an all ports solution is literally hours. It would take until next year to fully debug a system that takes hours to run, so I punted and chose pkg_add for those packages that we don’t need anything special from. You, as the administrator, should feel free to install any other components via ports you like. Virtualmin will not freak out if you do.

wbm

The final package source used is our own wbm modules and tarball installations of Webmin and Usermin. This stage of the installation process also configures the Virtualmin Package Updates module to use our wbm repository for updates to Webmin, Usermin, and all Virtualmin modules and the theme. So, we take care of our bits, and it’ll be your job to take care of FreeBSD’s bits (I like freebsd-update for the pkg portion of the equation).

Running the installation on FreeBSD is identical to installation on Linux distributions–it’s even the same script. Download the install.sh script, and run it. Note that it is a sh script so you’d run it with:

sh install.sh

Wait a while (about an hour), and then login to Webmin and check out the results. Holler if anything blows up.

Note: All of our warnings about never running install.sh on anything other than a freshly installed OS go doubly for FreeBSD. Because pkg and ports software installations are somewhat sensitive to the existence of pre-installed packages and cannot handle dependencies in the event a conflicting package is installed, running it on anything other than a freshly installed and updated OS is very likely to fail and break anything you already had installed. Do not take this warning lightly. I won’t feel sorry for you (OK, maybe a little) if you run it on your production server and everything falls apart. Just don’t do it.

Note deux: It is only tested on FreeBSD 7.0 RELEASE on the i386 platform. It is expected to work on any other architecture, but almost certainly not on earlier versions of FreeBSD.

Note trois: This marks the end of the Early Adopter development period. In 30 days the Early Adopter discounts come to an end. If you like cheap Virtualmin Professional licenses, you have until June 5th to purchase them. There will be further warnings about the on the front page, but I’ve already marked the end in the shopping cart…the countdown has begun.

Oops, I forgot the one caveat:

ProFTPd is broken on FreeBSD 7.0, when installed from both pkg_add and ports. I don’t know how to fix it. So ProFTPd is currently non-working. I’m still working on getting a working install of ProFTPd. The problem is a library mismatch with openssl. I presume the FreeBSD developers will fix it at some point in the not too distant future.