Pre-Install Steps

This document details the pre-install steps to get Falcon Deploy (F-D) setup and running successfully. It is recommended that the steps listed here be done by DBAs or someone who can administer operating system, storage, database and F-D application. Note, this documentation is a guide to help you install and run Falcon Deploy and does not replace third-party software vendor documentation. Always refer to the respective vendor documentation for instructions and current recommendations and apply them where relevant.

Cloud availability

Launch Falcon Deploy in the cloud in minutes

If you want to avoid all the pre-install and installation steps performed here, you can easily and quickly launch a secure Falcon Deploy instance in the cloud from Oracle Cloud Marketplace. 

With just a few clicks you will get a fully configured compute instance provisioned in Oracle Cloud Infrastructure. You can get started in minutes and with minimal steps.

Obtain the software

Download Software

Sign-in to your Falcon Deploy account and obtain the latest version of the software from the Falcon Deploy Download page. You will need to have an active subscription in order to download the software.

Version

If this is your first installation, please download and install the latest version of the Falcon Deploy software. When performing a new installation, you only need the WAR file from the zip file you downloaded. The WAR file generates the database DDL (SQL) file in the $FALCON_HOME directory. When Falcon Deploy application is started for the first time, the database objects are automatically created.

Install Method

This document covers multiple installation methods. Choose the installation method that is right for your environment.

If you are upgrading your existing Falcon Deploy installation, refer to the Upgrade section.

About Falcon Deploy

Falcon Deploy (F-D) is a Java-based web application designed for small businesses and enterprises. It is designed with developers, database administrators and management teams in mind. The application does one thing really well – simplify database change deployments. As of now, Falcon Deploy supports the world’s most popular, trusted and widely used database – the Oracle Database. We love the Oracle Database, and we are passionate about it. It is many decades of engineering, and its capabilities are unmatched.

With businesses, change is continuous. Modern software development methodologies such as Agile, while efficient, requires continuous deployments. Most requirements have accompanying database schema changes. Many years of administering and supporting the Oracle Database gave us a better understanding of how it is used within enterprises. This rich experience and a pragmatic outlook on how DBAs manage the databases, how developers work with it and what the management and business expectations are, has driven this innovation. Falcon Deploy is a database change deployment and management system. It makes the whole process of deploying and managing changes to the database more efficient.

With businesses, change is continuous. Modern software development methodologies such as Agile, while efficient, requires continuous deployments. Most requirements have accompanying database schema changes. Many years of administering and supporting the Oracle Database gave us a better understanding of how it is used within enterprises. This rich experience and a pragmatic outlook on how DBAs manage the databases, how developers work with it and what the management and business expectations are, has driven this innovation. Falcon Deploy is a database change deployment and management system. It makes the whole process of deploying and managing changes to the database more efficient.

Requirements

Server and OS

We recommend a dedicated server to run Falcon Deploy. These are the minimum server requirements that we recommend to run the application. You may find that Falcon Deploy can run on systems with fewer resources than recommended, but that could lead to performance issues and instability. It is also possible that the server may run out of resources even with the recommended configuration. You may need to scale up based on the load on the system, number of concurrent users and factors such as another third party software on the same system (eg: a monitoring agent or log parser, etc.). It also depends on whether the database (F-D metadata) is installed on the same system as Falcon Deploy. If so, you have to factor in the resources needed to run the database plus Falcon Deploy.

Falcon Deploy is a Java Web Application. It can run on all operating system platforms where Java is fully supported. The commands shown below are for Linux operating system. Please refer to your operating system guide if you are using a different operating system.

CPU

2 core minimum. We recommend 2.3GHz + Intel based processors.

Here’s an example output from Amazon Linux AMI.

> grep -c ^processor /proc/cpuinfo   
2

> nproc --all
2

> getconf _NPROCESSORS_ONLN
2

There are various methods to obtain CPU information on Linux based operating systems. The output should be interpreted for hyper threading on Intel based processors. Here’s a Stack Overflow post that should help you get this information on your server.

RAM

4GB minimum. We recommend 8GB or greater.

Here’s an example output that shows the total memory on the server as 64GB.

> free -g
total         used       free     shared    buffers     cached
Mem:            64         31         32          0          0         59
-/+ buffers/cache:          3         60
Swap:           31          0         31

Virtual Memory

Minimum of 16G, if RAM is greater than 16G. Else, double the amount of RAM.

Operating System

