Skip to end of metadata
Go to start of metadata

Overview

From Mission Control version 3.3, you can manually install Mission Control using Debian or RPM. This section describes how to install Mission Control microservices directly as Debian or RPM.

The JFrog Mission Control manual RPM or Debian installation can be downloaded from the Mission Control Download Page.

Installation package

Both manual and script installation use the same RPM or Debian tar file.

Installing Mission Control 

Database Requirements

The following databases are required and need to be externalized:

  • Elasticsearch 6.6.0
  • Postgres 9.6.11 


The mandatory installation steps are:

  1. Install Mission Control services

  2. Enable Mission Control services

  3. Set up the Postgres databases
  4. Verify and set the environment variables
  5. Start the Mission Control services
Page Contents


Installing Mission Control Services

Installing Mission Control services on RPM

  1. Login as root.
  2. Extract the jfmc-rpm-<version>.tar.gz.
  3. Install the Mission Control services.

    1. Install JFMC package from downloaded artifact and load default environment variables.

      rpm -ivh jfmc-rpm-<version>/packages/jfmc.rpm
       
      # Load default environment variables
      source /opt/jfrog/mission-control/scripts/setenv.sh
    2. Install Init Scripts.

       Install the Init script as follows:
      # Install init script for each micro service from a template
      # Install jfi-executor,
      cp -f /etc/init.d/jfi-executor /etc/init.d/jfi-executor.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-executor
      chmod a+x /etc/init.d/jfi-executor
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-executor,g;
                 s,__APP_NAME__,insight-executor,g;
                 s,__SERVICE_BIN__,jfi-executor,g' /etc/init.d/jfi-executor
       
      # Install jfi-scheduler,
      cp -f /etc/init.d/jfi-scheduler /etc/init.d/jfi-scheduler.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-scheduler
      chmod a+x /etc/init.d/jfi-scheduler
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-scheduler,g;
                 s,__APP_NAME__,insight-scheduler,g;
                 s,__SERVICE_BIN__,jfi-scheduler,g' /etc/init.d/jfi-scheduler
       
      # Install mission-control,
      cp -f /etc/init.d/mission-control /etc/init.d/mission-control.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/mission-control
      chmod a+x /etc/init.d/mission-control
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,mission-control,g;
                  s,__APP_NAME__,jfmc-server,g;
                  s,__SERVICE_BIN__,mission-control,g' /etc/init.d/mission-control
           
      # Install jfi-insight-server,
      cp -f /etc/init.d/jfi-insight-server /etc/init.d/jfi-insight-server.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-insight-server
      chmod a+x /etc/init.d/jfi-insight-server
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,jfi-insight-server,g;
                  s,__APP_NAME__,insight-server,g;
                  s,__SERVICE_BIN__,jfi-insight-server,g' /etc/init.d/jfi-insight-server

Installing Mission Control services on Debian

  1. Login as root.
  2. Extract the jfmc-deb-<version>.tar.gz file.
  3. Install the Mission Control services.

    1. Install Mission Control package from downloaded artifact and load default environment variables.

      dpkg -i jfmc-deb-<version>/packages/jfmc.deb
        
      # Load default environment variables
      source /opt/jfrog/mission-control/scripts/setenv.sh
    2. Install the Init Scripts. 

       Install the Init script as follows:
      # Install init script for each micro service from a template
      # Install jfi-executor,
      cp -f /etc/init.d/jfi-executor /etc/init.d/jfi-executor.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-executor
      chmod a+x /etc/init.d/jfi-executor
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-executor,g;
                 s,__APP_NAME__,insight-executor,g;
                 s,__SERVICE_BIN__,jfi-executor,g' /etc/init.d/jfi-executor
       
      # Install jfi-scheduler,
      cp -f /etc/init.d/jfi-scheduler /etc/init.d/jfi-scheduler.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-scheduler
      chmod a+x /etc/init.d/jfi-scheduler
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-scheduler,g;
                 s,__APP_NAME__,insight-scheduler,g;
                 s,__SERVICE_BIN__,jfi-scheduler,g' /etc/init.d/jfi-scheduler
       
      # Install mission-control,
      cp -f /etc/init.d/mission-control /etc/init.d/mission-control.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/mission-control
      chmod a+x /etc/init.d/mission-control
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,mission-control,g;
                  s,__APP_NAME__,jfmc-server,g;
                  s,__SERVICE_BIN__,mission-control,g' /etc/init.d/mission-control
           
      # Install jfi-insight-server,
      cp -f /etc/init.d/jfi-insight-server /etc/init.d/jfi-insight-server.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-insight-server
      chmod a+x /etc/init.d/jfi-insight-server
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,jfi-insight-server,g;
                  s,__APP_NAME__,insight-server,g;
                  s,__SERVICE_BIN__,jfi-insight-server,g' /etc/init.d/jfi-insight-server

