Automated Installation - Docker Image (Production Use)
The FlexDeploy™ Linux Installer Guide provides system requirements, required downloads and instructions for installing or upgrading FlexDeploy and its components.
You must have Docker Engine installed. See https://docs.docker.com/get-docker/ for information on how to do that.
Step 1: Database Preparation
Prepare either a Postgres or Oracle database.
Postgres
Install the Postgres binaries, and create a flexdeploy database. The automated installer will create FD, FF, and FD_ADMIN schemas.
You can use a docker image such as postgres:14 if you pass in the PGDATA
parameter.
Either from the commandline with psql
createdb flexdeploy
or if you have sql access to the postgres database, and don’t have access to run createdb, you can connect to the postgres database and using sql
create database flexdeploy
Oracle
Install the Oracle Database binaries and find your jdbc connection string. The automated installer will create FD, FF, and FD_ADMIN schemas in the USERS tablespace.
You can use a docker install of Oracle Database. See the Oracle Docker Images for more information.
Step 3: Setup the Configuration File
Step 3.1: Save flexdeployinstaller_config.txt
This step is extremely important to preserve your configuration file from any potential installer upgrades. This step should only be done once: on a new installation or on a first time upgrade with this new process.
There is a configuration file (flexdeployinstaller_config.txt) that controls the actions of the installer. It is the most important file for the installer and needs to be saved to avoid being overlaid with any new flexdeployinstaller downloads as this would remove all of your entered configurations. There is a template file located in FLEXDEPLOY_INSTALLER_HOME/flexdeployinstaller. This template file must be copied to any other location, it could be placed in the FLEXDEPLOY_HOME and it would be safe from overlay and easier to find for the next upgrade.
cd <FLEXDEPLOY_INSTALLER_HOME>/flexdeployinstaller_X.X.X
cp flexdeployinstaller_config.txt <FLEXDEPLOY_HOME>/ # this is one option to save but this can be saved to any other location. Just must be out of FLEXDEPLOY_INSTALLER_HOME/fledeployinstaller directory due to installer upgrades.
Step 3.2: Updating flexdeployinstaller_config.txt
Do not use spaces in any directory and/or password values.
This step should only need to be done once, on a new installation or on a first time upgrade with this new process. Unless there is a change to any of the configuration properties.
Once copied, the file needs to be adjusted for your installation requirements (there are many default values in the file and they can stay defaulted). There are comments in the template file for each property but this guide will cover the properties that need to be updated.
FLEXDEPLOY_HOME - this is the directory location where FlexDeploy will be installed or is already installed, the default is /u01/flexdeploy.
FLEXDEPLOY_JAVA_HOME - this would be the path to Java JDK 8, it would be the path up to bin (not including bin)
WORKING_DIRECTORY - this will be the directory location that FlexDeploy uses for temporary files to be transferred between the server and its endpoints. The default location is under FLEXDEPLOY_HOME and is named application.
ARTIFACT_REPOSITORY_DIRECTORY- this will be the directory location that FlexDeploy uses to store all build artifacts and retrieve deployment artifacts. The default location is under FLEXDEPLOY_HOME and is named artifacts.
BACKUP_DATABASE_DIRECTORY - this will be the directory where the backups are stored. If Postgres, this will be on the FlexDeploy server, otherwise it would be on the database server.
SCM_TYPE - specify the primary SCM type that will be utilized. This isn’t part of the installation but there is a prerequisite check to make sure any necessary SCM clients are present. This check won’t stop the install, it is just informational. Not all SCM Types require clients.
SYSTEM_DB_PASSWORD - this password is required to either create the schema definitions or upgrade the schema definitions. If left blank, a prompt will come up when the password is needed.
INFLUX_DB_TOKEN - this token is required for FlexDeploy to communicate with the influx database. Enter in any arbitrary string that will be saved in FlexDeploy . This value should be set on initial execution and then left unchanged.
DATABASE_URL- adjust the appropriate connection string for the FlexDeploy database, Oracle or Postgres. Verify that the selected DATABASE_URL line isn’t commented out (# at the beginning of the line) and that any other DATABASE_URL lines for other connect strings are commented (add the # at the beginning of the line) out.
CONTAINER_NAME- this will be used to create and upgrade the FlexDeploy docker container. This value will default to ‘flexdeploy’ if not provided.
CONTAINER_TIMEZONE- this will be used when creating a container to set the time zone of the container. This value will default to ‘America/Chicago’. You can find a list of all the available time zones here: List of tz database time zones.
At the completion of updating and saving the flexdeployinstaller_config.txt file, run the following command at any time, to source in the properties from the flexdeployinstaller_config.txt file and make them available to be used for navigation.
Step 4: Check the Prerequisites
Step 4.1: Execution
After the flexdeployinstaller_config.txt file is updated, the prerequisite checks should be executed outside of the install/upgrade process. The prerequisite checking process is designed to be run multiple times until all reported issues are resolved. Any issue that is found will be displayed on the screen in the form of the issue and the potential resolution.
Run the installer as the user that has access to the docker commands.
Step 4.2: Resolution
With the list of issues on the screen, and in the logs (FLEXDEPLOY_HOME/upgrade/logs), each issue must be resolved before continuing. Each issue will provide some level of resolution that can assist in clearing up the given issue.
Step 5: Complete the Installation/Upgrade
Now that we have everything validated from a prerequisite check, we can start the installer process. As stated earlier, the same process will handle the installation and any upgrade. The installer will use the flexdeployinstaller_config.txt properties to detect if there is a current installation. Start the installer process by running the below command.
The process will take a few minutes.
- style