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. ==== Ports ==== 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. == NFS == 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. == Package Mirror == 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. ==== Source ==== 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. ---- {{tag>HowTo}}