Enabling Mission Control services

Enabling Mission Control Services on RPM

chkconfig --add jfi-executor
chkconfig jfi-executor on

chkconfig --add jfi-scheduler
chkconfig jfi-scheduler on

chkconfig --add mission-control
chkconfig mission-control on
	
chkconfig --add jfi-insight-server
chkconfig jfi-insight-server on


Enabling Mission Control Services on Debian

update-rc.d jfi-executor defaults
update-rc.d jfi-scheduler defaults
update-rc.d mission-control defaults
update-rc.d jfi-insight-server defaults

Setting up your Postgres databases, users and schemas

Log in to the postgresql database as admin and execute the following commands,

Login as admin

Please note that you can perform the following steps only when you are logged in as admin.

Database and schema names can be changed only for a new installation. Changing this during an upgrade will result in loss of existing data.

 PostgreSQL Database, Schema and User Creation
## The comment for each command contains the corresponding environment variable or property used by the application
## An environment variable starting with "$" (for example, $DB_NAME) can be configured in the environment file
## A property containing a period (.) (for example, jfmc.db.username) can be set in  the mission-control.properties file


#    $DB_NAME and $DB_TABLESPACE
CREATE DATABASE mission_control WITH ENCODING='UTF8' TABLESPACE=pg_default;

#    Exit from current login
\q
 
#    Login to $DB_NAME database using admin user (by default its postgres)
psql -U postgres mission_control
#    jfmc.db.username and jfmc.db.password
CREATE USER jfmc WITH PASSWORD 'password';
#    $JFMC_DB_SCHEMA and jfmc.db.username
CREATE SCHEMA IF NOT EXISTS jfmc_server AUTHORIZATION jfmc;
#    $DB_NAME and jfmc.db.username
GRANT ALL ON DATABASE mission_control TO jfmc;
#    $JFMC_DB_SCHEMA and jfmc.db.username
GRANT ALL ON SCHEMA jfmc_server TO jfmc;

#    jfis.db.username and jfis.db.password
CREATE USER jfis WITH PASSWORD 'password';
#    $JFIS_DB_SCHEMA and jfis.db.username
CREATE SCHEMA IF NOT EXISTS insight_server AUTHORIZATION jfis;
#    $DB_NAME and jfis.db.username
GRANT ALL ON DATABASE mission_control TO jfis;
#    $JFIS_DB_SCHEMA and jfis.db.username
GRANT ALL ON SCHEMA insight_server TO jfis;

#    jfsc.db.username and jfsc.db.password
CREATE USER jfsc WITH PASSWORD 'password';
#    $JFSC_DB_SCHEMA and jfsc.db.username
CREATE SCHEMA IF NOT EXISTS insight_scheduler AUTHORIZATION jfsc;
#    $DB_NAME and jfsc.db.username
GRANT ALL ON DATABASE mission_control TO jfsc;
#    $JFSC_DB_SCHEMA and jfsc.db.username
GRANT ALL ON SCHEMA insight_scheduler TO jfsc;

#    jfex.db.username and jfex.db.password
CREATE USER jfex WITH PASSWORD 'password';
#    $JFEX_DB_SCHEMA and jfex.db.username
CREATE SCHEMA IF NOT EXISTS insight_executor AUTHORIZATION jfex;
#    $DB_NAME and jfex.db.username
GRANT ALL ON DATABASE mission_control TO jfex;
#    $JFEX_DB_SCHEMA and jfex.db.username
GRANT ALL ON SCHEMA insight_executor TO jfex;



