Skip to content

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.

  1. Transfer the file to the server:

    bash
    scp eurion-update-1.6.4.tar admin@server.example.se:/tmp/
  2. Install:

    bash
    sudo eurion-ctl upgrade /tmp/eurion-update-1.6.4.tar

    eurion-ctl checks 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 with y.

  3. Follow the log if you like, in another window:

    bash
    sudo tail -f /opt/eurion/logs/upgrade-*.log

Flags ​

FlagMeaning
--yesDon't ask for confirmation.
--skip-backupNo backup before the update. A failed update then cannot restore the database. Don't use it unless support asks you to.
--no-rollbackDon'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:

bash
mkdir -p /tmp/eu
tar -xf /tmp/eurion-update-1.6.4.tar -C /tmp/eu
sudo /tmp/eu/apply-update.sh

The 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:

bash
sudo bash /opt/eurion/deploy/scripts/verify-bundle.sh /tmp/eurion-update-1.6.4.tar \
  --keys-dir /opt/eurion/deploy/keys

The 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 ​

bash
sudo eurion-ctl rollback-update               # the database is kept
sudo eurion-ctl rollback-update --restore-db  # also restores the backup from before the update

Confirm with YES. The difference is explained in Updating from the admin portal. To skip the question, add --yes.

Without eurion-ctl:

bash
sudo bash /opt/eurion/deploy/scripts/apply-update.sh --rollback

Run 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:

bash
grep eurion_version /opt/eurion/deploy/generated/group_vars/all.yml

The 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).

bash
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.yml

The full installation again ​

Rewrites all configuration and starts what has changed, for the version in all.yml. Data and passwords are not affected.

bash
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.yml

Only configuration and containers, without system packages and the backup:

bash
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,deploy

A 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 ​

bash
sudo eurion-ctl status
sudo docker ps --filter health=unhealthy --filter status=restarting   # must be empty
tail -n 5 /opt/eurion/logs/upgrade-history.log

upgrade-history.log has one line per successful update. System Updates in the portal shows the installed version.

Eurion — communication that runs on your own server.