Last night I upgraded the main jail server in my lab from FreeBSD 9.3 to FreeBSD 10.1. I just started using the term, home lab, after discovering http://www.reddit.com/r/homelab/. That server contains, amongst other things, these jails:
- my development environment for http://dev.freshports.org/
- my in house webserver, which hosts the above mentioned website
- my svn repo
- an installation of ElasticSearch and Kibana (ELK)
- an Nginx for web proxy
- 21 instances of Bacula for tutorial sessions
- my bacula server
In addition, the main host supplies:
- my main PostgreSQL server
- my poudriere build
The upgrade order
Upgrades were performed in this order:
- Upgraded the host system from FreeBSD 9.3 to FreeBSD 10.1.
- Ran a poudriere bulk to build packagedsfor this system and its jails.
- Ran pkg upgrade on the host.
- Ran pkg upgrade from within each jail.
- Restarted the host (which happens to restart all the jails
Ideally, I would like to have all the packages ready to go immediately after upgrading the host OS. poudriere can only build for OS versions older, or equal to, what is running on the host. poudriere runs in jails, and you can’t run a jail for an OS version newer than the host OS. In general, you can’t build for an OS version newer than what you’re running; you can build for yourself or older versions.
An idea for building packages before upgrading
I have an idea. Before upgrading the host, run an instance of FreeBSD 10.1 via bhyve and build the new packages there.
If I was doing this again, I would install bind from ports and have that running before upgrading to FreeBSD 10.1. This is because bind was removed from the base system.
If I was doing this again, I would recompile nagios-plugins to use bind from ports before upgrading. I use the check_dns plugin which needs nslookup, which is provided by bind.