Verifying and set the Environment variables and mission control properties

Ensure that ElasticSearch is up and running. Get the URL and credentials for ElasticSearch. If an ElasticSearch cluster is used, refer to the ElasticSearch setup documentation on what parameters are needed for Mission Control to establish communication with ElasticSearch. Mission Control microservices will bootstrap ElasticSearch with the necessary indices. If there is any issue with the configuration parameters, please refer the System status section in the UI and the logs.   

 Set PostgreSQL, Elasticsearch details in /opt/jfrog/mission-control/scripts/setenv.sh
##### PostgreSQL set-up #####
export DB_TYPE=postgresql

# Enter the PostgreSQL end-point and port
export DB_HOST=localhost
export DB_PORT=5432

export DB_NAME=mission_control
export DB_SSLMODE="false"
export DB_TABLESPACE="pg_default"

export JFIS_DB_SCHEMA=insight_server
export JFEX_DB_SCHEMA=insight_executor
export JFSC_DB_SCHEMA=insight_scheduler
export JFMC_DB_SCHEMA=jfmc_server

export DB_URL="${DB_HOST}:${DB_PORT}"
export JFMC_DB_URL="jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}?currentSchema=${JFMC_DB_SCHEMA}"

##### Elasticsearch set-up #####
# Enter the Elasticsearch end-point and port
export ELASTIC_SEARCH_URL="http://localhost:9200"
 
# Enter the Elasticsearch read and write url can be customized if needed
export ELASTIC_SEARCH_READ_URL="${ELASTIC_SEARCH_URL}"
export ELASTIC_SEARCH_WRITE_URL="${ELASTIC_SEARCH_URL}"
 
# If the Elasticsearch service is behind a loadbalancer, enter the Elasticsearch Loadbalancer URLs as below
export ELASTIC_LB_READ_URL=""
export ELASTIC_LB_WRITE_URL=""

##### Mongodb set-up ##### (Removed in 3.4.0)
# Required for migration of data on upgrades from JFMC versions lesser than 3.4.0
# Enter the mongodb end-point and port
export MONGODB_HOST="localhost"
export MONGODB_PORT="27017"
export MONGO_URL="$MONGODB_HOST:$MONGODB_PORT"
export SPRING_DATA_MONGODB_HOST="$MONGODB_HOST"
  
# Enter the mongodb user and password for database administration - when given the system tries to create the needed databases, and users.
# This is optional and can be left blank
# If this is left blank, please make sure to create below DBs and users
export MONGODB_ADMIN_USERNAME=""
export MONGODB_ADMIN_PASSWORD=""
  
# Enter the mongodb user and password for mission control database
export SPRING_DATA_MONGODB_USERNAME="mission_platform"
export SPRING_DATA_MONGODB_PASSWORD="password"
  
# Enter the mongodb user and password for insight databases
export MONGODB_USERNAME="jfrog_insight"
export MONGODB_PASSWORD="password"
  
# Enter the mongodb database names to be used by the JFMC services
# The corresponding databases need to be created in the target mongodb service
  
# Database name for mission-control service
# Username is $SPRING_DATA_MONGODB_USERNAME and Password is $SPRING_DATA_MONGODB_PASSWORD
export SPRING_DATA_MONGODB_DATABASE="mission_platform"
  
# Database name for insight-service service
# Username is $MONGODB_USERNAME and Password is $MONGODB_PASSWORD
export JFMC_INSIGHT_SERVER_DB="insight_team"
  
# Database name for executor-service service
# Username is $MONGODB_USERNAME and Password is $MONGODB_PASSWORD
export JFMC_EXECUTOR_MONGO_DB="insight_executor"
  
# Database name for scheduler-service service
# Username is $MONGODB_USERNAME and Password is $MONGODB_PASSWORD
export JFMC_SCHEDULER_MONGO_DB="insight_scheduler"
 