Falcon Deploy is a Java Web Application. It can run on all operating system platforms where Java is fully supported. We recommend 64-bit Windows or Unix based operating system.

Operating System User & Group

You need to create a Falcon software owner user. The steps below creates a deploy group, creates a falcon user and assigns the falcon user to the deploy group.

# Execute as root user or user with sudo privileges 
# ID usually allocated by System administrators. Recommended to use higher number.
> sudo /usr/sbin/groupadd -g 11777 deploy
> grep deploy /etc/group

# Creating Falcon user
> sudo /usr/sbin/useradd -u 11777 -g deploy -G deploy falcon

# Change password
> sudo passwd falcon 

# Switch to falcon user
> su - falcon

# Verify falcon id
> id
uid=11777(falcon) gid=11777(deploy) groups=11777(deploy)

Add falcon user to the sudoers file by editing /etc/sudoers. Enter visudo which will open the sudoers file in the text editor.

In the file, look for the line that says ## Allows people in the group wheel to run all commands and uncomment the line below it.

> sudo visudo
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)   ALL

Add falcon user to the wheel group.

> sudo usermod -aG wheel falcon

# Verify
> su - falcon
> id
uid=11777(falcon) gid=11777(deploy) groups=11777(deploy),10(wheel)

Next, we will setup umask, the default file mode creation mask for falcon user.

Check default Shell for falcon user.

> echo $SHELL
/bin/bash

If the output is Bash, run the below commands as falcon user.

> echo 'umask 007' >> ~/.bash_profile
source ~/.bash_profile

If the output is Bourne or Korn shell, run the below commands as falcon user.

> echo 'umask 007' >> ~/.profile
source ~/.profile

We will set additional variables as we progress through the install plan.

Meet the requirements for Oracle Client

We need Oracle Client tools and libraries to connect from Falcon Deploy to Oracle Database instances. We recommend using the Oracle Instant Client. It has a smaller footprint and the installation is quick. Instant Client is free from OTN for anyone to use in a development or production environment. Please refer to the section Oracle client for details on installation requirements.

Java

Falcon Deploy requires Java 1.8. Versions prior to Java 1.8 are not supported.

> java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

Directories

Falcon Deploy requires the following 3 directories. We recommend creating dedicated storage volumes for all 3 directories. Mount the volumes as below and make them available to the falcon user. All 3 directories should be empty and should have write permissions for the falcon user. The primary and backup volumes should be from physically separate disks/controller/filer. If primary volume fails due to any reason, the backup volume should be available.

Falcon Home directory FALCON_HOME

We recommend 20G for the FALCON_HOME directory. This directory will be the installation directory for Falcon Deploy software.

> sudo mkdir -p /falcon_deploy/app
> sudo chown -R falcon:deploy /falcon_deploy/app
> sudo chmod -R 770 /falcon_deploy/app

Falcon Primary directory

We recommend a minimum of 20G for the primary directory. Falcon Deploy will use this directory to store application repository files. Falcon Deploy will create additional sub directories during the installation process. This directory will also be used for stage files and deployment log files. The size of this directory should be 2.5 times the size of all the SQL files you would create.

This is a good initial size to start. If you have high number of deployments, you may have to add space to the directory. The usage of space in this volume is directly proportional to the number of deployments done in your organization. Also, if you configure a high retention period in the purge configuration, you will need a larger directory.

> sudo mkdir -p /falcon_deploy/primary
> sudo chown -R falcon:deploy /falcon_deploy/primary
> sudo chmod -R 770 /falcon_deploy/primary

Falcon Backup directory

Falcon Deploy allows you to create application repositories with or without Git version control. Git is distributed in nature and lets you go back to a specific point in time. In the event of a failure, the architecture by design allows us to reconstruct a repository from another distributed copy.

Falcon Deploy backs up both Git and non-Git repositories on a schedule and enables you to restore all or some of the repositories from within the application. The restore can be done at a repository level or at a file level. The backup directory we create in this step, holds the backup files. We recommend this directory be sized based on the targeted utilization in primary directory.

Example, If your primary directory utilization is estimated at 10G and you wish to keep 7 days of backup with a single copy for each day, then the backup directory needs to be 70G (10 current size in GB x 7 days x 1 copy). You may want to add another 20% so that the total utilization is around the 80% mark.

> sudo mkdir -p /falcon_deploy/backup
> sudo chown -R falcon:deploy /falcon_deploy/backup
> sudo chmod -R 770 /falcon_deploy/backup

