A little Domino container story
If you’re active in the Domino world, it’s unlikely that you missed that we had a little problem 2½ weeks ago. The details of the problem are still a bit unclear, but from what I heard, it has to do with a counter in a function from the time that Domino was still called Notes and that passed a threshold on 13-12-2024 which made the outcome become negative. The most visible result was in the router, where in many situations mails could no longer be sent. The problem only occurred after a Domino restart, so some servers might still be buzzing happily along without the hotfix. Until the server is restarted…
Anyway, this blog post is not about this problem itself, but this problem caused many servers with outdated Domino versions to urgently need an update, and this is a little story about one of those servers.
Within my company, we had a Domino server that acted as outgoing mail server and had done so for many years. It was running Domino 10 with some fixpack on CentOS 7. There’s two of pieces of software, which have run out of support quite a while ago, but it was still doing its job just fine. Obviously, my company wasn’t paying for extended support for Domino 10, so just installing a hotfix was out of the question. The server needed a serious upgrade.
What was handy, was that the /local directory was on it’s own partition. I highly recommend always doing so when you install a new server. It makes upgrading a lot easier when data and OS are on separate partitions. My colleagues had asked me to update the server. As I was low on time, I chose what was fastest for me. I did first try to upgrade CentOS 7 to AlmaLinux 8, and from that experience I can recommend against that. In theory, it could work, but it often doesn’t, it costs time and of course AlmaLinux 8 still can’t run Domino 14. After I quit that attempt, things went pretty fast.
What I did was reboot the machine and booting it from an AlmaLinux 9 boot image. This image allowed me to do a network install of the latest version of AlmaLinux 9. Of course, I had first checked if there was anything that needed to be kept on the OS partition, but there was nothing of interest there. So I removed the OS partition and did a fresh minimal install of AlmaLinux 9. After the new OS had booted, I mounted the separate partition as /local and added it to the /etc/fstab. This took about 30 minutes. So now I had a fresh new server with a Domino data directory, but no Domino binaries. This is where Domino containers shine. Speed of installation and upgrades afterwards. I installed git and cloned the Domino startscript and Domino container scripts and installed all necessary software to run a Domino container by using the curl command that I mentioned in this article. I went to the HCL’s my software portal, got myself an API key, installed domdownload and configured the token (domdownload -token). From there, I could just start to build the image. That took about 7 minutes including all downloads.
After the image was built, and before I could start the server, I had to edit the notes.ini. Domino 10 still uses the /opt/ibm/domino/notes/latest/linux program directory. That needed to be changed to /opt/hcl/domino/notes/latest/linux. After that, I could simple start Domino (dominoctl start). The upgrading of the templates and replacing of the design of the Domino directory all happened automagically. Everything worked out of the box.
It took me less than an hour from booting from the AlmaLinux boot image to running the Domino server to upgrade a Domino 10 server on CentOS 7 to Domino 14.0 FP3 IF2 on AlmaLinux 9. Thanks to the smart scripts and Domino containers. And from here on, I can just upgrade this server’s Domino installation with a downtime of less than a minute by simply building a new image and restarting the Domino server. It just shows how powerful this technology is.
Awesome article!