##### Diagnose and feedback information that will be sent to JFrog #####
 
# Enter the OS version
# Examples : 7,8,16.04
export JFMC_OS_VERSION="NA"
 
# Enter the OS Type
# Examples : CentOS,RedHat,Ubuntu,Debian
export JFMC_OS_TYPE="NA"
 
# Enter the OS Distribution
# Examples : jessie,xenial
export JFMC_OS_DIST="NA"
 
# Enter the Upgrade date
export JFMC_CREATE_DATE="NA"
  
# Enter the OS Distribution
# Values : rpm or deb
export JFMC_DIST="NA"
 
# Enter the OS Distribution
# Examples : jessie,xenial
export JFMC_PACKAGE="jfrog-mission-control-${JFMC_DIST}-installer"
 Set credentials in property file <JFMC_DATA>/etc/mission-control.properties
# These values are considered by default, the file needs to be edited if there is a need to change the values
# Jfmc server credentials
jfmc.db.username=jfmc
jfmc.db.password=password


# Insight server credentials
jfis.db.username=jfis
jfis.db.password=password


# Executor credentials
jfex.db.username=jfex
jfex.db.password=password


# Scheduler credentials
jfsc.db.username=jfsc
jfsc.db.password=password


# Elasticsearch credentials
elastic.username=admin
elastic.password=admin



Starting Mission Control Services

To start the services, see the Starting the Mission Control services section.


3. Start the Mission Control services.


Upgrading Mission Control 

Upgrading Mission Control on RPM

  1. Login as root.
  2. Stop the Mission Control services.
  3. Extract the jfmc-rpm-<version>.tar.gz file.
  4. Install the Mission Control services.

    1. Install Mission Control package from the downloaded artifact and load environment variables.


      rpm -Uvh jfmc-rpm-<version>/packages/jfmc.rpm
    2. Copy the new variables added from /opt/jfrog/mission-control/scripts/setenvDefaults.sh to /opt/jfrog/mission-control/scripts/setenv.sh.

    3. Load the environment variables.

      # Load environment variables
      source /opt/jfrog/mission-control/scripts/setenv.sh
    4. Install the Init scripts.

       Install the Init script as follows:
      # Install init script for each micro service from a template
      # Install jfi-executor,
      cp -f /etc/init.d/jfi-executor /etc/init.d/jfi-executor.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-executor
      chmod a+x /etc/init.d/jfi-executor
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-executor,g;
                 s,__APP_NAME__,insight-executor,g;
                 s,__SERVICE_BIN__,jfi-executor,g' /etc/init.d/jfi-executor
       
      # Install jfi-scheduler,
      cp -f /etc/init.d/jfi-scheduler /etc/init.d/jfi-scheduler.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-scheduler
      chmod a+x /etc/init.d/jfi-scheduler
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-scheduler,g;
                 s,__APP_NAME__,insight-scheduler,g;
                 s,__SERVICE_BIN__,jfi-scheduler,g' /etc/init.d/jfi-scheduler
       
      # Install mission-control,
      cp -f /etc/init.d/mission-control /etc/init.d/mission-control.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/mission-control
      chmod a+x /etc/init.d/mission-control
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,mission-control,g;
                  s,__APP_NAME__,jfmc-server,g;
                  s,__SERVICE_BIN__,mission-control,g' /etc/init.d/mission-control
           
      # Install jfi-insight-server,
      cp -f /etc/init.d/jfi-insight-server /etc/init.d/jfi-insight-server.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-insight-server
      chmod a+x /etc/init.d/jfi-insight-server
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,jfi-insight-server,g;
                  s,__APP_NAME__,insight-server,g;
                  s,__SERVICE_BIN__,jfi-insight-server,g' /etc/init.d/jfi-insight-server
    5. Enable installed services on RPM.

  5. Verify the Environment variables.
  6. Make sure Postgres, MongoDB (removed from 3.4.0) and Elasticsearch are up and running.

    MongoDB details are required for migration of data to Postgresql if Mission Control is being upgraded from version lesser than 3.4.0

  7. Starting from Mission Control 3.4.0, MongoDB is replaced with PostgreSQL to store data. Follow the steps described in the setting up postgresql section to create users, the database and schema.

    Mission-Control application will take care of migrating data between them on startup. MongoDB can be stopped and removed after migration.

  8. Start the Mission Control services.


