Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


The stable release of CentOS 7 has reached its end of life. Therefore it was needed to move GreenLight to a new Operating System.

...

Note
  • GreenLight 5 comes as a new virtual appliance
  • Upgrading from 4.5.x  to v5 release requires is a side-by-side migration (no in-place upgrade possible)

...


What will be migrated

  • Database
  • Notes User ID and password file
  • names. nsf
  • license file
  • general container config files

...

On New Appliance, please make sure that the following is checked and prepared:

Info
  • Basic Setup the new appliance and perform make sure that the basic setup tasks have been performed on new appliance: hostname Hostname, DNS, partitioning, …

  • Database Size:
    /opt/panagenda/pgdata should pgdata should be the same size at least, but will need more than on the old appliance, since the backup file will be stored there as well. How to adjust partitions
    • Rule of thumb: [new pgdata disk required free] = [old pgdata disk used] *1.3

  • /opt/panagenda/appdata should be the same size

...

Info
  • Make sure you have uploaded the new GreenLight license file (the file will be automatically copied over during the migration). Please contact support@panagenda.com in order to get an updated license file.

  • Make sure you have at least GreenLight Version >= 4.5.x installed



Prepare New Appliance

The new appliance should most likely use much of the same fundamental container config as the old one.

Code Block
# Old Appliance: check for custom config (e.g. CORS settings, ...)
cat /opt/panagenda/appdata/gl/config


 This file may not exist, please create it on the new appliance if necessary. Attention on host name change!

Code Block
# New Appliance: update custom config based on entries from the old appliance
vim /opt/panagenda/appdata/gl/config


You might stumble across a mistake here that we previously had in our config. Docker ignored it in the past, but now flags it and our app won’t start. Please check for this and correct!

1)    These network config parameters are optional and will not be there in most customer installations. Our default subnets are 192.168.237.0 and 192.168.238.0 and they will come out of the config.default file. Should this subnet config exist in customer environments thought, we need to correct the subnet format and bring the two parameters along (DOCKER_BRIDGE + NETWORK_SUBNET)

2)    There might also be a parameter PANAGENDA_DOCKER_STORAGE_DRIVER present. DO NOT copy this over. Just leave the whole line out. The new appliance has a much newer docker version with a new storage driver for performance and OS compatibility.

Image Added


Code Block
# New Appliance: bring config changes into effect
gl start


Check if everything comes up properly and the containers run normally (docker ps). If it looks good, you can check the postgres container if the subnet settings have been applied successfully.

Code Block
# New Appliance: check postgres container
docker inspect gl_postgres

Near the end of the output you should see something like the following:  "IPv4Address": "172.18.0.2"


Here the subnet config and the hosts individual IP come together.

Code Block
# Stop all containers, except postgres
docker stop gl_nginx gl_tomcat gl_data_miner gl_metabase gl_cron -t 120



Prepare Old Appliance

Please execute the following commands on the console of the old appliance

Code Block
# define the name of the postgres container
PGCONTAINER=gl_postgres

# create database user for the migration
docker exec -u postgres $PGCONTAINER psql postgres -c "CREATE ROLE migrator WITH SUPERUSER LOGIN REPLICATION PASSWORD 'panagenda'"

# check if listening properly
netstat -tlpn


The last command should show 0 0.0.0.0:5432 in state LISTEN

Image Added


Now, lets stop all containers (except the database) on the old appliance

Code Block
# Stop all containers, except postgres
docker stop gl_nginx gl_tomcat gl_data_miner gl_metabase gl_cron -t 120


Config Migration

On Old appliance: create the backup

Code Block
# go to volumes folder
cd /opt/panagenda/appdata/volumes/

# pack an archive with everything and store it in /root/
tar -czvf /root/appdata.tar.gz gl nginx ./notes/names.nsf ./notes/user.id*


On New appliance: restore the backup

Code Block
# go to volumes folder
cd /opt/panagenda/appdata/volumes/

# rename default names.nsf
mv ./notes/names.nsf ./notes/names.orig_nsf

# copy the file over (replace OLDHOST with hostname/ip of the old appliance)
scp OLDHOST:/root/appdata.tar.gz /root/

# extract files (will be placed in correct folders automatically)
tar -xvzf /root/appdata.tar.gz

# clean-up (optional)
rm -f /root/appdata.tar.gz


Database Migration

On New appliance

Execute the statements in this chapter from a command line via VNC if possible! (SSH sessions  - putty -  might be interrupted)

Code Block
# execute the DB Migration Script
/opt/panagenda/appdata/system/db-migration.sh
  • Select  "2" - for GreenLight
  • Enter "y" to confirm that you have a received already a new license file from panagenda
  • Select "1" - to perform a full backup and restore
  • Enter "y" to delete the default (empty) database on the new appliance
  • Enter "y" to start Greenlight after the migration is complete

Image Added


Whenever done, the new Appliance is up and running and you can make use of it.

The Old Appliance can be switched off


Start GL on new appliance

In case you have chosen that GreenLight should not start after the migration is complete (last item in the previoud chapter) you need to manually start it.

Code Block
# restart all GL containers:
gl start