I hate computers

So after upgrading to the a bit beta-y FreeNAS 11.2 (BETA1), I was happy at first because everything worked well. The switch from warden to iocage gave me an opportunity to set up fresh jails with less “is this how you install ports?”-baggage and stuff, and since my jails were leftovers from FreeNAS 9.3, it was time for an upgrade anyway.

After I set up all the things using the iocage jails running in 11.2, I ran into the first issue: A bug that caused iocage to be confused about OS version, thinking its host is 11.1, which meant the 11.2 jails wouldn’t run. After way too much tinkering and googling I managed a dirty fix (manually editing the jails config.json to make it think it’s 11.1), but that bug was fixed in BETA2 and all was well.

Then the next fuckup: iocage creates its own dataset for config and jails, and that dataset was stored on my secondary ZFS pool which is an external HDD I only have plugged in for testing/outsourcing/buffer stuff, so that was no good.
I tried various things to migrate iocage to the proper pool, but it didn’t really work and I just gave up and recreated all my jails on the now moved iocage dataset. Good thing I started documenting all the things I needed to do/install in a text file in case that happened again, because today, just a few days after the second “I gotta reinstall everything”, I tried upgrading my NAS’ RAM, but learned the hard way that my RAM was not supported. Soooo, yeah, reinstalling the old RAM, reboot, no biggie, right?

Right. For some reason or another, some of the iocage shenanigans from the previous issue seemed to trickle down, I don’t really know what happened but iocage ate all it’s jails. It was still active on the correct pool/dataset, but all the jail folders were empty for fuck knows what reasons.

So yeah, I reinstalled everything again. By this point, it only takes me about an hour to reconfigure and reinstall all the things. Here’s the rough list:

  • Create 3 jails:
    • plex
    • lobby (for sonarr, radarr, tautulli, general purpose stuff)
    • jackett
  • Install resilio sync plugin (because there’s no pkg available and I’m lazy)
  • Create mount points for media and appdata dataset for each jail. The latter stores application data and some config backups
  • In all jails, install nginx, set up reverse proxies for all services to be neat in my LAN
  • Install all the things
  • In some cases, move modified rc-scripts into place (/us<TAB>loc<TAB>rc.d/ is engrained in my hands now)
  • reconfigure resilio sync
  • reconfigure syncthing
  • set up ssh in lobby and plex again

… That’s it, roughly. And boy do I wish I had the time to learn how to automate all that shit with iocage, because I know it’s possible… somehow.