Skip to end of metadata
Go to start of metadata

Overview

The procedure to upgrade Mission Control depends on your installation type. We strongly recommend reading through this page before proceeding with your upgrade. Detailed upgrade instructions are provided below for the following installation types:

  • Docker 
  • Standalone ZIP file 
  • CentOS
  • Ubuntu
  • Red Hat
  • Debian
Page Contents


Download

You can download the latest version of Mission Control in all its formats from its  download page on JFrog Bintray.


MongoDB Migrated to PostgreSQL in Mission Control 3.4

From Mission Control 3.4, MongoDB has been replaced with PostgreSQL to store data. During the upgrade to Mission Control 3.4, the migration process is performed automatically behind the scenes but varies depending if the database was internal or external. The minor differences in the migration process for internal and external databases are described as follows.

Upgrading from an Internal MongoDB to PostgreSQL

1. Upgrade and start Mission Control services by following the upgrade process for your installer
2. The Installer control script is repsonsible for starting MongoDB and Postgres along with the other services.
     The Mission Control application automatically migrates the data from MongoDB to PostgreSQL.
4. MongoDB can be disabled before performing  the next upgrade in the environment file:

export INSTALL_MONGO=NOT_APPLICABLE

Upgrading from an External MongoDB to PostgreSQL

1. Upgrade Mission Control by following the upgrade process for your installer
2. Verify if mongodb and postgres details are correct in the environment file
3. Verify the old MongoDB and new PostgresSQL are up and running.
4. Start the Mission Control services.
     The Application will migrate data from MongoDB to PostgreSQL.
6. MongoDB can be stopped once the migration process is complete.

Docker Upgrade

To upgrade Mission Control that is run as a Docker installation, please refer to Installing with Docker


Standalone Upgrade

This section describes how to upgrade Mission Control installed from a standalone ZIP file. Depending on the version you are upgrading to, you may need to perform preliminary actions before proceeding to the main upgrade steps as described in the links below:

Upgrading Mission Control

 Upgrading to version 3.4 and above...

Prerequisites for version 3.4 and above

From version 3.4, starting from Mission Control v3.4 MongoDB is replaced with PostgreSQL to store all data.

 Upgrading to version 3.1.0 and above...

Prerequisites for version 3.1.0 and above

From version 3.1.0, Mission Control is available as a standalone ZIP installation. To upgrade to this version or above using the standard ZIP installation, you need to make sure you have the following tools installed and running:

  1. Elasticsearch v6.1.1
  2. MongoDB v3.2.6



Upgrading Mission Control is a simple process during which all of your instance data, repository data and configuration scripts remain intact.