Upgrading Mission Control on Debian

  1. Log in as root.
  2. Stop the Mission Control services.
  3. Extract the jfmc-deb-<version>.tar.gz file.
  4. Install the Mission Control services.

    1. Install Mission Control package from downloaded artifact and load environment variables.


      dpkg -i jfmc-deb-<version>/packages/jfmc.deb
    2. Copy new variables added from /opt/jfrog/mission-control/scripts/setenvDefaults.sh to /opt/jfrog/mission-control/scripts/setenv.sh

    3. Load environment variables,


      # Load environment variables
      source /opt/jfrog/mission-control/scripts/setenv.sh
    4. Install Init Scripts.

       Install the Init script as follows:
      # Install init script for each micro service from a template
      # Install jfi-executor,
      cp -f /etc/init.d/jfi-executor /etc/init.d/jfi-executor.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-executor
      chmod a+x /etc/init.d/jfi-executor
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-executor,g;
                 s,__APP_NAME__,insight-executor,g;
                 s,__SERVICE_BIN__,jfi-executor,g' /etc/init.d/jfi-executor
       
      # Install jfi-scheduler,
      cp -f /etc/init.d/jfi-scheduler /etc/init.d/jfi-scheduler.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-scheduler
      chmod a+x /etc/init.d/jfi-scheduler
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                 s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                 s,__SERVICE__,jfi-scheduler,g;
                 s,__APP_NAME__,insight-scheduler,g;
                 s,__SERVICE_BIN__,jfi-scheduler,g' /etc/init.d/jfi-scheduler
       
      # Install mission-control,
      cp -f /etc/init.d/mission-control /etc/init.d/mission-control.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/mission-control
      chmod a+x /etc/init.d/mission-control
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,mission-control,g;
                  s,__APP_NAME__,jfmc-server,g;
                  s,__SERVICE_BIN__,mission-control,g' /etc/init.d/mission-control
           
      # Install jfi-insight-server,
      cp -f /etc/init.d/jfi-insight-server /etc/init.d/jfi-insight-server.init.backup # applicable only for upgrade
      cp -f /opt/jfrog/mission-control/scripts/jfmc-service.template /etc/init.d/jfi-insight-server
      chmod a+x /etc/init.d/jfi-insight-server
      sed -i -e 's,__JFMC_HOME__,/opt/jfrog/mission-control,g;
                  s,__JFMC_DATA__,/var/opt/jfrog/mission-control,g;
                  s,__SERVICE__,jfi-insight-server,g;
                  s,__APP_NAME__,insight-server,g;
                  s,__SERVICE_BIN__,jfi-insight-server,g' /etc/init.d/jfi-insight-server
    5. Enable the installed services on Debian.

  5. Verify the Environment Variables.

  6. Make sure Postgres, MongoDB (removed from 3.4.0) and Elasticsearch are up and running.

    MongoDB details are required for migration of data to Postgresql if Mission Control is being upgraded from version lesser than 3.4.0

  7. Starting from Mission Control 3.4, MongoDB is replaced with PostgreSQL to store data. Follow the postgresql steps described in the setting up your postgres section to create users, the database and schema.

    Mission-Control application will take care of migrating data between them on startup. MongoDB can be stopped and removed after migration.

  8. Start Mission Control services.

Starting the Mission Control Services

Run the following commands to start the Mission Control Services.

Logs Location

 Logs can be found under $JFMC_DATA/logs (default /var/opt/jfrog/mission-control/logs).

service jfi-executor start
service jfi-scheduler start
service mission-control start
service jfi-insight-server start

Stopping the Mission Control Services

Run the following commands to stop the Mission Control services.

service jfi-executor stop
service jfi-scheduler stop
service mission-control stop
service jfi-insight-server stop
  • No labels