Anita, an Automated NetBSD Installation and Test Application

Anita is a tool for automated testing of the NetBSD operating system. Using anita, you can download a NetBSD distribution and install it in a virtual machine in a fully automated fashion. It's fun to watch, and it has helped find a large number of bugs in NetBSD, as well as several bugs in qemu and other emulators.

The virtual machine anita installs into is typically based on qemu, but the i386 and amd64 ports of NetBSD can also be installed in a Xen domU, and some of the more exotic NetBSD ports use gxemul or simh.

For example, the following command will download, install, and boot NetBSD/i386 10.0 in a qemu virtual machine, and leave you at the login prompt:

   anita interact

The main focus of anita is on testing the sysinst installation procedure and quickly detecting regressions that cause the system to fail to install or boot, but anita is now also finding use as a platform for testing the whole NetBSD system by running the ATF test suite. Output from periodic anita tests of NetBSD-current on multiple architectures can be found on the NetBSD release engineering web pages.

Anita is written in Python and uses the pexpect module to "screen scrape" the sysinst output over an emulated serial console and script the installation procedure.

The set of NetBSD ports supported by anita is growing, and currently includes the following: i386, amd64, sparc, pmax, hpcmips, evbarm-earmv7hf, evbarm-aarch64, vax, alpha, macppc, and riscv-riscv64.

If you know how to manually install some other NetBSD port in an emulator using a serial console, please send a full typescript of the terminal session to the anita author so that support for that port can be added to anita.

Anita fully supports cross-installation setups where the machine running anita is a different architecture from the virtual machine being installed on. Anita has also been successfully used to cross-install NetBSD in virtual machines hosted on operating systems other than NetBSD itself, including FreeBSD, Linux, and Mac OS X.

Here's an animated screenshot of Anita 1.2 installing and booting NetBSD 4.0RC3:

For more information, see the anita(1) man page in the latest anita distribution.

Anita can be installed via pkgsrc as misc/py-anita. Releases can also be downloaded manually here, and the source repository is at github.

[To gson's home page]