ANTS is a set of tools to structure and manage Plan 9 namespaces to make systems and grids more flexible, reliable, and easy to administer. It supports both the Bell Labs and 9front distributions of Plan 9. ANTS is well suited to cloud based hosting and scripts for use with vultr.com are provided.
Update and Status 25 December 2016
The main ANTS repo, found at
bitbucket.org/mycroftiv/plan9ants has been updated to revision 417 to compile with the December 2016 9front release r5641. I am planning on discontinuing releasing tarballs with pre-compiled kernels, I think everyone who might use ANTS is happier compiling locally. Additional updates coming in 2017. Development can be followed at
bitbucket.org/mycroftiv/antsexperiments
Components
ANTS is a modular toolkit. The components can be used separately:
- New boot script which creates a separate administrative namespace independent of the root fs
- Modified /proc which allows processes to modify each other's namespace via /proc/pid/ns
- Hubfs i/o muxer for persistent shared shells and general purpose network piping
- Namespace modification scripts including rerootwin, a network and rio aware chroot utility
- Progressive venti data replication and fossil cloning scripts to keep multiple roots available
- Grio modified rio with hubfs integration, colors, and customizable command menu
Old ANTS 2.1 release tarball - deprecated
ants2.1.tgz - Old ANTS 2.1 release tarball with source code and compiled kernels
7cffc5f4a6413e5aab510e424b1e13ca61f2aa4e ants2.1.tgz sha1sum
Code repositories
bitbucket.org/mycroftiv/plan9ants - The current release source code repo
bitbucket.org/mycroftiv/antsexperiments - Ongoing development code
QEMU images from 2013
9worker.gz - A tiny image with only the ANTS kernel and tools for the administrative namespace
446979a360ad398bfeddcb8de1f4d458c1bfa7d0 9worker.gz sha1sum
9queen.gz - A fully installed system image
864b0379423d8bc7381ceb2375294e292bca3f50 9queen.gz sha1sum
Documentation, Walkthroughs, Tutorials
9gridchan.org/ants.html - Code, manpages, and the description paper
doc.9gridchan.org/them - Walkthroughs for setting up a full ANTS grid with examples and support scripts for vultr.com [referrer link] hosting
doc.9gridchan.org/antfarm/tutorial - Tutorials for using ANTS features done with the QEMU vm images from 2013
Brief Guide to Installing
Installing from source (hg clone)
Bell Labs
Inside the base ants directory, 'build everything'. This recreates the 9pcram.gz kernel and tools.tgz and you can then follow the instructions above. Note that this will overwrite a pre-existing 9pcram.gz and tools.tgz if you downloaded the .tgz with them prebuilt or have compiled previously.
9front
Inside the base ants directory, 'build 9front'. This recreates the 9ants kernel and builds a new tools.tgz and you can then follow the instructions above. Note this will overwrite a pre-existing 9ants and tools.tgz if you downloaded the .tgz with them prebuilt or have compiled previously.
Full installs to new Qemu instances
If you want to do a full automatic ANTS install into a Qemu vm that has just been set up from the .iso, special build options are provided.
Bell Labs
In the base ANTS directory, do 'build everything' 'build isoinstall' 'cd cfg; stockmod'
9front
In the base ANTS directory, do 'build 9front' 'build 9frontinstall'
vultr hosting
In the base ANTS directory, do 'build vultr'. There is also an option to 'build vultrfossil' which requires hard drive partitioning during install described at
doc.9gridchan.org/them/vultr
Installing pre-built kernel and tools from ants2.1.tgz
Bell Labs
The name of the Bell Labs kernel is 9pcram. A precompiled x86 9pcram.gz is located in the base ants2.1 directory. Copy that kernel to your 9fat partition. You probably also want to copy the tools.tgz to 9fat as well. Modify your plan9.ini to use the new kernel. Setting up a boot menu is recommended. An example configuration is located at doc/PLAN9.INI. Once correct plan9.ini variables are set, your system can be rebooted with the new kernel. Assuming proper configuration, there should be no disruption of your userland and the new ANTS namespace will be accessible via cpu or hubfs. To install the userspace components to the main system, cd to the base ants2.1 directory and 'build labshost'.
9front
The name of the 9front kernel is 9ants. A precompiled x86 9ants is located in the base ants2.1 directory. Copy that kernel to your 9fat partition. You probably also want to copy the tools.tgz to 9fat as well. Modify your plan9.ini to use the new kernel. An example for 9front is located at frontmods/plan9.ini. You may wish to leave bootfile= blank in plan9.ini and choose to use the 9ants or older 9pcf kernel by typing in 'bootfile=9ants' and 'boot' manually. If you are booting to gui, it is necessary to add the following line to the end of your /rc/bin/termrc:
home=/usr/$user; cd; . $home/lib/profile
Once correct plan9.ini variables are set, your system can be rebooted with the new kernel. Assuming proper configuration, there should be no disruption of your userland and the new ANTS namespace will be accessible via cpu or hubfs. To install the userspace components to the main system, cd to the base ants2.1 directory and 'build fronthost'.
------------------------------------------------------
The old 9gridchan.org website and its downloads are still available at
the old site
Plan 9 from Bell Labs and 9front code and modifications are distributed under the preferred licenses for those projects.
Copyright 2015 Mycroftiv
Often found in #plan9chan and other plan 9 related irc channels on freenode
Occasionally reachable by email at mycroftiv at sphericalharmony.com
9gridchan.org - seven years and counting! Thanks to everyone who has participated and helped out with Plan 9 and Inferno and gridding.