Table of Contents |
---|
Implementation of LB Cluster solution deployment is based on ansible playbooks. Parameters that are important for deployment are defined in configuration files, playbook commands are set in makefile. To start deployment user runs command "make deploy" (see user rights requirements), "make" is a command which executes command from makefile, "deployFE" and "deployFEJ" are the main deployment commands. "Make" utility finds "deployFE" or "deployFEJ" label in makefile and runs script for ansible playbook.
- Run "make deployFE" to deploy cluster with FIXEdge C++
- Run "make deployFEJ" to deploy cluster with FIXEdge Java
Distribution Package
Part of needed files included in distribution package
File description | Example |
---|---|
FIXEdge distribution archive | FIXEdge-6.6.1-lb-cluster.138-FA-2.25.0.138-Linux-3.10.0-gcc-4.8.5-x86_64.tar.gz |
Configuration Service distribution archive | configuration-service*.tar |
Scheduler service distribution archive | scheduler-service*.tar |
Playbook files | yml configuration files, readme files, etc. |
Files not included in distribution package - license files, TLS certificates, Consul distribution packages.
...
Parameters Configuration
Directory structure
Name | Description |
---|---|
PLAYBOOK_ROOT_DIR | root directory for deployment files Contains: ansible.cfg - ansible configuration file deploy.yml - steps of deployment hosts.yml - file for hardware units configuration makefile - file for "make" command arguments Readme.MD - root readme document |
PLAYBOOK_ROOT_DIR/doc PLAYBOOK_ROOT_DIR/doc/quickstart | directories for documentation files Contains: readme files |
PLAYBOOK_ROOT_DIR/files | directory for distribution packages, license, key files |
PLAYBOOK_ROOT_DIR/group_vars | directory for files containing global variables |
PLAYBOOK_ROOT_DIR/roles | directory for deployment-related files for roles |
Roles
For convenience all deployment jobs are divided into parts according to functionality that is deployed. These parts are called "roles". Parameters for roles are defined in PLAYBOOK_ROOT_DIR/roles/<role_name>/defaults/main.yml. These parameters can be overrided by global parameters with the same name. For example user can define "fe_destdir" parameter in all.yml file and it will be taken by ansible playbook instead of parameter defined in PLAYBOOK_ROOT_DIR/roles/fixedge/defaults/main.yml
...
Hardware unit parameters are stored in hosts.yml
Parameter | Description |
---|---|
ansible_host | IP address for hw unit |
ansible_port | IP port used for ssh access on hw units |
ansible_user | user login used by ansible for changing configuration on hw unit |
ansible_ssh_pass | user ssh pass used by ansible for changing configuration on hw unit |
ansible_connection: | used for docker implementation of Oracle DB in test configuration |
ansible_connection_args: | used for docker implementation of Oracle DB in test configuration |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
--- all: children: # Host names or IP addresses where FIXEdge daemon with Consul Agent # will be deployed. fixedge: hosts: fixedge_1: ansible_host: 10.6.223.22 ansible_port: 22 ansible_user: user ansible_ssh_pass: epm-bfix fixedge_2: ansible_host: 10.6.220.172 ansible_port: 22 ansible_user: user ansible_ssh_pass: epm-bfix # Host names or IP addresses where Configuration Service daemon with # Consul Agent will be deployed. confservice: hosts: cs_1: ansible_host: 10.6.221.249 ansible_port: 22 ansible_user: user ansible_ssh_pass: epm-bfix # Host names or IP addresses where HAProxy with Consul Agent and # Consul Template will be deployed/configured. proxy: hosts: haproxy: ansible_host: 10.6.223.32 ansible_port: 22 ansible_user: user ansible_ssh_pass: epm-bfix # Host name or IP address of the Oracle Database database: hosts: oracle: ansible_host: user_oracle-database_1 ansible_connection: docker ansible_connection_args: '-H=tcp://10.6.221.187:2375' # Host name or IP address of the Oracle Database consul_cluster: hosts: consul_server_1: ansible_host: 10.6.221.187 ansible_port: 22 ansible_user: user ansible_ssh_pass: epm-bfix splunk: hosts: splunk_1: ansible_host: 10.6.221.187 ansible_port: 22 ansible_user: user ansible_ssh_pass: epm-bfix |
Global variables
variable | component | required for FIXEdge C++ | required | description |
---|---|---|---|---|
dba_user | Oracle DB | + | + | DB Administrator login. Database user with administrator rights is needed for adding user, create and configure database for the solution needs. |
dba_password | Oracle DB | + | + | DB Administrator password |
db_user | Oracle DB | + | + | DB user login |
db_password | Oracle DB | + | + | DB user password |
db_address | Oracle DB | + | + | IP address for connection to DB |
db_port | Oracle DB | + | + | IP port for connection to DB |
db_sid | Oracle DB | + | + | DB SID |
file_consul | Consul | + | + | path to Consul Agent distribution archive |
file_ctemplate | Consul | + | + | path to Consul template software package (ZIP archive). |
fe_cluster_id | Cluster | + | + | unique identity of FIXEdge C++ LB Cluster |
file_cs | Configuration Service | + | + | path to Configuration Service distribution archive |
fe_splunk_host | Splunk | + | + | IP address for connection to Splunk system |
fe_splunk_port | Splunk | + | + | IP port for connection to Splunk system |
consul_deploy_dir | Consul | + | + | path for Consul deployment |
fe_archive_dest_scheduler | Scheduler Service | + | + | path to Scheduler Service distribution archive |
fe_lic_dnl | FIXEdge C++ nodes | + | path to license file for FIXEdge C++ | |
fe_archive_dest | FIXEdge C++ nodes | + | path to FIXEdge C++ distribution archive | |
fe_rapi_key | FIXEdge C++ nodes | + | path to REST-API key file | |
fe_rapi.crt | FIXEdge C++ nodes | + | path to REST-API certificate file | |
fe_rapi_port | FIXEdge C++ nodes | + | IP port for REST-API | |
fe_lic_dnl_java | FIXEdge Java nodes | + | path to license file for FIXEdge Java | |
fe_archive_dest_java | FIXEdge Java nodes | + | path to FIXEdge Java distribution archive | |
fe_archive_dest_fo | FIXEdge Java nodes | + | path to FO Java distribution archive |
Global variables are stored in group_vars/all.yml file
...
Deployment process will display messages on the terminal output indicating results for every step. When all the steps finished successfully user will get the output similar to:
Incorrect deployment process ending will be similar to:
Host is unreachable
...
Warning |
---|
LAY [Debug variables] ******************************************************************************************************************************************************************************************** ******************************************************************************************************************************************************************************************** |
...
Warning |
---|
TASK [setup-oracle-db : Cleanup Oracle Database contents] ********************************************************************************************************************************************************* ******************************************************************************************************************************************************************************************************** |
...
Warning |
---|
TASK [setup-oracle-db : Cleanup Oracle Database contents] ********************************************************************************************************************************************************* ******************************************************************************************************************************************************************************************************** |
...
Warning |
---|
TASK [consul-agent : Create the Consul Agent deployment directory] ********************************************************************************************************************************************************* *********************************************************************************************************************************************************** ************************************************************************************************************************************************************************************ |
...
Warning |
---|
TASK [cs : Create the Configuration Service destination directory] ********************************************************************************************************************************************************* task path: /home/user/work/ansible-play-lbc/roles/cs/tasks/main.yml:17 ********************************************************************************************************************************************************************* task path: /home/user/work/ansible-play-lbc/roles/cs/tasks/main.yml:23 ********************************************************************************************************************************************************* |
...