SetGID

We need to ensure that all operating system users who read and edit files in these directories belong to the same operating system group.

The files and directories created by Falcon Deploy will be owned by falcon:deploy as long as the process is installed and run as falcon user. In some cases, our application may be started as a different user, example tomcat. We want all the files in these directories to have its group set to deploy, instead of the group of the user that created it.

# SetGiD to falcon directories
> sudo chmod g+s /falcon_deploy/app
> sudo chmod g+s /falcon_deploy/primary
> sudo chmod g+s /falcon_deploy/backup

# Note, group permissions are now set to rws
> ls -ltr
total 0
drwxrws--- 2 falcon deploy 6 Oct 22 05:31 backup
drwxrws--- 2 falcon deploy 6 Oct 23 02:26 primary
drwxrws--- 2 falcon deploy 6 Oct 23 02:26 app

Oracle Client

You need to download and install Oracle full client or Oracle Instant client along with sqlplus. If you are using the Oracle full client, we recommend installing it as ‘oracle’ user. We recommend using Oracle Instant client. Falcon Deploy was developed and tested using Oracle 12c client.

Follow steps from Oracle’s website to install the client software. Here are some links. We verified these links are active and relevant at the time of writing this documentation.

Oracle Instant Client FAQ

Oracle Instant Client Home

Oracle Instant Client Download

Note

You need to comply with terms and conditions from Oracle Corporation to download and use their software.

Environment Variables

Now that Java, Falcon Directories and Oracle Client have been setup, let’s complete the environment variables configuration. Set the ORACLE_HOMETNS_ADMINLD_LIBRARY_PATHJAVA_HOME and FALCON_HOME environment variable in the profile file of falcon user. Refer here to identify the profile file where you need to make changes.

# Falcon Deploy Application Parameters
umask 007

# If you are using Oracle full client - export ORACLE_HOME=<install_dir>/bin
# If you are using Oracle full client - export LD_LIBRARY_PATH=$ORACLE_HOME/lib
# Parameters below are for Instant client. SQLPLUS has been extracted to the ORACLE_HOME directory.
export ORACLE_HOME=/u01/app/oracle/product/instantclient_12_2
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$TNS_ADMIN:$LD_LIBRARY_PATH:$PATH

export JAVA_HOME=/usr/lib/jvm/jre
export FALCON_HOME=/falcon_deploy/app
export PATH=$JAVA_HOME/bin:$FALCON_HOME:$PATH

Oracle Database

You will need an Oracle Database schema to store the metadata for Falcon Deploy application. F-D will create all the required schema objects during the installation step. As a pre-installation requirement, you only need to create an empty schema in an Oracle Database that is accessible from the server where F-D is installed. 

Follow the below steps to create the falcon schema.

Create Tablespace

If using OMF, the example below will create a falcon tablespace with 100M datafile that will auto extend to 30G.

SQL> CREATE TABLESPACE falcon DATAFILE AUTOEXTEND ON MAXSIZE 30G;

If OMF and ASM is not used, the example below will create a falcon tablespace with 100M datafile that will auto extend to 30G. Please make sure to change the path to match your storage location.

SQL> CREATE TABLESPACE falcon
     DATAFILE '/u01/app/oracle/oradata/orcl/falcon01.dbf' SIZE 100M
     AUTOEXTEND ON MAXSIZE 30G;

Create User

Please make sure to change the password to a strong password.

SQL> CREATE USER falcon IDENTIFIED BY password
     DEFAULT TABLESPACE falcon
     TEMPORARY TABLESPACE temp;

SQL> ALTER USER falcon QUOTA UNLIMITED ON falcon;

SQL> GRANT CONNECT, RESOURCE TO falcon;

Web Server

Falcon Deploy is bundled with Apache Tomcat application server. You can just run the falcon-deploy-ver.war and it will startup using the bundled Tomcat application server.

If the embedded server version is not suitable for your environment, you can also deploy our application to servlet containers like JBoss, Tomcat, GlassFish and WebLogic.

We discuss few installation methods in the next section. You can choose the one that is right for you.

Installation

This document covers multiple installation methods. Choose the installation method that is right for your environment.

Method 1

Install and run using bundled Tomcat server. Click here for instructions.

Method 2

Install and run using bundled Tomcat server as an Operating System Service. Click here for instructions.

Method 3

Install and run using External Tomcat server. Click here for instructions.

Updated on March 13, 2019

Related Articles