From a8dc0befa9f99d0a3cf11cee8b233fc30a3bf49e Mon Sep 17 00:00:00 2001 From: Michael Haak Date: Tue, 11 Jun 2019 22:06:25 +0200 Subject: [PATCH 1/2] Added a basic guide on migrating to another server --- docs/installing.md | 1 + docs/maintenance-migrating.md | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 docs/maintenance-migrating.md diff --git a/docs/installing.md b/docs/installing.md index 90209e57d..78bd1be11 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -39,3 +39,4 @@ Now that the services are running, you might want to: - or [set up the Dimension Integrations Manager](configuring-playbook-dimension.md) - or [check if services work](maintenance-checking-services.md) - or learn how to [upgrade your services when new versions are released](maintenance-upgrading-services.md) +- or learn how to [migrate to another server](maintenance-migrating.md) diff --git a/docs/maintenance-migrating.md b/docs/maintenance-migrating.md new file mode 100644 index 000000000..2487b674e --- /dev/null +++ b/docs/maintenance-migrating.md @@ -0,0 +1,7 @@ +# Migrating to new server + +1. Backup directory `/matrix`. Make sure to preserve owner and permission (use `cp -p`)! +2. Remove old server from matrix-docker-ansible-deploy `hosts` file and add new server. +3. Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all`. This will create the matrix user and group. +4. Copy backup from old server to new server. Make sure to preserve owner and permission (use `cp -p`)! +5. Run `ansible-playbook -i inventory/hosts setup.yml --tags=start` From 8a7b3d5bd0ca7a349ddc1654756d6898ef65d597 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Wed, 12 Jun 2019 09:36:19 +0300 Subject: [PATCH 2/2] Make instructions simpler and safer Changes to the original are: - it tells people to stop and disable services, so that: - services won't be running while you are copying files - services won't accidentally start again later - it does the file-copying in 1 step - it does copying before running `--tags=setup-all`, so that existing files (SSL certificates, etc.) can be reused. Otherwise, the playbook starts from a blank slate, retrieves them anew, generates new signing keys anew, etc. Only to have those replaced by your own old backup later. - it mentions DNS changes - combines `--tags=setup-all,start` into a single step, thanks to the files being already copied --- docs/maintenance-migrating.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/maintenance-migrating.md b/docs/maintenance-migrating.md index 2487b674e..fcfe4e163 100644 --- a/docs/maintenance-migrating.md +++ b/docs/maintenance-migrating.md @@ -1,7 +1,8 @@ # Migrating to new server -1. Backup directory `/matrix`. Make sure to preserve owner and permission (use `cp -p`)! -2. Remove old server from matrix-docker-ansible-deploy `hosts` file and add new server. -3. Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all`. This will create the matrix user and group. -4. Copy backup from old server to new server. Make sure to preserve owner and permission (use `cp -p`)! -5. Run `ansible-playbook -i inventory/hosts setup.yml --tags=start` +1. Prepare by lowering DNS TTL for your domains (`matrix.DOMAIN`, etc.), so that DNS record changes (step 4 below) would happen faster, leading ot less downtime +2. Stop all services on the old server and make sure they won't be starting again. Execute this on the old server: `systemctl disable --now matrix*` +3. Copy directory `/matrix` from the old server to the new server. Make sure to preserve ownership and permissions (use `cp -p` or `rsync -ar`)! +4. Make sure your DNS records are adjusted to point to the new server's IP address +5. Remove old server from the `inventory/hosts` file and add new server. +6. Run `ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start`. This will create the matrix user and group and start all services on the new server