Upgrade custom-built FreeBSD for whole network

zirias@

Developer
I have the following setup:
  • A single server host machine where I built FreeBSD with some options changed (like not including openssl)
  • A jail on that machine running poudriere for building a package repository
  • Another jail running nginx for serving this repository in the LAN
Now, this works great for packages, all clients in the LAN get them easily. But what about upgrading FreeBSD itself? If I just upgrade the source tree on the host machine and rebuild, what are my options from there?
 
Well, thanks ... I have seen this one a while ago, will probably give it a try. I was hoping there might be a simpler solution, like e.g. convince freebsd-update to update from a memory stick? Would be easy enough for me with just a few machines, and avoid having to build kernel/world on all of them :)
 
Now, this works great for packages, all clients in the LAN get them easily. But what about upgrading FreeBSD itself?
As of right now (time of writing) this isn't officially supported just yet.

But in the upcoming FreeBSD 12 we'll be introduced to PkgBase which will allow us to create packages out of the entire base system, create a dedicated package repository for that which can then be used by other clients to bootstrap the base OS. See the link I shared for more information on this.

Parts of this are already available on 11.2 (according to /usr/src/Makefile anyway) but as said: this isn't officially supported just yet.
 
But in the upcoming FreeBSD 12 we'll be introduced to PkgBase
Very interesting read, thanks! Now I'm unsure whether to give this a try on releng-11.2, not knowing what might happen, or just remember it for now and try to get the update-server mentioned above running :eek:
 
All you need is to mount_nfs src and obj to your other machines.
Simple and pragmatic, thanks, this will do until packaged base is usable :) It works with read-only mounts.

Just a pitfall to avoid: If you build base without some parts, make sure to copy /etc/src.conf to the target system before trying to run the install targets there, otherwise they try to install files that weren't built and fail :)
 
Back
Top