Manual update
Use this page when the update cannot be done from the admin portal: the portal or eurion-updater is not working, the server is offline and you prefer the command line, or support asks you to run a step by hand.
All commands run on the server as root (with sudo).
Install an update file with eurion-ctl
This is the same installation the portal does, with the same backup, checks and automatic rollback.
Transfer the file to the server:
bashscp eurion-update-1.6.4.tar admin@server.example.se:/tmp/Install:
bashsudo eurion-ctl upgrade /tmp/eurion-update-1.6.4.tareurion-ctlchecks the signature against the keys in the installed kit, unpacks the file under/opt/eurion/updates/and runs the bundle's own installation script. You see the versions and confirm withy.Follow the log if you like, in another window:
bashsudo tail -f /opt/eurion/logs/upgrade-*.log
Flags
| Flag | Meaning |
|---|---|
--yes | Don't ask for confirmation. |
--skip-backup | No backup before the update. A failed update then cannot restore the database. Don't use it unless support asks you to. |
--no-rollback | Don't roll back automatically if something fails; leave the server as it is for troubleshooting. Roll back later with eurion-ctl rollback-update --restore-db. |
Unsigned bundles
eurion-ctl upgrade refuses to install bundles that are not signed by Eurion. The --allow-unsigned flag is for development only. Never use it on a production server.
Run the bundle's installation script directly
If eurion-ctl is missing or broken, you can run the script that ships with every update file:
mkdir -p /tmp/eu
tar -xf /tmp/eurion-update-1.6.4.tar -C /tmp/eu
sudo /tmp/eu/apply-update.shThe script takes the same flags as above (--yes, --skip-backup, --no-rollback). It checks the checksums but not the signature. Check the signature yourself first:
sudo bash /opt/eurion/deploy/scripts/verify-bundle.sh /tmp/eurion-update-1.6.4.tar \
--keys-dir /opt/eurion/deploy/keysThe output must start with OK. On BAD SIGNATURE or UNSIGNED: do not install; contact support.
Remove /tmp/eu when the update is finished.
Go back to the previous version
sudo eurion-ctl rollback-update # the database is kept
sudo eurion-ctl rollback-update --restore-db # also restores the backup from before the updateConfirm with YES. The difference is explained in Updating from the admin portal. To skip the question, add --yes.
Without eurion-ctl:
sudo bash /opt/eurion/deploy/scripts/apply-update.sh --rollbackRun the kit by hand
If an update stopped halfway and the automatic rollback did not succeed, you can run the kit directly. These are the same Ansible playbooks that the installation and the updates use. Only run them if you know which version is in /opt/eurion/deploy:
grep eurion_version /opt/eurion/deploy/generated/group_vars/all.ymlThe upgrade playbook
Migrates the databases and switches to the version in generated/group_vars/all.yml. The images for that version must already be loaded (docker images | grep eurion-gateway).
cd /opt/eurion/deploy
sudo ansible-playbook -i generated/inventory/hosts.yml ansible/upgrade.yml \
-e @generated/group_vars/all.yml -e @generated/group_vars/secrets.ymlThe full installation again
Rewrites all configuration and starts what has changed, for the version in all.yml. Data and passwords are not affected.
cd /opt/eurion/deploy
sudo ansible-playbook -i generated/inventory/hosts.yml ansible/site.yml \
-e @generated/group_vars/all.yml -e @generated/group_vars/secrets.ymlOnly configuration and containers, without system packages and the backup:
sudo ansible-playbook -i generated/inventory/hosts.yml ansible/site.yml \
-e @generated/group_vars/all.yml -e @generated/group_vars/secrets.yml \
--tags configure,deployA previous kit
Before every update the old kit is kept in /opt/eurion/deploy.prev, and after a failed update the new one in /opt/eurion/deploy.failed. eurion-ctl rollback-update uses deploy.prev; don't move these directories yourself unless support asks you to.
Offline server
With updates.channel_url: "" you install updates either by uploading the file in the portal (see Offline server) or with eurion-ctl upgrade as above. The signature is checked the same way in both cases.
The update file contains Eurion's own images. Third-party images that are new in a version are downloaded from the internet; a server with no internet access at all needs them loaded beforehand with docker load. Contact support before you update such a server.
After a manual update
sudo eurion-ctl status
sudo docker ps --filter health=unhealthy --filter status=restarting # must be empty
tail -n 5 /opt/eurion/logs/upgrade-history.logupgrade-history.log has one line per successful update. System Updates in the portal shows the installed version.