Server Migration with Networked Storage

These instructions explain how to migrate your Posit Connect installation from one set of provisioned servers or virtual machines (VMs) to another.

These instructions only apply when you are using PostgreSQL and the Connect variable data is stored on a networked file system.

Prerequisites

These steps can be performed on the target server(s) while your existing Connect installation is active and running.

  1. Target server(s) running a supported Linux distribution.

    If deploying to multiple servers, they must all use the same Linux distribution version and install the same system libraries.

  2. Either root or sudo access on the current and target Connect servers.

    Managing the Connect service and its configuration requires elevated privileges.

  3. Upgrade Connect, if necessary.

    Confirm that the version of Connect on your current server matches the product version you intend to use on the target servers. Separate product upgrades from changes to your infrastructure.

  4. Install Python, R, and Quarto.

    Mirror the currently installed versions of Python, R, and Quarto on the target server(s).

    Most installations will use this guidance:

    Each target server must have the same versions of Python, R, and Quarto.

  5. Install system packages.

    Install system packages onto the target server(s) that are installed on the active server(s). These system dependencies are required by many Python and R packages.

    Some content will fail to run without the appropriate system libraries.

  6. Create the Unix users and groups used by Posit Connect.

    The Applications.RunAs user and the Applications.SharedRunAsUnixGroup group must exist on the target server(s).

    If the Applications.SharedRunAsUnixGroup group has members other than Applications.RunAs user, those accounts are probably used when running content. Create those Unix accounts on the target server, as well.

    Tip

    It is recommended, though not required, that user and group identifiers (uid and gid) are consistent between the old and new servers.

  7. A Connect API key for an administrator account.

    You will use this API key to clear the runtime caches and optionally rebuild content after starting Connect in the new environment.

Workflow

Step 1: Stop Connect (old)

sudo systemctl stop rstudio-connect

Step 2: Configure Connect

Transfer the /etc/rstudio-connect/rstudio-connect.gcfg configuration from the old server(s) to the new one(s). Make sure that the networked file system is available at the same location on the new server(s).

Step 3: Install Connect (new)

Install Posit Connect on the target server(s). Use the same Connect version that is already in use on the old server(s).

Step 4: Route traffic

Adjust your infrastructure so your Connect requests are routed to and serviced by the new Connect server(s).

Step 5: Clear runtime caches & rebuild content

The content runtime caches containing the Python and R package dependencies for your content are incompatible with the Linux distribution and system libraries available on the new server.

You MUST clear these runtime caches and rebuild your deployed content.