Upgrading Mission Control involves the following steps:

  1. Stop the existing services.

    $MC_HOME/bin/jfmc.sh stop
  2. Extract the contents of the Mission Control installation ZIP file.

    unzip jfmc-<version>.zip
  3. If you have modified either of $MC_HOME/etc/mission-control.properties or $MC_HOME/etc/logback.xml, save a copy of these files in a temporary location.
  4. Copy the contents of the extracted installation ZIP file to the current installation directory.

    cp -fr jfmc-<version>/* $MC_HOME/
  5. If you saved a copy of $MC_HOME/etc/mission-control.properties or $MC_HOME/etc/logback.xml in a temporary location, copy them back to $MC_HOME/etc.
  6. Verify that your environment files ($MC_HOME/data/setenv.sh or $MC_HOME/scripts/setEnvDefaults.sh) are correctly configured for your Elasticsearch and MongoDB (removed in 3.4.x) and Postgres  installations.
  7. From Mission Control 3.4, MongoDB is replaced with PostgreSQL to store data. Follow the postgreSQL steps described in the 3rd party binaries or commands to setup manually on running postgSQL section to create users, the database and schema.
  8. Start Mission Control.

    $MC_HOME/bin/jfmc.sh start

Centos or Red Hat - RPM Upgrade 


Stop Mission Control services before upgrade

Mission Control 2.x used nginx and php-fpm to run one of the micro services, this service was rewritten in GO in version 3.x. Make sure to stop Mission Control services by following the below instructions before upgrading to 3.x. 

To upgrade Mission Control on Centos or Red Hat, download the latest version and browse to its location on your file system.

  1. Set yourself as the super user.

    sudo su
  2. Stop the Mission Control service according to the version of Mission Control that is currently running.

     For Mission Control 2.1.1 and above ...
    /opt/jfrog/mission-control/scripts/jfmc.sh stop
     For Mission Control 2.0 to 2.1.0 ...
    /opt/jfrog/jfmc/scripts/jfmc.sh stop 
  3. Extract the upgrade archive and execute the upgrade.

    tar -xvf jfmc-rpm-<version>.tar.gz
    cd jfmc-rpm-<version>
    ./installJFMC-rpm.sh
  4. Start the upgraded installation.

    /opt/jfrog/mission-control/scripts/jfmc.sh start

Externalizing a Database?

Mission Control gives you the option to externalize one or more of its databases during an upgrade.

To externalize a database, when prompted with Perform a standard Installation? [Y/n]: , respond with "n" and then follow the prompts as described in Using External Databases

Upgrading from Mission Control 2.x to 3.2 - Accommodating changes to Elasticsearch

JFrog Mission Control uses an Elasticsearch database to store data for Graphs.

  • Mission Control v2.x uses Elasticsearch v5.6.2. The default location to store data is under  /var/lib/elasticsearch.
  • Mission Control v3.x uses Elasticsearch v6.1.1. The default location to store data is under  /usr/share/elasticsearch.

To prevent loss of graph data when upgrading Mission Control from version 2.x to version 3.x, once you have completed the upgrade process, you need to modify the path where Elasticsearch finds the data according to the instructions below:

  1. Stop Mission Control

    /opt/jfrog/mission-control/scripts/jfmc.sh stop
  2. Edit the /etc/elasticsearch/elasticsearch.yml file and update path.data to /var/lib/elasticsearch
  3. Start Mission Control

    /opt/jfrog/mission-control/scripts/jfmc.sh start

    Generation of graphs runs on a scheduled job every 15 minutes. After modifying the path to the graph data, migration of the data and regeneration of graphs will occur on the next run of the scheduled job.



Upgrading on Debian or Ubuntu


Stop Mission Control services before upgrade

Mission Control 2.x used nginx and php-fpm to run one of the micro services, this service was rewritten in GO in version 3.x. Make sure to stop Mission Control services by following the below instructions before upgrading to 3.x. 

To upgrade Mission Control on Debian or Ubuntu, download the latest version and browse to its location on your file system.

Set yourself as the super user

sudo su

Stop the Mission Control service according to the version of Mission Control that is currently running:

 For Mission Control 2.1.1 and above ...
/opt/jfrog/mission-control/scripts/jfmc.sh stop
 For Mission Control 2.0 to 2.1.0 ...
/opt/jfrog/jfmc/scripts/jfmc.sh stop 


Extract the upgrade archive and execute the upgrade:

tar -xvf jfmc-deb-<version>.tar.gz
cd jfmc-deb-<version>
./installJFMC-deb.sh

Start the upgraded installation:

Centos Upgrade
/opt/jfrog/mission-control/scripts/jfmc.sh start

Externalizing a Database?

Mission Control gives you the option to externalize one or more of its databases during an upgrade.

To externalize a database, when prompted with Perform a standard Installation? [Y/n]: , respond with "n" and then follow the prompts as described in Using External Databases


Upgrading With Docker Compose

Upgrading a Docker Installation

Upgrading a Docker installation using the Docker Compose installer is not currently supported. To upgrade a Docker installation, please refer to Docker Upgrade.  

 The following instructions show you how to upgrade JFrog Mission Control that was installed using the Docker Compose installer. In these instructions, we use "jfmc" as the project name.

  1. Stop the services by loading the current setenv.sh.

    source ./setenv.sh && docker-compose  -f ./jfmc-compose.json -p jfmc stop
  2. Download and extract the latest version of jfmc-compose-<version>.zip installer in a new directory.

    unzip jfmc-compose-<version>.zip
  3. Compare and merge content from newly downloaded setenv.sh and jfmc-compose.json with current setenv.sh and jfmc-compose.json

    Upgrading from version less than 3.4

    From Mission Control version 3.4, MongoDB is replaced with PostgreSQL to store data. Follow the postgresql steps described in the Installing with Docker Compose section to create users, the database and schema.

  4. Refer prepare mounted directories section in standard installation to setup directories for default (or custom) UID and GID.
  5. Load the merged setenv.sh.

    source ./setenv.sh

    Reload required

    You need to reload the setenv.sh file and restart services every time a value of an environment is modified.

    source ./setenv.sh
    docker-compose  -f ./jfmc-compose.json -p jfmc down
    docker-compose  -f ./jfmc-compose.json -p jfmc up -d
  6. Launch the Mission Control services.

    Upgrading from version less than 3.4

    Verify mongoDB and PostgreSQL are part of the jfmc-compose.json, mission-control application will take care of migrating data between them on startup.

    MongoDB entry can be removed from jfmc-compose.json once the migration is complete (make sure to remove it from depends_on node of all services).

    docker-compose  -f ./jfmc-compose.json -p jfmc up -d
  7. Initialise elastic search guard plugin,

    docker exec -it jfmc_elasticsearch_1 bash -c "cd /usr/share/elasticsearch/plugins/search-guard-6/tools; ./sgadmin.sh -p ${ELASTIC_TRANSPORT_PORT} -cacert root-ca.pem -cert sgadmin.pem -key sgadmin.key -nhnv -icl -cd ../sgconfig/"



  • No labels