This is a page where I want to track different methods of managing large installs. Currently I have 3 sites with ~30 machines in each site. In each site I have a few machines of different classes, for example DNS, Web, Mail, etc. Each of the machines runs the same src release with a slightly custom kernel (+CARP). So I want to build everything from a build box in one location and have all the other use packages from it.
I have a build machine where I have a Jail for each class of machine where I build packages. This machine is where I build the source as well.
I share the packages via NFS to the machines on the local network. Each machine mounts the directory where the packages of the class has been built. I also rsync them out to a machine in each site that then shares them out via NFS to the clients.
I should be able to setup a webserver on the machine where I build them and use `pkg_add -r' to add packages. I think this would require keeping the ports up to date on all the client machines. (Simon points out that this should just use the Latest/ directory and not require keeping the local ports tree up-to-date).
- Install ezjail from ports on the package build machine.
- Build the jail using ezjail create.
- Start the jail and create /var/ports/packages.
- Install ports in the jail using make package-recursive or portinstall -p
- Setup apache on the build machine with an Alias pointing into the /var/ports/packages dir in the jail like:
- Alias /packages-64bit-dns /usr/jails/dnsjail/var/ports/packages/
- On the client that you install the packages on, set the PACKAGESITE environment variable:
setenv PACKAGESITE http://buildmachine/packages-64bit-dns/Latest/
- pkg_add -r to your hearts content.
Build the kernel/world on one machine and share /usr/src and /usr/obj out via NFS to the machines in the local site. Then I rsync /usr/src and /usr/obj out to a NFS server in the other sites where the clients can mount it from.
FreeBSD Update Server
I have been attempting to setup an internal FreeBSD Update Server, but haven't had much luck. When I run the client it deletes a lot of what is on the file system and renders the system unbootable.