Upgrading X-Road Metrics packages when upgrading Ubuntu 20.04 to 22.04
This document describes the steps required to upgrade X-Road Metrics packages on Ubuntu 20.04 LTS host to Ubuntu 22.04.
Refer to https://nordic-institute.atlassian.net/wiki/spaces/XRDKB/pages/82313217 as a base document for in-place upgrades.
Preparations
Review the Ubuntu release notes and upgrade instructions: https://discourse.ubuntu.com/t/jammy-jellyfish-release-notes/24668
Update all packages to the latest versions:
sudo apt update && sudo apt full-upgradeRecommended: Make sure that you have an up-to-date backup (or virtual machine snapshot) of the server and database
For MongoDB database backup see https://www.mongodb.com/docs/manual/core/backups/#:~:text=You%20can%20create%20a%20backup,an%20exact%20moment%20in%20time.
For PostgresSQL database backup see https://www.postgresql.org/docs/12/backup.html
Gradually migrate MongoDB 4.4 to 5.0, then to 6.0 as https://www.mongodb.com/docs/upcoming/release-notes/6.0-upgrade-standalone/#upgrade-recommendations-and-checklists suggests. Ensure all needed roles are given to MongoDB admin user:
mongo
use admin
db.auth(“root”)
db.grantRolesToUser("root", [{ role: "clusterMonitor", db: "admin" }])
db.grantRolesToUser("root", [{ role: "clusterAdmin", db: "admin" }])Upgrade MongoDB from 4.4 to 5.0 https://www.mongodb.com/docs/manual/release-notes/5.0-upgrade-standalone/
Check Feature Compatibility Version:
mongo
use admin
db.auth(“root”)
db.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})
# should return { "featureCompatibilityVersion" : { "version" : "4.4" }, "ok" : 1 }Edit
/etc/apt/sources.listand comment out the repository setting for Ubuntu 20.04 and MongoDB 4.4:
# deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverseAdd key:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv b00a0bd1e2c63c11Add repo for MongoDB 5.0:
sudo apt-add-repository "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse"
sudo apt updateStop MongoDB:
sudo systemctl stop mongod.serviceUpgrade MongoDB to 5.0:
sudo apt upgradeStart MongoDB:
sudo systemctl start mongod.serviceSet Feature Compatibility Version:
mongo
use admin
db.auth(“root”)
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )Upgrade MongoDB from 5.0 to 6.0 https://www.mongodb.com/docs/upcoming/release-notes/6.0-upgrade-standalone/#upgrade-a-standalone-to-6.0
Edit
/etc/apt/sources.listand comment out the repository setting for Ubuntu 20.04 and MongoDB 5.0:
# deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverseAdd key:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 6a26b1ae64c3c388Add repo for MongoDB 6.0:
sudo apt-add-repository "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse"
sudo apt updateStop MongoDB:
sudo systemctl stop mongod.serviceUpgrade MongoDB to 6.0:
sudo apt upgradeStart MongoDB:
sudo systemctl start mongod.serviceSet Feature Compatibility Version:
mongosh
use admin
db.auth(“root”)
db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )Recommended: mark xroad-metrics-* deb packages as hold to prevent it from being updated/removed
echo "xroad-metrics-collector hold" | sudo dpkg --set-selections
echo "xroad-metrics-corrector hold" | sudo dpkg --set-selections
echo "xroad-metrics-anonymizer hold" | sudo dpkg --set-selections
echo "xroad-metrics-networking hold" | sudo dpkg --set-selections
echo "xroad-metrics-opendata hold" | sudo dpkg --set-selectionsOptional: mark MongoDB deb packages as hold to prevent them from being updated/removed
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-database hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-mongosh hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selectionsStop X-Road Metrics services
Systemd services:
sudo systemctl list-units "xroad-metrics-*"
sudo systemctl stop xroad-metrics-correctorCron-based tasks:
sudo service cron stopUpgrading Ubuntu 20.04 to 22.04
Install
update-manager-coreif it is not already installed.Make sure the Prompt line in
/etc/update-manager/release-upgradesis set to 'lts'Launch the upgrade tool with the command
sudo do-release-upgradeFollow the on-screen instructions.
When the upgrade is finished, reboot when prompted.
Upgrade PostgreSQL database
Upgrade MongoDB
If MongoDB deb packages were marked to hold:
echo "mongodb-org install" | sudo dpkg --set-selections echo "mongodb-org-database install" | sudo dpkg --set-selections echo "mongodb-org-server install" | sudo dpkg --set-selections echo "mongodb-mongosh install" | sudo dpkg --set-selections echo "mongodb-org-mongos install" | sudo dpkg --set-selections echo "mongodb-org-tools install" | sudo dpkg --set-selectionsAdd repository for MongoDB 6.0 on Ubuntu 22.04:
sudo apt-add-repository "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse"
sudo apt updateStop MongoDB:
sudo systemctl stop mongod.serviceDo upgrade:
sudo apt upgradeStart MongoDB:
sudo systemctl start mongod.serviceUpgrade X-Road Metrics packages
Remove package holding:
echo "xroad-metrics-collector install" | sudo dpkg --set-selections
echo "xroad-metrics-corrector install" | sudo dpkg --set-selections
echo "xroad-metrics-anonymizer install" | sudo dpkg --set-selections
echo "xroad-metrics-networking install" | sudo dpkg --set-selections
echo "xroad-metrics-opendata install" | sudo dpkg --set-selectionsAdd apt repository:
sudo apt-add-repository "deb https://artifactory.niis.org/xroad-extensions-release-deb jammy main"
sudo apt updateUpgrade X-Road Metrics packages:
sudo apt upgradeStart X-Road Metrics services
Systemd services:
sudo systemctl list-units "xroad-metrics-*"
sudo systemctl start xroad-metrics-correctorCron-based tasks:
sudo service cron start