Welcome to Catalyst Documentation

The main documentation for the site is organized into a couple sections:

About RLCatalyst

RLCatalyst is an end-to-end automation platform that helps enterprises adopt devops maturity and benefits. Catalyst is powered by Chef and integrated with all major cloud providers like AWS, Azure, Openstack, VMware etc. It provides seamless Infrastructure Automation across data centers, environments, applications with Configuration Management & Service Orchestration to help enterprises achieve end-to-end IT DevOps Service Automation and being prepared for Web-scale IT. Few of the highlights of Catalyst are:

  • It helps in adopting intelligent devops – from Unmanaged->Managed->Self-Service->Self-Aware->Self Heal Infrastructure
  • It does Infrastructure automation, provisioning, Orchestration and management
  • It helps automating the entire ALM cycle from Continuous Integration->Testing->Continuous Deployment and works with all major CI/CD tools
  • It gives realtime-dashboard and alerts-based monitoring and remediation of cost, usage , health and performance of all IT assets
  • Powered by Chef and integrated with Docker

RLCatalyst DevOps Platform

_images/catframework.png

How you can make use of Catalyst:

  • Infrastructure Provisioning and Management: Do you need to provision infrastructure dynamically? Do you want to manage your heterogeneous environments? Do you want to control usage and cost? or Do you want to identify and retire your unused infrastructure? RLCatalyst has the solutions to all these challenges. It helps you towards a more efficient capacity planning and improved utilization
  • Application Deployment: RLcatalyst provides you a seamless experience of managing your ALM lifecycle, with its one-click application deployment, on any of your cloud providers. You can reduce your deployment time from weeks to days to hours with better quality with a focus on performance and health of the application. It works with all latest CI/CD tools- Jenkins, JIRA, BitBucket, Github, SonarQube etc to name a few.
  • Monitoring and Tracking : RLCatalyst provides you the near-real time information on the cost and usage of your infrastructure . This helps you to keep track of Cloud Capacity and to optimize your resources to ensure better utilization.

Getting Started

Install RLCatalyst

RLCatalyst can be installed either directly from source or using one of our quickinstallers

Quick Installer

RLCatalyst can be installed using one of our Quick Installers

Quick install using RLCatalyst Installer Script

RLCatalyst can be installed quickly using a chef-based installer. This installer will be available for installing on Centos and Ubuntu . The catalyst installer will install RLCatalyst and Open Source Chef. Basic seed data to start the application will also be taken care by the installer

Ubuntu 14.04 and Centos

You can install RLCatalyst using the installer script

wget https://raw.githubusercontent.com/RLOpenCatalyst/installer/master/installer.sh
chmod +x installer.sh
./installer.sh

Install using Docker

Download the docker image from:

https://hub.docker.com/r/relevancelab/rlcatalyst/

and run these commands:

docker pull relevancelab/rlcatalyst:3.5.0
docker run -t -i -p 3001:3001 --name catalyst331 relevancelab/rlcatalyst:3.5.0 /bin/bash

Quick install using Vagrant

Setup RLCatalyst on your dektop/laptop using vagrant. You need to have vagrant installed in your machine:

RL Catalyst Installation on Vagrant with chef:

git clone https://github.com/RLOpenCatalyst/installer.git
cd vagrantwithchef
vagrant up

RL Catalyst Installation on Vagrant without chef:

git clone https://github.com/RLOpenCatalyst/installer.git
cd vagrant
vagrant up

Quick install using RLCatalyst Public AWS Image

If you have an AWS account, you can bring up RLCatalyst using the public AMI available. The public image is currently available for US east(N.Virginia) region. This comes with some basic configurations required by RLCatalyst

  1. From your EC2 dashboard, select N.California region . In the Images/AMI link, choose “Public Images” in the dropdown . Search for image with AMI ID ami-f4270294 and AMI Name RLCatalyst4.0.0-stage
  2. Select the image and hit Launch
  3. On the “Instance Type” page ,choose the instance size as t2.medium or bigger . We recommend atleast 4 GB RAM
  4. On the “Configure Instance Details” page, choose your preferred Network and Subnets. If you want to assign a public IP to RLCatalyst, then enable “Auto-assign Public IP”
  5. On “Tag Instance” , name your instance
  6. On “Security Group” , add rule to open ports 443, 8080,8081 and 3001.
  7. Review and launch . Once the instance is in “Running” state , you can access RLCatalyst at http://<ip>:3001 . Login using superadmin/superadmin@123
  8. This image includes the devops role like jenkins at http://<ip>:8080 (default credentials)
  9. This image includes the devops role Nexus at http://<ip>:8081 (default credentials)

Following video demonstrates how to Quick install using RLCatalyst public AWS Image:


Install from Source

Refer to Install Directly From Source to install RLCatalyst directly from source

Working with RL Catalyst

Basic Scenarios - Using RLCatalyst Instance

Once you install RLCatalyst , basic data to quick-start your experience will be available within the application - Organization setup, chef server , environments, templates, services etc . You can start exploring by importing RLCatalyst instance into Catalyst

Listed below are few features which RLCatalyst offers out of the box:



Advanced Continuous Integration & Continuous Deployment [CI/CD] Features

Jenkins is CI/CD tool which can be used for build and deployment automation. It also allows you to continuously deliver your software by providing powerful ways to define your build pipelines and integrating with a large number of testing and deployment technologies.

How to Configure, Create, Execute Jenkins Jobs and View History in RLCatalyst ?


Introduction - RLCatalyst

RL Catalyst has four main menu options -

  • Settings : Create the Organization structure and manage DevOps assets across data center and cloud

  • BOTs : This Dashboard contains BOTs library and BOTs report and audit trail page.

  • Design : Design re-usable templates and blueprints which are used to automate your various DevOps requirements

  • Workzone : Manage and Control all your assets from Workzone. This is the execution zone in RLCatalyst

  • Track : CI/CD metrics and Monitoring dashboards will be part of Enterprise and PAAS versions

  • Cloud : This dashboard consists Infrastructure Cost and Usage

    _images/logo_header.png

Settings

Add all your organization and asset details in Settings before using RLCatalyst. You can use the system only if you provide all the relevant options provided in the Settings.

Settings provides you eight different options:

Organization Configuration

To start using RL Catalyst, the first step is to setup an organization. While you setup an organization in RLCatalyst, you should also set up the Business Groups and Projects under the organization. An Organization can be an enterprise or a business that can have multiple sub groups and projects. An organization can have multiple Business Groups and each Business Group can have multiple Projects

Organization

An Organization can be an enterprise or a business that can have multiple sub groups and projects.

Follow the steps below to create an organization

Through Setup & Configuration Wizard:

  • From the main menu click on Settings
  • Click on +New OrgSetup in Setup & Configuration Wizard
  • In Create Organization panel enter Name (Organization Name), Domain Name (Website Address) and Planned Cost.
_images/createOrg01.png
  • Click on Save button
  • Now Organization is created

Through Menu:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Organization Configuration
  • Click Organizations
  • Click on New button provided
  • In Create Organization page enter Name (Organization Name) and Domain Name (Website Address)
_images/createOrg.png
  • Click on Save button
  • Now your Organization is setup and listed in the Organizations page
_images/org.png
Edit and Remove an Organization
You can edit and remove an Organization.
To Edit the Organization
  • Click on edit button to edit the organization details
To Remove the Organization
  • Click on delete button to remove the organization from the list

Activate or Inactivate an Organization

You can activate or inactivate an Organization by using the cursor button provided. Remember, once you inactivate the organization all the entities relating to that organization will be disabled. You can enable the organization at any time. which will activate all the entities associated with that organization

_images/editOrg.png

Business Groups

Setup Business Groups for an Organization

In an Organization you can create multiple Business Groups. A Business Groups can be a business division in your organization

Follow the steps below to create a new Business Group in an Organization

Through Setup & Configuration Wizard:

  • From the main menu click on Settings
  • After saving the organization click on Next button
  • Click on +Add New BG button in Create Business Group panel
  • Enter the Business Group name in the Business Group name field
  • Click on Save button
_images/editBG01.png

Through Menu:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Organization Configuration
  • Click on Business Groups
  • Click on New button provided
  • Enter the Business Group name in the Business Group name field
  • Select the Organization from the Organization drop down list
  • Click on Save button
_images/editBG.png
  • Now the Business Group is setup and listed in the Business Groups page
_images/BG.png
Edit and Remove a Business Group
You can edit and remove a Business Group.
To Edit the Business Group
  • Click on edit button to edit Business Group details
To Remove the Business Group
  • Click on delete button to remove Business Group from the list

Projects

Setup Projects for a Business Group

In a Business Group you can create multiple Projects. A Project in RLCatalyst can be a running project in your business group. Each project can run one or multiple applications

Follow the steps below to create a new Project associating with Business Group and Organization

Through Setup & Configuration Wizard:

  • From the main menu click on Settings
  • In Create Project panel enter Name of the project, Description and select Organization and Business Group from the drop down
_images/createProject01.png
  • Click on Save button

Through Menu:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Organization Configuration
  • Click on Projects
  • Click on New button provided
  • Enter the Project name in the Name field
  • Provide a brief description about the project in the Description field
  • Select the Organization from the Organization drop down list
  • Select the Business Group from the Business Group drop down list
  • Environments is not mandatory while creating project and will be explained in later section
_images/createProject.png
  • Click on Save button
_images/project.png
Edit and Remove a Project
You can edit and remove a Project.
To Edit the Project
  • Click on edit button to edit Project details
To Remove the Project
  • Click on delete button to remove Project from the list

The following video will help you to setup an Organization, BusinessGroup, Project in RLCatalyst:

Config Management

In Config Setup we will cover Chef Server, Puppet Server and Environment:

The Chef server is the highly scalable foundation of the Chef automation platform. Create a flexible, dynamic infrastructure across multiple datacenters, public and private clouds, and in heterogeneous environments.

Puppet master is a Ruby application that compiles configurations for any number of Puppet agent nodes, using Puppet code and various other data sources. (For more info, see Overview of Puppet’s Architecture.)

An Environment is a way to map an organization’s real-life workflow to what can be configured and managed.

Chef Server

The Chef server acts as a hub for configuration data. The Chef server stores cookbooks, the policies that are applied to nodes, and metadata that describes each registered node that is being managed by the chef-client.

A node is any machine—physical, virtual, cloud, network device, etc.—that is under management by Chef.

A cookbook is the fundamental unit of configuration and policy distribution.

A policy file allows you to specify in a single document the cookbook revisions and recipes that should be applied by the chef-client.

RLCatalyst allows you to configure your own chef server. You can add either a hosted chef server or an on-premise installation of chefserver. If you dont have either of these, please create an account at https://getchef.opscode.com/signup . For more details on chef, please go to Chef Setup .

In RLCatalyst only one chef server can be configured for one organization. The same chef server cannot be associated to multiple organizations. Each chef server account will have a URL(Hosted/On-Premise), a User pem file, a Validator pem file and a knife file . You will get all these files when you create accounts in Chef.

Data/File needed for adding a Chef Server account in RLCatalyst

  • Name : Alias or name of the chef server , to be identified in RLCatalyst
  • User Name : User name of your chef server account
  • URL : URL of the hosted or on-premise chef server
  • User Pem File : User file to access your Chef Server account
  • Knife.rb : Configuration file that you get while setting up the Chef server
  • Validator Pem File : During the first chef-client run, this private key does not exist. Instead, the chef-client will attempt to use the private key assigned to the chef-validator, located in /etc/chef/validation.pem.
  • Key File : It is used to encrypt the contents of the data bag item.
  • Template File : The default bootstrap operation relies on an Internet connection to get the distribution to the target node. If a target node cannot access the Internet, then a custom template i.e, template file can be used to define a specific location for the distribution so that the target node may access it during the bootstrap operation.

To configure a new chef server follow the steps below:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Config Management
  • Click on Chef Server
  • Click on New button provided
  • Enter the configuration name in the Name field
  • Enter the Chef user name in User Name field
  • Provide or specify the Chef URL for the server to be configured
  • Choose the organization from the Organization drop down list
  • Upload the user PEM file provided by the Chef Server in the User PEM File field
  • Upload the validator PEM file provided by the Chef Server in the Validator PEM File field
  • Upload the Knife.rb file provided by the Chef Server in the Knife.rb File field
  • Upload the key file which is used for Databag
  • Upload the Template file which is used to Bootstrap node
_images/createChefServer.png
  • Click on Save button
  • Now your chef server is configured successfully and listed in the Chef server management page.
_images/chefServer.png

Edit and Remove Chef Server configuration
You can edit and remove a chef server configuration.
To Edit the Chefserver
  • Click on edit button to edit chef server configuration details
To Remove the Chefserver
  • Click on delete button to remove chef server configuration from the list

Following video demonstrates how to configure a chef server in RLCatalyst:


Import nodes from Chef Server

You can import existing nodes from the configured chef server into RLCatalyst by selecting the required Business Group and Project. These imported nodes can be operated from the Workzone.

  • To import the existing nodes click on import button
  • Select the environment from Environment drop down list for the node to be imported . These are the environments available in your Chef account
  • Select the respective checkbox in the Action column
_images/chefImport.png

  • Click on the Import Nodes button
  • Select the business group from Business Group drop down list
  • Select the project from the Project drop down list
  • Enter the user name to access the chef server for import in the User Name field
  • Choose authentication type from the Choose Authentication Type drop down list. RLCatalyst provides two types of authentication, you can either choose Password or by uploading the PEM file
  • Type Password or upload PEM file
  • Click on Import button
  • Close the popup containing the success message ‘Node imported’
  • Click on Workzone
  • The imported node will be available in the respective Environment of the Workzone

Chef Factory

It consists of common and re-usable recipes and cookbooks.

  • Click on Chef factory icon present in the Action column , Chef factory page will open.
_images/chefFactory.png
  • Go to Sync tab, here all the cookbooks and roles which are present in the chef server will be listed.
_images/chefCookbooks.png
  • Select the Cookbook and click on Sync
  • Close the popup window
  • Go to Cookbooks tab, here you can find the downloaded (Synched) cookbook
_images/chefFactoryActions.png

Databags and Items for Chef server

A data bag is a global variable that is stored as JSON data and is accessible from a Chef server.A data bag is indexed for searching and can be loaded by a recipe or accessed during a search.

A data bag item may be encrypted using shared secret encryption. This allows each data bag item to store confidential information (such as a database password) or to be managed in a source control system (without plain-text data appearing in revision history). Each data bag item may be encrypted individually; if a data bag contains multiple encrypted data bag items, these data bag items are not required to share the same encryption keys.

How to create Databag and Items for Chef Server?

  • In the Chef Server Page, Click on Databag icon in the Action column of your chef server
  • Click on + icon above the List of Data Bags column header
_images/databag.png

  • Enter the name of the Databag in the Name field
_images/createDatabag.png

  • Click on Save button
  • Select the Created Databag and create an item by clicking + icon above the ‘Items for -Databagname’ column header
  • Enter the ID and Item body
_images/createDatabagItem.png

  • Select the checkbox Do you want to Encrypt
  • Click on Save button
  • Now Databag and its item is created. Item body is shown in last column
  • Click on Close button to navigate back to Chef server management page

Puppet Server

Puppet Server is an application that runs on the Java Virtual Machine (JVM) and provides the same services as the classic Puppet master application. It mostly does this by running the existing Puppet master code in several JRuby interpreters, but it replaces some parts of the classic application with new services written in Clojure.

If you are using Puppet for your configuration management requirements, configure it in RLCatalyst. You can configure only one puppet server for one organization. Same puppet server cannot be associated with multiple organizations.

To configure a new puppet server follow the steps below:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Config Management
  • Click on Puppet Server
  • Click on New button provided
  • Enter the puppet server name in the Name box
  • Enter the user name in User Nane field
  • Enter the Hostname in Host Name field
  • Choose the organization from the Organization drop down list
  • Choose the Authentication by selecting Password / Pem file
  • Enter Password / Upload the pem file
_images/createPuppet.png
  • Click on Save button
  • Now your Puppet server is configured and listed in the Puppet Server Management page
_images/puppetList.png

Import nodes from Puppet Server

You can import existing nodes from the configured puppet server into RLCatalyst by selecting the required Business Group and Project. These imported nodes can be operated from the Workzone.

  • To import the existing nodes click on Import button
  • Select the node and the respective Environment for the dropdown
  • Select the environment from Environment drop down list for the node to be imported
  • Select the respective checkbox in the Action column
  • Click on the Import Nodes button
  • Select the business group from Business Group drop down list
  • Select the project from the Project drop down list
  • Enter the user name to access server for import in the User Name box
  • Choose authentication type from the Choose Authentication Type drop down list. RLCatalyst provide two types of authentication, you can either choose Password or by uploading the PEM file
  • Type Password or upload PEM file
  • Click on Import button
  • Close the popup containing the success message ‘Node imported’
  • The imported node will be available in the respective Environment of the Workzone

Note: For the imported node using puppet server , Puppet client run icon will be shown.

Hereby attaching a video which will demonstrate as in how to Create Puppet in RLCatalyst:


Environments

In an Organization you can create multiple Environments. These environments need to be linked to Projects back. For example: Production, Development, Testing and so on.

Follow the steps to setup a new Environment in an Organization:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Config Management
  • Click on Environments
  • Click on New button provided
  • Select the Organization from the Organization drop down list
  • Select the server from the Chef Server drop down list
  • You can see a list of environments in the drop down. These are the environments defined in your chef server account. You can select one from this drop down list OR you can Add new Environments to chef server by clicking on Add link provided right above the select an Chef Environment drop down
  • Now Enter the Environment name to be created
_images/addNewEnv.png

  • Click on Add button
  • Now select the environment you added to the chef server from the Chef Environment drop down list
_images/createEnv.png

  • Assign the project by toggling to ‘Yes’
  • Click on Save button.
  • Now the environment is setup and listed in the Environments page
_images/env.png

Hereby attaching a video which will demonstrate as in how to Create Environment in RLCatalyst:


Users Configuration

In Users Configuration we can create a user with particular role and assign teams.

Teams

As soon as an Organization is created 4 teams will get automatically created with organization name as Prefix. (Orgname_Admin, Orgname_DEV, Orgname_Devops and Orgname_QA).

You can add, update and remove Teams in RL Catalyst. Follow the steps below to Add, Update and Remove teams.

How to add a Team?

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Users Configuration
  • Click on Teams
  • Click on New button provided
  • Enter the name for the team that you want to create in the Name field
  • Provide a brief description of the team in the Description field
  • Select the organization from the Organization drop down list
  • Select the users that you want to assign to the Team
  • Assign the projects to the team by using the button provided in the Assign Projects section
  • New Team is created
_images/createTeam.png

How to Update or Remove a Team
You can update or remove a Team in RL Catalyst
To Edit the Team
  • Click on edit button to update Team details
To Remove the Team
  • Click on delete button to remove Team from the list

Hereby attaching a video which describes how to Create Teams in RLCatalyst:


User Roles

Below are the permission sets currently available for the user roles in Catalyst.

RL Catalyst provides three types of user roles.

  1. Admin : Top level user of RL Catalyst
  2. Consumer : Access rights on Design and Workzone with all permissions
  3. Designer : Access rights on Workzone with only Execute permission

These roles cannot be modified or deleted at any point of time.

_images/roles.png

Users

You can add, update and remove users in RL Catalyst. Follow the steps below to Add, Update and Remove users.

How to add a new user?

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Users Configuration
  • Click on Users
  • Click on New button provided
  • Enter a login name in the Login Name field
  • Enter the email address of the new user in the Email Address field
  • Enter the password and confirm password fields.
  • Choose the organization from the Organization drop down list
  • Select the appropriate role (Admin / Designer / Consumer)
  • Select the team.
_images/createUser.png
  • Click on Save button
  • New user is created and is availabe in Users page

Hereby attaching a video which describes how to Create Users in RLCatalyst:


Provider Configuration

In Provider Configuration we can create a user with particular role and assign teams.

Providers

RLCatalyst supports infra automation across providers like AWS, Azure, VMware, Openstack. Each provider needs to be configured with the proper credentials amd other required details before it can be used.

You can configure multiple cloud provider accounts of type AWS, AZURE, OPEN STACK and VMWARE within RLCatalyst.

To configure the Providers setup follow the steps below:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Provider Configuration
  • Click on Providers
  • Click on New button provided
  • Select the provider from the Provider Type drop down list (e.g. AWS)
  • Enter the name of the provider in the name field
  • To add AWS Provider Account

RLCatalyst supports 2 types of authentication into the AWS account.

IAM Role - RLCatalyst supports authentication using IAM roles, in cases when user doesnt want to enter secret keys and access keys. This requires the RLCatalyst instances to be on AWS and is launched with an IAM role. The credentials will be acquired by rlcatalyst from its instance metadata . Only such provider account can be added per orgnaization in the current version of RLcatalyst . All AWS API requests made from catalyst by the default provider will be signed with security credentials fetched from instance metadata.

Prerequisites - RLCatalyst should be deployed on an AWS instance. This AWS instance should be launched with an IAM role with permissions to launch EC2 instances and CFTs. Also, new instances from rlcatalyst can only be launched in the same AWS account in which catalyst is running.

Refer to http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html for more details

To choose this mode, unselect the checkbox Requires Access Credentials

Secret key and Access key - This method requires the access key and secret key to authenticate access to the AWS provider account.

To choose this mode select the checkbox Requires Access Credentials

  • Provide the access key in the Access Key field
  • Provide the secret key in the Secret Key field
  • Provide the bucket name in the S3 Bucket Name field
  • Select the organization from the Organization drop down list
  • Select the region from the Region drop down list where your provider is located
  • Select the key pair for the provider from the Key Pair drop down list
  • Upload the .pem file for Provider
_images/createProvider.png
  • Click on Save button
  • Now Provider is successfully configured to RLCatalyst
  • To add Azure Provider Account

    • Provide the Subscription ID
    • Provide the Client ID
    • Provide the Client Secret Key
    • Provide the Tenant ID
    • Upload the Pem file
    • Upload the private Key file
    • Select the organization from the Organization drop down list
    • Click on Save button
    • Now Provider is successfully configured to RLCatalyst
  • To add OpenStack Provider Account

    • Provide the Username
    • Provide the password
    • Provide the Host
    • Provide the Project name
    • Provide the Tenant ID
    • Provide the Tenant Name
    • Provide the Compute Service Endpoint
    • Provide the Identity Service Endpoint
    • Provide the Network Service Endpoint
    • Provide the Image Service Endpoint
    • Provide the Instance key Name
    • Upload the pem file for Instance
    • Select the organization from the Organization drop down list
    • Click on Save button
    • Now Provider is successfully configured to RLCatalyst
  • To add VMWare Provider Account

    • Provide the Username
    • Provide the password
    • Provide the Host
    • Enter the DC
    • Select the organization from the Organization drop down list
    • Click on Save button
    • Now Provider is successfully configured to RLCatalyst

Hereby attaching a video which will demonstrate as in how to Create Providers in RLCatalyst:


Provider Sync for AWS

Provider sync allows you to import unmanaged instances to Catalyst.

Follow the below steps for AWS provider sync:

  • Create an AWS provider as shown above. The Created provider will be available in Providers page
_images/createAWS.png
  • Click on the Sync Instance button of the provider.

    1. Tags: you have two sections, left side you will get the tags which are present in ur AWS acccount will shown here and you can add description for your refrence only. And right side you can map the tags with Business Group, Project and Environment, Specify which tags represent Business Group, project name and the environment name. Once you will save it, you can see the refelection in Mapping tab.
    _images/providers.png
    1. Mappings: In Mapping, all the mapped Tag Values would be visible with respect to Business Group, Projects and Environment. Select one tag name for Business Group, project from drop down as well as Environment tag name for Environment And save the changes. Now go to Instances tab.
    _images/mapping.png
    1. Instances: You have 3 catalyst status:

      • Managed: If catalyst status is ‘Managed’, you will get all “Bootstraped successfull Instances”. You can delete the instances from here.
      • Assigned: If you want to assign some unassigned Instance then you have to update tags corresponding to the mapping.
      • Unassigned: Here you will get all other Instances available in your AWS account. Here you can update the tags value by selecting the node.

      Unassigned Instances:

      _images/unassignedInstances.png

      Assigned Instances:

      _images/assignedInstance.png

      Managed Instances:

      _images/managedInstances.png
    2. RDS: Amazon Relational Database Service (Amazon RDS) is a web service that makes it easier to set up, operate, and scale a relational database in the cloud. It provides cost-efficient, resizeable capacity for an industry-standard relational database and manages common database administration tasks.

      Unassigned RDS:

      _images/unassignedRDS.png

      Assigned RDS:

      _images/assignedRDS.png

    5. S3: A bucket is a logical unit of storage in Amazon Web Services (AWS) object storage service, Simple Storage Solution S3. Buckets are used to store objects, which consist of data and metadata that describes the data. It is the account bucket name, where we store all the information regarding AWS Provider like instances cost and usage.

    _images/unassignedS3.png

    Assigned S3:

    _images/S3.png

Following video demonstrates how to do provider sync in RLCatalyst:


VM Images

An image of a virtual machine is a copy of the VM, which may contain an OS, data files, data to be installed on multiple VMs and applications.It is usually tested for security, reliability and has the best tested conflagrations.

Adding a New VMImage

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Provider Configuration
  • Click on VMImages
  • Click on New button provided
  • Enter the image name in the Name field
  • Select the organization from the Organization drop down list
  • Choose the provider from the Choose Provider drop down list
  • Select the operating system type from the Operating System drop down list
  • Provide the image identifier name in the Image ID field
  • Provide the admin user name in the Admin User Name field
  • Provide the admin password in the Admin Password field
  • Click on Save button
_images/createVM.JPG
  • Now new VM Image is added and available in the VM Image list

Hereby attaching a video which will demonstrate as in how to Create VM Images in RLCatalyst:


How to add Windows VMImage?

Before onboading Windows nodes into RLCatalyst, we need to ensure that WinRM is configured on the windows guest node, the two ports 5985 & 5986 are opened for communication between RLCatalyst and node.

The settings below must be added to your base server image or passed in using some sort of user-data mechanism provided by your cloud provider.

Steps (To be performed from a windows host):

  1. Use remote desktop to connect to the node (Start->Run->MSTC).
  2. Provide the IP Address / Host name of the node along with the username and password.
  3. Once connected to the node,
  1. Open / Run powershell as an administrator

  2. Execute the below commands (you could copy and paste all the commands together)

    winrm quickconfig -q

    winrm set winrm/config/winrs @{MaxMemoryPerShellMB=”300”}’

    winrm set winrm/config @{MaxTimeoutms=”1800000”}’

    winrm set winrm/config/service @{AllowUnencrypted=”true”}’

    winrm set winrm/config/service/auth @{Basic=”true”}’

    winrm set winrm/config/client/auth @{Basic=”true”}’

    netsh advfirewall firewall add rule name=”WinRM 5985” protocol=TCP dir=in

    localport=5985 action=allow

    netsh advfirewall firewall add rule name=”WinRM 5986” protocol=TCP dir=in

    localport=5986 action=allow

    net stop winrm

    Set-Service WinRm -StartupType Automatic

    net start winrm

Note: Press enter to execute the last command, if you have copy - pasted the above commands.

  1. To create an image from this node, follow the instructions given by the cloud service provider for image creation.
  1. Remember to create a local admin user before generating an image, as image generation wipes out existing administrator account, which will be manageable only from the server’s console and not remotely.
  2. Install all necessary updates before creating the image.
  3. Use the Windows sysprep utility to create the image.
  4. Details about using the sysprep utility can be found here (https://technet.microsoft.com/en-in/library/hh824938.aspx)

DevOps Roles

Add all your DevOps accounts and tools data here. This includes your Nexus Server, Docker and Jenkins . All of these are optional in RLCatalyst

Nexus Server

Nexus is a repository manager. It allows you to proxy, collect, and manage your dependencies so that you are not constantly juggling a collection of JARs. It makes it easy to distribute your software. Internally, you configure your build to publish artifacts to Nexus and they then become available to other developers. You get the benefits of having your own ‘central’, and there is no easier way to collaborate.

RLCatalyst works with different repositories where you have kept your artifacts . If you have a nexus repository, add it here

To configure a new Nexus server follow the steps below:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Devops Roles
  • Click on Nexus Server
  • Click on New button provided
  • Enter the Nexus server name in the Nexus Server Name field
  • Enter nexus server username in the User Name field
  • Enter nexus server password in the Password field
  • Enter nexus server URL in the Nexus Server URL field
  • Choose the organization from the Organization drop down list
  • Click on + icon present next to Nexus Group ID Details and enter valid Nexus GroupID and save
_images/nexusDetails.png
  • Assign Projects are optional
  • Click on + icon present next to Repository Details and select valid Repository Name from the drop down and save
_images/nexusDetails01.png
  • Click on Save button
  • Now the Nexus server setup is ready and listed in the Nexus Server page
_images/nexusList.png

Hereby attaching a video which will demonstrate as in how to Create Nexus in RLCatalyst:


Docker

Docker is all about making it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.

You can configure the Docker setup with RLCatalyst. To configure the Docker setup follow the steps below:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Devops Roles
  • Click on Docker
  • Click on New button provided
  • Select the Organization from the Organization drop down list
  • Provide a reference name in the Reference Name field
  • Provide the registry in the Docker Hub Registry field provided
  • Provide the Docker user ID in the User ID field
  • Provide the email address to connect to the Docker in the Email Id field
  • Enter the Docker password in the Password field
  • All assigned projects will display in Assign Projects field
  • Add Repositories Details
_images/createDocker.png
  • Click Save button
  • Now Docker is successfully configured to RL Catalyst

Hereby attaching a video which will demonstrate as in how to Create Docker in RLCatalyst:


Jenkins

Jenkins is CI/CD tool which can be used for build and deployment automation. You can configure the Jenkins setup with RLCatalyst.To configure the Jenkins setup follow the steps below:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on DevOps Roles
  • Click on Jenkins
  • Click on New button provided
  • Select the Organization to which the Jenkins server will be attached to
  • Enter the name in the Name field
  • Enter the Jenkins Server URL
  • Enter the user ID in the User ID field
  • Enter the Jenkins password in the Password field
_images/createJenkins.png
  • Click Save button
  • Now Jenkins is successfully configured to RLCatalyst

Hereby attaching a video which will demonstrate as in how to Create Jenkins in RLCatalyst:


Track Setup

Configuring Track Setup

The Track Setup option in RL Catalyst provides you to add new dashboard items of type Provider, Monitoring, Logs and Notification options.

Adding New Provider Dashboard in Track setup

In Provider dashboard you will be able to see Total number of Instances , Total number of Managed Instances and Total number of Unmanaged Instances for each provider.

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Track Setup
  • Click on Dashboards
  • Click on New button provided
  • Choose the Type as Provider
  • Enter the Description and Item Name
  • Enter the Item URL in this format (http://ipaddress:port/public/Dashboard.html)
_images/dashboard01.png
  • Click on Save button

Adding New AWS Summary Dashboard in Track setup

In Summary Dashboard you will be able to see the Total Cost, Today’s Cost, Active Instances details

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on Track Setup
  • Click on Dashboards
  • Click on New button provided
  • Choose the Type as Provider
  • Enter the Description and Item Name
  • Enter the Item URL in this format (http://ipaddress:port/public/dashing.html )
  • Click on Save button.

Once You save the list of dashboards will be displayed in table

CMDB Configuration

A configuration management database (CMDB) is a repository that acts as a data warehouse for information technology (IT) installations. It holds data relating to a collection of IT assets (commonly referred to as configuration items (CI)), as well as to descriptive relationships between such assets.To configure the CMDB setup follow the steps below:

  • From the main menu click on Settings
  • Once you click on Settings, from the side menu click on CMDB Configuration
  • Click on CMDB
  • Click on New button provided
  • Enter Configuration Name
  • Enter ServiceNow URL
  • Enter user name in the UserName field
  • Enter password in the Password field
  • Select the Organization to which the Jenkins server will be attached to
_images/createCMDB.png
  • Click Save button
  • Now ServiceNow CMDB is successfully configured to RLCatalyst

BOTs

BOTs are ready-made automated scripts.

If you have not configured your BOTs setup, ask your admin to set up BOTs.


BOT Executor

BOT is nothing but a piece of an Automation. It would be in the form of scripts, cookbooks etc..It can start the work<<Execute the task<<stop.RLCatalyst BOTs Factory work as the job scheduler.

Connect RLCatalyst to BOT Executor

Please follow the below steps in order to configure the Executor from Catalyst UI

  • Login to the Catalyst UI >> Go to the Settings >> Move your cursor on Menu (Top left side) >> Click on BOTs >> Click BOTs Executor
  • Now Click on New (Top Right side) >> Give the Name of the Executor >> Select Organisation >> Put the BOT engine IP in BotEngine URL section >> Put 2687 in Host Port >> Select the same OS of the Botengine Machine. >> Click Save.
  • When the BOTs Server executes a BOT, it chooses the appropriate executor based on the type of BOT. E.g. Linux BOT will run on Linux executor only. If an appropriate executor is not configured or available, the execution will fail.
_images/botexecutor_new.png

Follow the steps to make your executor Active and Inactive

  • Login to the Catalyst UI >> Go to the Settings >> Move your cursor on Menu (Top left side) >> Click on BOTs >> Click BOTs Executor >> Click on the edit button (Pencil)
  • Now click active or inactive as per your requirement >> Click on the Save button
_images/active_bot.png

ServiceNow is a software platform which supports IT Service Management (ITSM). It helps you to automate IT Business Management.This is cloud-based platform.We are configuring ServiceNow with catalyst to get the BOT ticket details. BOTs Server can integrate with ITSM platform like ServiceNow to integrate with the ITSM process.

Please follow the below steps in order to configure the ServiceNow from Catalyst UI

  • Login to the Catalyst UI >> Go to the Settings >> Move your cursor on Menu (Top left side) >> Click on BOTs >> Click ServiceNow server
  • Now Click on New (Top Right side) >> Give the Name of configuration >> give URL of ServiceNow >>provide ServiceNow username and password details<<select orgarnization<<click on save button
_images/service_new.png

Design

User defined Blueprints can be created in the Design section associated with the respective providers and Template Types.

If you want to know about Template types please refer to Gallery Setup .

Blueprints are predefined templates which can be used by service consumers to Launch the instances. Blueprints are designed by Service Designers. Each blueprint stores the metadata of the instance, variables, actions and activity.

RL Catalyst Design options allows you to create Blueprints by using predefined templates.

Creating BluePrints for AWS provider

1. Software Stack

Provider: It offers some form of IT infrastructure that is commercially distributed and sourced across several subscribers - typically businesses. Cloud providers deliver cloud solutions through on-demand, pay-as-you-go systems as a service to customers and end users. Cloud provider customers access cloud resources through Internet and programmatic access and are only billed for resources and services used according to a subscribed billing method.

Images: An image of a virtual machine is a copy of the VM, which may contain an OS, data files and applications.

Region: An AWS account provides multiple regions so that you can launch Amazon EC2 instances in locations that meet your requirements.

VPC: Amazon Virtual Private Cloud, lets you provision a logically isolated section of the Amazon Web Services (AWS) Cloud where you can launch AWS resources in a virtual network that you define.

Subnet: A subnet is a range of IP addresses in your VPC. You can launch AWS resources into a subnet that you select.

KeyPair: Amazon EC2 uses public–key cryptography to encrypt and decrypt login information. Public–key cryptography uses a public key to encrypt a piece of data, such as a password, then the recipient uses the private key to decrypt the data. The public and private keys are known as a key pair.

Instance Type: It specifies the hardware of the host computer used for your instance.

Security group: A security group acts as a virtual firewall that controls the traffic for one or more instances. When you launch an instance, you associate one or more security groups with the instance. You add rules to each security group that allow traffic to or from its associated instances.

Instances to Launch: Indicates how many instances you want on launch of that particular blueprint.

  • In the Design page select AWS Provider and choose Software Stack Template Type and click Next
_images/templateTypeList.JPG
  • From the Template cards choose template and click Next

NOTE - If you have not created a template of Software Stack template type in Settings, follow the instructions at Template Types.

_images/templateList.JPG
  • Once you choose the Template, Enter the details for creating the BluePrint

Configure Provider Parameters - Choose OS, Provider, Image, Region, VPC, Subnet, Keypair, Instance Type, Security Group,No of Instances.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

_images/bpCreation.png

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

NOTE - You can customize the order of Runlist after adding to runlist and then clicking on up and down arrows.

_images/runlistUpdate.JPG
Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and save.

Following video demonstrates how to create Blueprint for AWS provider in RLCatalyst:


2. Docker

  • In the Design page select AWS provider and choose Docker Template Type and click Next
  • Choose the Docker Template and click Next

NOTE - If you have not created a template of Docker template type in Settings, follow the instructions at Template Types.

  • Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name
_images/createBpDocker.JPG
  • Click Launch Parameters icon and Enter Container Name, Port mappings, Volumes, Volumes-from, Linked Container name, Environment variables, Start up Command, Additional StartUp command and Add.
_images/dockerPopup.JPG

3. Cloud Formation

  • In the Design page select AWS provider and choose Cloud Formation Template Type and click Next
  • Choose the Cloud Formation Template and click Next

NOTE - If you have not created a template of Cloud formation template type in Settings, follow the instructions at Template Types.

  • Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name
_images/cftCreate.JPG
  • Configure Stack Parameters - Choose Region, Provider

NOTE - Remaining fields are the attributes present in the JSON file which you uploaded while creating Cloud Formation Template.

_images/cftCreateLast.JPG

Following video demonstrates how to create and launch cloud formation template in RLCatalyst:


4. OSImage

  • In the Design page select AWS Provider and choose OSImage Template Type and click Next
  • From the Template cards choose OSImage Template and click Next
NOTE-
  1. In OSImage template type the VMImages which you created in Settings -> VM Images page will be listed, based on the selection of the provider in the provider tree.
  2. Suppose If you select ubuntu image, In Choose provider parameters section Choose operating system, Choose Provider, choose available image is selected by default.
  3. Similarly when you select Centos or Windows image, In Choose provider parameters section corresponding operating system, provider and available image will be selcted by default.

Configure Provider Parameters - Choose Region, VPC, Subnet, Keypair, Instance Type, Security Group,No of Instances.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and Save.

Creating BluePrints for AZURE provider

1. SoftwareStack

Security Group Ports: Security group ports contains a list of Access Control List rules that allow or deny network traffic to your VM instances in a Network.

Locations: It enables Azure customers to achieve higher performance and it supports their requirements and preferences regarding data location.

  • In the Design page choose AZURE provider and SoftwareStack Template Type and click Next
  • Choose the SoftwareStack Template and click Next

NOTE - If you have not created a template of SoftwareStack template type in Settings, follow the instructions at Template Types.

Configure Provider Parameters - Choose OS, Provider, Image, Security Group Ports, Location, VPC, Subnet, Keypair, Instance Size, No of Instances.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and Save.

2. OSImage

  • In the Design page select AZURE Provider and choose OSImage Template Type and click Next
  • From the Template cards choose OSImage Template and click Next.

NOTE-

  1. In OSImage template type the VMImages which you created in Settings -> VM Images page will be listed, based on the selection of the provider in the provider tree
  2. Suppose If you select ubuntu image, In Choose provider parameters section Choose operating system, Choose Provider, choose available image is selected by default.
  3. Similarly when you select Centos or Windows image, In Choose provider parameters section corresponding operating system, provider and available image will be selcted by default.

Configure Provider Parameters - Choose Security Group Ports, Location, VPC, Subnet, Keypair, Instance Size, No of Instances.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and Save.

3. ARMTemplate

Resource group: It is a container that holds related resources for an application. The resource group could include all of the resources for an application, or only those resources that are logically grouped together.

  • In the Design page select AZURE Provider and choose ARMTemplate Type and click Next
  • Choose the ARMTemplate and click Next

NOTE - If you have not created a template of ARM template type in Settings, follow the instructions at Template Types.

NOTE - Make sure You have created Resource group in your Azure portal

  • Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name
  • Configure Template Parameters - Choose Provider, Resource Group

NOTE - Remaining fields are the attributes present in the JSON file which you uploaded while creating ARMTemplate.

Following video demonstrates how to create ARM Template, Blueprint, Launch, Update Configuration, Connect to the Instance in RLCatalyst:


Creating BluePrints for OpenStack provider

1. SoftwareStack

Flavours: Virtual hardware templates are called “flavors”. It defines sizes for RAM, disk, number of cores, and so on.

  • In the Design page select OpenStack Provider and choose SoftwareStack Template Type and click Next
  • Choose the SoftwareStack Template and click Next

NOTE - If you have not created a template of SoftwareStack template type in Settings, follow the instructions at Template Types.

Configure Provider Parameters - Choose OS, Provider, Image, Flavour, Network, Subnet, Security Group.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and Save.

2. OSImage

  • In the Design page select OpenStack Provider and choose OSImage Template Type and click Next
  • Choose the OSImage Template and click Next

NOTE-

  1. In OSImage template type the VMImages which you created in Settings -> VM Images page will be listed, based on the selection of the provider in the provider tree.
  2. Suppose If you select ubuntu image, In Choose provider parameters section Choose operating system, Choose Provider, choose available image is selected by default.
  3. Similarly when you select Centos or Windows image, In Choose provider parameters section corresponding operating system, provider and available image will be selcted by default.

Configure Provider Parameters - Choose Flavour, Network, Subnet, Security Group.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and Save.

Following video demonstrates how to create Openstack Blueprint, Launch, Update Configuration, Connect to Instance, Add Application URL in RLCatalyst:


Creating BluePrints for VMware provider

Datastore: A datastore is a manageable storage entity, usually used as a repository for virtual machine files including log files, scripts, configuration files, virtual disks, and so on.

1. SoftwareStack

  • In the Design page select VMware Provider and choose SoftwareStack Template Type and click Next
  • Choose the SoftwareStack Template and click Next

NOTE - If you have not created a template of SoftwareStack template type in Settings, follow the instructions at Template Types.

Configure Provider Parameters - Choose OS, Provider, Image, Data Store, No of Instances.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and Save.

2. OSImage

  • In the Design page select VMware Provider and choose OSImage Template Type and click Next
  • Choose the OSImage Template and click Next
NOTE-
  1. In OSImage template type the VMImages which you created in Settings -> VM Images page will be listed, based on the selection of the provider in the provider tree
  2. Suppose If you select ubuntu image, In Choose provider parameters section Choose operating system, Choose Provider, choose available image is selected by default.
  3. Similarly when you select Centos or Windows image, In Choose provider parameters section corresponding operating system, provider and available image will be selcted by default.

Configure Provider Parameters - Choose Data Store, No of Instances.

Configure Organization Parameters - Choose Organization, Business Group,Project and Enter Blueprint name.

Configure Runlist Parameters - Click + icon (Edit Runlist), select Cookbooks / Roles and add to Runlist and update runlist.

Configure Application - Application URL allows you to navigate to the application from the Instance Card.
Application URL - Add the Application Name and URL in below format [http://$host:port/appname] and Save.

Workzone

RL Catalyst Workzone is an option all the settings take action. Workzone has below options:

Infrastructure:
  1. Instances : It displays the numbers of instances that currently launched and running.
  2. Blueprints : This options allows you to launch instances.
  3. Cloud Formation : It displays the list of stacks launched from cloud formation blueprints.
  4. AzureARM: It displays the list of Deployments launched from Azure ARM Blueprints.
  5. Containers : Container details launched from docker blueprints.

Orchestration: This options allows you to execute one or more tasks/actions on multiple nodes.

Applications: Here user can deploy new applications and deployed applications will be shown in card or table view will all details.

Here user can deploy new applications and deployed applications will be shown in pipeline view and table view with all details.

Launch New Instances

Instances are launched from Blueprints. Follow below steps to launch Instances from blueprints.

  • Go to Workzone → Click on Infrastructure drop down → Choose Blueprints
_images/softBlueprint.JPG
  • Select the Blueprint and click on Launch button. Once the ‘Launch’ button is clicked, the instance will be launched in 5-8 minutes
  • Go to Instances tab to view the launched instance
_images/instances.JPG
View Instances in Table View

RL Catalyst on the Instances page provides you two kinds of views.

  • Grid View[Above Image]
  • Table View[Below Image]

You can click on the respective button to view the instances.

_images/tableView.JPG
Instance Actions:

On the launched instance user can perform below actions.

  • Chef Client Run
  • SSH
  • Stop / Start
  • MoreInfo
  • Chef Client Run option allows you to update the Chef Client Runlist. You can add new software to the Runlist and click on Update
  • SSH, this option allows you to open the command prompt Terminal. You can execute your commands directly using this option
  • Stop, This option allows you to start and stop an Instance
  • More Info, This option displays the information about the Instance. You can view the logs of the Instance

Update Configuration

Any extra action on the running instance can be performed via the Chef client Run icon, which is displayed at the bottom left corner. Installing new software, upgrading a software etc can be performed using this icon.

A Cookbook is the fundamental unit of configuration and policy details that Chef uses to bring a node into a specific state. This just means that Chef uses cookbooks to perform work and make sure things are as they should be on the node.

A Role is a way to define certain patterns and processes that exist across nodes in an organization as belonging to a single job function. Each role consists of zero (or more) attributes and a run-list. Each node can have zero (or more) roles assigned to it.

A Run-list defines all of the information necessary for Chef to configure a node into the desired state.

A Template is user defined skeleton structure which helps the user to add Cookbooks,Roles that can be runned on the Instance, which you created in Settings.

Follow below steps to run chef client run:

  • Click on Chef client run icon

From here you can add Roles, Cookbooks [Present in your chef server] and Templates [Created in Settings] to the Runlist.

_images/chefClientRun.JPG
  • Select any cookbook and move to Runlist by clicking > icon
  • Click on Update button.
  • Click OK on confirmation popup to update runlist
_images/confirmChefClient.JPG
  • Instance Logs window will be displayed to see the logs
_images/instanceLogs.JPG
  • Click on Close button to close the Instance logs window

Connect to the Instance

Follow below steps to connect to Instance:

  • Click on the SSH icon present on the instance
  • Enter the Username of the Instance
  • Select the authentication type by selecting password / pem file
  • Enter the Password or Browse the Pem file
_images/sshTerminal.JPG
  • Click on Submit button
_images/sshShell.JPG

Following video demonstrates how to Launch Blueprint, Update Configuration and Connect to the Instance in RLCatalyst:


Start Instance

Catalyst allows you to start the instance which is already stopped.

Follow below steps to start the Instance:

  • Click on the Start icon of the stopped instance
  • Instance will be started and turn to Green color. Chef Client , SSH button will be enabled
_images/startedInstance.JPG

Stop Instance

Catalyst allows you to stop the instance which is already Running.

Follow below steps to stop the Instance:

  • Click on the Stop icon present on the instance
  • Click OK on confirmation popup
_images/stopConfirm.JPG
  • Instance status is showing as stopped and red icon will be shown

Note: User can perform stop / start action only for the launched node from catalyst.

Note: For the imported node from IP address Stop button will be grayed out will be shown later.

Note: For the Stopped Instance, Chef client SSH buttons will be disabled.

_images/stoppedInstance.JPG

Import By IP

In the Instances page, you can import any running instances to the catalyst application using Import By IP option, follow the below steps to import:

  • Click on Import button in righttop corner of the page.
  • Import Instance By IP window opened.
  • Provide the IP address which needs to be Imported
  • Choose the operating system from Choose Operating System drop down list
  • Provide the user name in the Username box
  • Provide Configuration Management option like RL Chef Server.
  • Choose authentication type from the Choose Authentication Type drop down list. RL Catalyst provide two types of authentication, you can choose Password or by uploading PEM file
  • Type Password or upload PEM file
  • Provide the application name in the Name box and the host URL in the URL box
  • You can also Add application with name and URL details.
  • Click Import to start importing the Instance
images/Import_button.PNG
_images/ImportbyIP.jpg
  • Node will be imported and displayed in the instances tab. For the imported node Stop button will be disabled
_images/importNode.JPG

Following video demonstrates how to Import a Node by IP Address and connect to Instance from RLCatalyst:


Cloud Formation Templates

Follow below steps to launch Cloud formation blueprints:

  • Go to Workzone → Click on Infrastructure dropdown → Select Blueprints option → Click on ‘Cloud Formation’ template type
_images/cftBlueprint.JPG
  • Select the cloud formation blueprint and click on Launch button
  • Enter the Unique Stack Name in the popup window
_images/cftPopup.JPG
  • Click on Submit button
  • Confirmation pop will be displayed with Stack ID
_images/cftStackid.JPG
  • Close the popup
  • Go to Infrastructure - > Cloud Formation , the CFT stack will be listed
_images/cftStacks.JPG
  • Go to Instances tab to see the launched Instance

Docker Blueprints

Follow below steps to launch docker blueprints:

  • Go to Workzone → Click on Infrastructure dropdown → Select Blueprints option → Click on ‘Docker’ template type
_images/dockerBlueprint.JPG
  • Select the docker template which is listed and click on Launch button
  • Click OK on the Confirmation popup
  • Click Next button in the Launch docker blueprint window
_images/launchDocker.JPG
  • Select the node on which you are going to launch docker blueprint and click on Start button
_images/selectNode.JPG
  • Logs window will be displayed and wait until the installation successfull
  • Go to Infrastructure - > Containers tab, the container details will be listed
_images/docker.JPG

Following video demonstrates how to Configure Docker and Launch Containers in RLCatalyst:


Control Panel

The Control Panel option displays the detailed information on the selected Instance . It displays information such as Blueprint Information , Hardware information, Software Information, Configuration Management, Additional Parameters, Services, Actions and Logs.

_images/controlPanel.JPG

Inspect Software

Inspect functionality allows user to know the installed software on the Instance.

  • Go to Instance Control panel
  • Click on Inspect Software button
  • Popup is displayed to know the installed software on the instance
_images/inspect.JPG

Convert to Workstation

  • Go to Instance Control panel → Services tab
  • Click on ‘Convert To Workstation’ button
  • Click on ‘OK’ button
  • Confirmation pop up is displayed saying ‘Your workstation has been setup successfully. The .chef folder is available in Home’.
_images/workStation.JPG
  • Click on OK button to close the popup

View Action History

Action history feature allows user to view the history of the actions performed on the Instances with complete details.

  • Go to Instance Control panel
  • Click on Action History tab
_images/actionHistory.JPG

Orchestration

Orchestration option allows you to execute one or more tasks/actions on multiple nodes.

Chef Task

  • Go to your respective Environment, click on Orchestration
  • To add a new task click on the New button
  • Select the task type from the Select Task Type drop down list (Chef)
  • Enter a task name in the Task Name box
  • Select the nodes from the Select Nodes list for which you want to assign task
  • Click on Edit Runlist icon and add cookbooks to the runlist
  • Click on Update runlist button
  • You can also select the Cookbook Attributes
_images/orchestration.JPG
  • Click Save button to save the task
  • The task is added to the Orchestration list
_images/orcList.jpg

Following video demonstrates how to create and run Chef Task in RLCatalyst:


Jenkins Task

  • Go to your respective Environment, click on Orchestration
  • To add a new task click on the New button
  • Select the task type from the Select Task Type drop down list (Jenkins)
  • Enter a task name in the Task Name box
  • Select the server from the Select Jenkins Server drop down list
  • Select the job from the Select Job drop down list
  • Select the Auto synch button to ‘Yes’ [ This will show previously existing task execution history]. If you set to ‘NO’ previously existing task history will not be shown
  • Job URL - The selected job url will be shown here
  • Add Job Links for the Jenkins task - You can add external links to view the results
_images/jenkinsTask.JPG
  • Click Save button to save the task
  • The task is added to the Orchestration list
_images/tasklis.JPG
Edit or Remove a Task

You can edit or remove a task. Follow the steps below.

  • Click on Edit button to edit a task from the Orchestration list
  • Click on Delete button to remove a task from the Orchestration list

Execute Task

You can execute a task (Chef and Jenkins) by clicking Execute button in the list of tasks page.

Once you execute the task, Execute logs window will pop-up shows the status of the execution.

Task History

You can view the task history by clicking the History button in the list of tasks page. Once you click on the history button, Task History window will pop-up and shows the history of the task.

The following information is shown in the history of task:

  • Job number
  • Job output links including logs info
  • Status
  • Start time
  • Endtime
  • Logs
_images/history.JPG

Following video demonstrates how to create and execute Jenkins Task in RLCatalyst:


Application Deployment

RLCatalyst makes your application deployments easy through its Orchestration feature. The artifacts or the build files can be sourced from Nexus or Docker repositories and you can deploy into single or multiple instances. The deployments happens through Jenkins or Chef based tasks , that can be configured from RLCatalyst.

Prerequisites:

  1. A repository (Nexus/Docker) should be added from Settings
  2. Repository should be attached to one or more projects.
  3. There should be connectivity between the repository, the target instances and the RLCatalyst instance
  4. There should be to & fro connectivity between RLCatalyst and the target instance

If you have not added a repository in Settings, follow the instructions at Nexus Server.

Once Nexus Server is configured you have to associate Repository details to your Project.

CASE I: First time a new application has been deployed and it is deployed using Catalyst

Follow the below steps :

  • Go to Projects Page
  • Edit your Project
  • Click on + icon present next to Repository Details
  • Select your Repository Server and Repository Name
_images/repoDetails.png
  • Click on Save button on Add Repository Details page
  • Click on Save button on Edit Project Page

App Blueprint

Once you associate repository details to your project now start creating blueprint. Follow the below steps:

  • Go to Design
  • Select Software Stack Template Type and click Next
  • Select any Template and click Next
  • Configure Provider Parameters by selecting all provider parameters
  • Configure Organization Parameters by selecting
  • Configure Runlist Parameters by adding deploy_upgrade_catalyst cookbook
_images/editRunlist.png
  • Click on Update Runlist
  • Expand Configure Application
  • Select Deploy app during Bootstrap checkbox
  • On selecting checkbox all Repository details will autopopulate and the latest version will be always selected. [Note: If you select previous version also by default it will take latest version]
_images/deployApp.png
  • If you want to specify the URL at which the application is running, specify the URL in the format http://$host:3001
  • Click on Next button
  • Click OK button in Confirm popup window
  • Blueprint Saved Successfully message is displayed
_images/saveBlueprint.png

Launching Blueprint

  • Go to Workzone
  • Click Infrastructure dropdown and Select Blueprints tab
  • Expand Software Stack
  • Select the Instance and Click on Launch button
  • Go to Instances tab and you can see node will be launched and wait until bootstrap is successfull
_images/launchedNode.png
  • Go to Applications tab
  • You will see the Application details with Name, Version, IP Address of the node and Time
_images/appDeployment.png
  • Now copy the IP address where application is deployed and open new tab and paste IP address with port number. [Eg: 52.35.121.37:3001 ]
_images/runCatalyst.png
  • Now Catalyst application is installed with the version 3.02.63 on the launched node. [See the version at bottom right corner of the window]

Deploy New App

Now I will show you how to upgrade latest version of catalyst application on the same node.
  • Go to Applications tab
  • Click on Deploy New App button
  • Enter the Repository details by selecting latest version [ Here latest is 3.02.64]
_images/newAppDeploy.png
  • Click on Create New Job button
  • Enter the Job name
  • Select the Node on which you are going to upgrade latest version
  • Add the cookbook deploy_upgrade_catalyst to the runlist
_images/newJenkinsJob.png
  • Click on Save button
  • Click OK button on Task Success popup window
  • Click on Jobs dropdown
  • Select the Job which is created in previous step
_images/selectJenkinsJob.png
  • Click on Deploy button
  • Click OK button on Confirmation popup window
  • Execute Logs window will open and wait until Task execution is successful
_images/executeLogs.png
  • Close Execute Logs window
  • Now you can see Applcation card is displayed with Application details with Name, Version [3.02.64], IP address of the node and Time
_images/applicationsTab.png
  • Now copy the Ip Address where application is deployed and open new tab and paste Ip Address with port number. [Eg: 52.35.121.37:3001 ] and verify the latest version [3.02.64] of the application is deployed on the node in right bottom corner of the window
_images/onNode.png

CASE II: User has the application(s) running over several exisitng environments and all the application details must be imported to Catalyst

Pre-requisite: 1) The http/https request ports need to be open from the server for catalyst to get the information 2) Target instance(Application instance) must be part of Catalyst env that means that particular machine has been imported to the particular environment 3) Jenkins job must be associated for that particular ip/instance, the job parameters must be application name, nodeip, env, version, apptype, containerid, containeport etc.

Please specify the following piece of code in the jenkin’s Job for deployment to see the Application cards in Catalyst.

# Code for App Deployment history information via jenkins

exitStatus=$? export APPSTATUS if [ $exitStatus -eq 0 ] then

echo “Successfull” APPSTATUS=”Successfull”
else
echo “Failure” APPSTATUS=”Failure”

fi echo $APPSTATUS export APPVERSION=”###<specify the major version>” echo $APPVERSION export LASTDEPLOY=”$(date +’%y-%m-%d %r’)” echo $LASTDEPLOY export IP=”$(hostname -I)” export THISHOST=”$(hostname)” export APPINSNAME=”Application name” export applicationNodeIP=”XXX.XXX.XXX.XX” e.g. 192.168.105.22

#Send the information for Catalayst Application tab

curl -X POST -H “Content-Type: application/json” -d ‘{“appDeployData”: {“applicationNodeIP” : “192.168.105.22”,”applicationName”: ” Application name “,”applicationInstanceName”: “’”$APPINSNAME”’”,”applicationVersion”: “’”$APPVERSION”’”,”applicationNodeIP”: “’”$IP”’”,”applicationLastDeploy”: “’”$LASTDEPLOY”’”,”applicationStatus”: “’”$APPSTATUS”’”,”applicationType”: “Package”,”containerId”: “”,”hostName”: “’”$THISHOST”’”,”appLogs”: “’”http://jenkinsip:port/job/$JOB_NAME/$BUILD_NUMBER/console”’”,”envId”: “QA”}}’ http://catalyst:ipaddress:port/app/deploy

Following video demonstrates how to do AppDeploy in RLCatalyst:


Track

  • If you have not configured your Track setup,follow the instructions at Track Setup.

Click on Track link in the header. By default first link i.e, Provider Dashboard will be selected. Here you will be able to see total number of provider you are added in the catalyst with Total number of instances, Total number of managed instances, and Total number of unmanaged instances.

_images/summary.png

Click on AWS Summary Dashboard link in Tree Structure

Here you will be able to see

  • Billing Period Cost
  • Monthly Cost
  • Todays cost
  • Yesterday Cost
  • Active Instances
  • EBS Volume
  • S3 Buckets
  • Elastic IPS
  • R53 Zones
_images/summaryDash.png

Cloud

Cloud is the cost, usage and capacity of cloud. It unlocks more insightful questions and produces more accurate outcomes by mapping relationships among high volumes of connected data

Prerequisites: A cloud account should be added in RLCatalyst settings.

How it is working:

  • Aggregate and graphically represent statistical AWS resource cost data at different granuralities across time intervals to assist end user to easily analyse and optimize resource usage.
  • Collect and graphically represent usage trends data of provisioned AWS resources across time intervals to assist end user in identifying resource utilizations patterns and optimize deployment strategies.
  • Provide APIs to access usage and cost analytics data at different granuralities across time intervals to enable automation of usage analysis to gain insights and to develop prediction algorithms based on these insights to optimize resource utilization and reduce cost.

How to use:

Navigate to Cloud tab in the header. There is Menu at left handside and under the analytics we can see below options:

  1. Capacity
  2. Cost
  3. Usage

Cost

Cost is Cloud Cost on data.

Page has two tabs Dashboard and Reports.

  1. Dashboard: By default it will show Dashboard details in the form of graph. Dashboards let you monitor many data at once, so you can quickly check the health of your accounts or see correlations between different reports.
_images/analyticsDashboard01.png _images/analyticsDashboard02.png

AWS cost analytics:

  • Collect hourly costs for all AWS resources for all added providers.

  • Aggregate hourly, daily, monthly and yearly costs for catalyst entities and provider specific entities based on resource allocation.

    • Catalyst entities: organization, business unit, project, environment, provider type, provider, resource
    • Provider specific entities: region, resource types (EC2, S3, RDS etc)
  • Provide API to query for aggregated data based on catalyst and provider specific entities across time periods. Start date for aggregation shall be decided based on specified period. End date shall be specified by the consumer of the API

    • Periods: hour, month, day, year, 5 years, 10 years
  • Provide APIs to query for resource cost trend for specific catalyst and provider specific entities across time periods, for specified intervals. Intervals shall be limited based on the specified period, limited by the cap of number of data points in the response.

    • Intervals: hourly, daily, weekly, monthly, yearly
  • Time series data will be stored with UTC timestamps

We have total cost, and aggregated cost for different services EC2, S3, R53, other etc for the month segregated by Business Group, Region, Environment and Provider. To show the graph we have to do the mapping in provider sync, mapping tag values with Business Group, Project and Environment respectively. Graphs are in three forms:

  1. Aggregate Cost: It is a Pie Chart, which display all aggregated total cost details.
  2. Distribution of all services across Business Group: Here we have Bar chart, it is drill down of pie chart - grouped and stacked for services, in grouped the services would be available in single bar chart and in stacked the services would be in multiple bar charts.
_images/analyticsDashboard03.png _images/analyticsDashboard04.png
  1. Daily trends of cost across organization: It is a Line chart, the data would be on daily basis accross organization.
  1. Reports: In Reports tab the data will be in tabular form Name, Total Cost, Services.
_images/analyticsReports01.png

We have few options available for the table, on the right side of the table

_images/analyticsReports02.png

We can remove any colunm from the table by just clicking on the field name, let say remove “Total Cost”

_images/analyticsReports03.png

Now, “Total Cost” field is not available in the table.

We have two more options “Export all data as cvs”, it will export all data from the table in cvs format. And “Export visible data as cvs”, it will save only the visible data from the table, it will not save the removed data from the table.

  • Filter: We can filter the data on the basis of Organization and Provider.
_images/analyticsFilter01.png

If we want to filter the data on the basis of provider, we can select any provider from the drop down

_images/analyticsFilter02.png

Capacity

Capacity is number of Instances

_images/dashboardcapacity01.png

Page has two tabs Dashboard and Reports.

  1. Dashboard: Dashboard shows you the capacity of the Instances.

    • Total Capacity, it shows you the available number of instances
    • Services, it shows the capacity for services like s3, RDS etc.
    • Segregated by, the capacity would be Segregated by Business Group, Provider, Environment and Region

    We have two graphs

    1. Aggregate Capacity: It is a Pie Chart, which display all aggregated total capacity details.

      _images/dashboardcapacitygraph.png
    2. Distribution of all services across Business Group: Here we have Bar chart, it is drill down of pie chart

      _images/dashboardcapacity02.png _images/dashboardcapacity03.png
  2. Reports: In Reports tab the data will be in tabular form Name, Total Capacity, Services.

_images/capacityreports01.png

We have few options available for the table, on the right side of the table

_images/capacityreports02.png

We can remove any colunm from the table by just clicking on the field name, let say remove “Total Capacity”

_images/capacityreports03.png

Now, “Total Capacity” field is not available in the table.

We have two more options “Export all data as cvs”, it will export all data from the table in cvs format. And “Export visible data as cvs”, it will save only the visible data from the table, it will not save the removed data from the table.

  • Filter: We can filter the data on the basis of Organization and Provider.
_images/capacityfilter01.png

If we want to filter the data on the basis of provider, we can select any provider from the drop down

_images/capacityfilter02.png

Usage

Usage is machine level usage matric.

Page has two tabs Dashboard and Reports.

  1. Dashboard:
_images/dashboardusage01.png

We have 5 Usage Type:

  • CPUUtilization: The percentage of allocated EC2 compute units that are currently in use on the instance. This metric identifies the processing power required to run an application upon a selected instance.

    _images/dashboardusage01.png
  • DiskReadBytes: This metric is used to determine the volume of the data the application reads from the hard disk of the instance. This can be used to determine the speed of the application.

  • DiskWriteBytes: This metric is used to determine the volume of the data the application writes onto the hard disk of the instance. This can be used to determine the speed of the application.

  • NetworkIn: The number of bytes received on all network interfaces by the instance. This metric identifies the volume of incoming network traffic to an application on a single instance.

  • NetworkOut: The number of bytes sent out on all network interfaces by the instance. This metric identifies the volume of outgoing network traffic to an application on a single instance.

  1. Reports: In Reports tab the data will be in tabular form

    _images/usagereports01.png

    We have few options available for the table, on the right side of the table

    _images/usagereports02.png

    We can remove any colunm from the table by just clicking on the field name, let say remove “From Time”

    _images/usagereports03.png

    Now, “From Time” field is not available in the table.

    We have two more options “Export all data as cvs”, it will export all data from the table in cvs format. And “Export visible data as cvs”, it will save only the visible data from the table, it will not save the removed data from the table.

  • filter: We can filter the data on

    • Organization: We can select any organization from the drop down
    • Provider: Select any provider from available list of providers
    • Type of Instance: Types of instances are Managed, Assigned and Unassigned. We can select any type of instance from the drop down
    • Resources: Here we can search for some node and Apply for the filter
_images/dashboardfilter01.png

BOTs

BOTs are readymade automated scripts.

If you have not configured your BOTs setup, ask your admin to setup BOTs.

We have 3 types of BOTs:

  • Check: These type of BOTs used to provide service management(start, stop, restart), monitoring services and chef provider is used to deliver these services
  • Run: These type of BOTs used to launch any blueprint, upgrade any application and chef provider is used to deliver these services
  • UI: These type of BOTs are used to provide different kind of services using UI automation(selenium) and jenkins is used to deliver these services

These BOTs are used to provide following services:

  • Active Directory: We can create user, delete user and reset password using Run type BOTs
  • OpenDJ LDAP: We can create user, delete user and reset password using Run type BOTs
  • Monitoring: We can use sensue to monitor any service using check BOTs
  • Application Deployment: We can deploy new application on any machine using Run BOTs
  • Service Management: We can start, stop, restart service using check BOTs
  • Upgrade: We can use Run BOTs to upgrade any service running on any machine
  • Installation: We can install new services on any machine using Run BOTs

How to execute BOTs

  • User can select any BOTs for execution

    _images/bots.png
  • click on execute button one popup will appear

    _images/botsexecute.png
  • Select any Tag Server from the drop down

  • Enter the parameters

  • Now click on ok button

  • Execution will start.We can see logs through logs tab.

  • We can also schedule the BOTs.

How to schedule the BOTs

  • Select any BOT in BOTs library then navigate to schedule tab in the BOT.

  • Enter the details like start date and end date and choose minutes/hourly/daily/weekly/monthly and how many times we want execute the BOT.

  • If you want to execute the bot with remote server enable the checkbox .If you want skip alternate runs in the execution enable the checkbox.Click on “schedule” button.

    _images/Schedule_bot.png

Remote Execution of BOTs

  • Select Service Manager BOT in BOTs library

  • Enter the input parameters : 1. Service Name(nginx) 2. Service Action (stop/start)

  • select the checkbox : Do you want to execute on Remote Server? - and select the remote intstance that you want to stop the service nginx -192.1.1.2 and click on execute

    _images/remote_exe.png

Installation

This is a documentation that gives the developer and the user an overview of how to install RLCatalyst on a local instance

Supported Platforms

RLCatalyst is currently supported on

  • Ubuntu 16.04
  • Ubuntu 14.04
  • CentOS 7

Software Requirements


Softwares Versions
MongoDB 3.2.7 and above
Node.JS 4.4.4 and above
Npm 3.5.2 and above
Chef Server 12.3 Open Source or Latest Enterprise Chef Server version.
Chef Client 12.6
LDAP Server OpenLDAP 2.4.39 or an existing corporate LDAP server.

SCM – Any version of GIT or SVN

Install Using QuickInstaller

RLCatalyst can be installed quickly using a chef-based installer. This installer will be available for installing on Centos, Ubuntu and Windows. The catalyst installer will install RLCatalyst and Open Source Chef. Basic seed data to start the application will also be taken care by the installer

Ubuntu 14.04 and Centos

You can install RLCatalyst using the installer script

wget https://raw.githubusercontent.com/RLOpenCatalyst/installer/master/installer.sh
chmod +x installer.sh
./installer.sh

Install using Docker

You can install RLCatalyst on Containers. Use below commands to pull docker images for catalyst:

docker pull relevancelab/catalyst-db:latest
docker pull relevancelab/rlcatalyst:4.0

and run below commands.

docker run --name rlcdb -d relevancelab/catalyst-db:latest
docker run --link rlcdb:rlcdb -e DB_HOST=rlcdb --name rlcat -d -p 3001:3001 relevancelab/rlcatalyst:4.0

Now you can access RLCatalyst using http://<hostip>:3001:

Login Credentials

    UN:  superadmin
    PWD: superadmin@123

Install using Vagrant

Setup RLCatalyst on your dektop/laptop using vagrant. You need to have vagrant installed in your machine:

RL Catalyst Installation on Vagrant with chef:

git clone https://github.com/RLOpenCatalyst/installer.git
cd vagrantwithchef
vagrant up

RL Catalyst Installation on Vagrant without chef:

git clone https://github.com/RLOpenCatalyst/installer.git
cd vagrant
vagrant up

To install the entire devops roles along with catalyst please follow the below mentioned instructions:

git clone https://github.com/RLOpenCatalyst/installer.git
cd RLCatalyst3.0.4
vagrant up

The devops roles contain the following third party softwares:

Jenkins
Nexus

Install from AWS AMI

If you have an AWS account, you can bring up RLCatalyst using the public AMI available. The public image is currently available for US east(N.Virginia) region. This comes with some basic configurations required by RLCatalyst

  1. From your EC2 dashboard, select N.Virginia region . In the Images/AMI link, choose “Public Images” in the dropdown . Search for image with AMI ID ami-08eab9dd32295134f and AMI Name RLCatalyst4.3.2.b59
  2. Select the image and hit Launch
  3. On the “Instance Type” page ,choose the instance size as t2.medium or bigger . We recommend atleast 4 GB RAM
  4. On the “Configure Instance Details” page, choose your preferred Network and Subnets. If you want to assign a public IP to RLCatalyst, then enable “Auto-assign Public IP”
  5. On “Tag Instance” , name your instance
  6. On “Security Group” , add rule to open ports 443, 8080,8081 and 3001.
  7. Review and launch . Once the instance is in “Running” state , you can access RLCatalyst at http://<ip>:3001 . Login using superadmin/superadmin@123
  8. This image includes the devops role like jenkins at http://<ip>:8080 (default credentials)
  9. This image includes the devops role Nexus at http://<ip>:8081 (default credentials)

Following video demonstrates how to Quick install using RLCatalyst public AWS Image:


Install Directly From Source

You can install RLCatalyst locally by downloading the code from our Github Code Repository. The following section gives the instructions to do the RLCatalyst Installation from source

Installation Steps for Ubuntu 16.04

Here is a step by step plan on how to install RLCatalyst on Ubuntu machine.

Start by updating the System:

sudo apt-get update

Install MongoDB

Import the public key used by the package management system.The Ubuntu package management tools (i.e. dpkg and apt) ensure package consistency and authenticity by requiring that distributors sign packages with GPG keys.

Issue the following command to import the MongoDB public GPG Key:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Create a list file for MongoDB:

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Reload local package database & install MongoDB:

sudo apt-get update
sudo apt-get install -y mongodb-org

Check the Mongo version:

mongo -version
3.2.x

Start the mongodb:

In order to properly launch MongoDB as a service on Ubuntu 16.04, we additionally need to create a unit file describing the service. A unit file tells system how to manage a resource. The most common unit type is a service, which determines how to start or stop the service, when should it be automatically started at boot, and whether it is dependent on other software to run. We’ll create a unit file to manage the MongoDB service.

Create a configuration file named mongodb.service in the /etc/systemd/system directory using nano or your favorite text editor.

sudo nano /etc/systemd/system/mongodb.service

Paste in the following contents, then save and close the file.

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target


[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf


[Install]
WantedBy=multi-user.target

Next, start the newly created service with systemctl.

sudo systemctl start mongodb

Use systemctl to check that the service has started properly.

sudo systemctl status mongodb

Output:

● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2016-04-25 14:57:20 EDT; 1min 30s ago
 Main PID: 4093 (mongod)
    Tasks: 16 (limit: 512)
   Memory: 47.1M
      CPU: 1.224s
   CGroup: /system.slice/mongodb.service
        └─4093 /usr/bin/mongod --quiet --config /etc/mongod.conf

Enable automatically starting MongoDB when the system starts.

sudo systemctl enable mongodb

Install NodeJs 4.x & Curl:

sudo apt-get install curl

To Install Nodejs version 4.x

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Check the version of node after installation. It should be 4.2.2 and above

node -v
v4.2.2

Check the version of npm

npm -v

NOTE - The npm version required is 3.x . If an older version got installed, upgrade the npm version
       sudo apt-get update
       sudo npm install npm -g

Now check the npm version and make sure it is 3.5.x and above
npm -v

Install Git(1.9.x)

sudo apt-get install git

NOTE:

Node Version - 4.2.2 and above
npm version - 3.6.x and above
monogo version - 3.2.x

Clone the repository to get the RLCatalyst code:

sudo git clone https://github.com/RLOpenCatalyst/core.git

Create a Mongodb path:

sudo mkdir -p /data/db/

Install ChefClient:

sudo curl -L https://www.opscode.com/chef/install.sh | sudo bash

To Check the chef client version
knife -v
It should be 12.6 or above

Install the dependencies- make , g++ , Kerberos & library:

sudo apt-get install make
sudo apt-get install g++
sudo apt-get install libkrb5-dev
sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
cd /usr/src
sudo wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
sudo tar xzf Python-2.7.13.tgz
cd Python-2.7.13
sudo ./configure
sudo make altinstall

To Check the python version
python2.7 -V

To set python enviornment variable run belaow command
export PYTHON=/usr/local/bin/python2.7

sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python
sudo npm install -g kerberos
sudo apt-get install ruby

To run the application we need to do a client side build as well:

Pre-requisites:

1. Grunt-cli
    sudo npm install -g grunt-cli


2. sass gem
    sudo gem install sass

Process to build the client side:

cd ~
cd core/client/cat3
sudo npm install --production
sudo npm run-script build-prod

Install Node Packages:

cd ~
cd core/server
sudo npm install

To Install seed data:

sudo node install --seed-data

To Install forever & start the RLCatalyst Application:

sudo npm install -g forever
cd ~
cd core/server/app
sudo forever start app.js

Now you can access RLCatalyst at http://localhost:3001

Login Credentials
superadmin/superadmin@123

You are ready to start using RLCatalyst now. Please see Getting Started for next steps.

Installation Steps for Ubuntu 14.04

Here is a step by step plan on how to install RLCatalyst on Ubuntu machine.

Start by updating the System:

sudo apt-get update

Install MongoDB

Import the public key used by the package management system.The Ubuntu package management tools (i.e. dpkg and apt) ensure package consistency and authenticity by requiring that distributors sign packages with GPG keys.

Issue the following command to import the MongoDB public GPG Key:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Create a list file for MongoDB:

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Reload local package database & install MongoDB:

sudo apt-get update
sudo apt-get install -y mongodb-org

Check the Mongo version:

mongo -version
3.2.x

Start the mongodb:

sudo service mongod start

Install NodeJs 4.x & Curl:

sudo apt-get install curl

To Install Nodejs version 4.x:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Check the version of node after installation. It should be 4.2.2 and above

node -v
v4.2.2

Check the version of npm

npm -v


NOTE - The npm version required is 3.x . If an older version got installed, upgrade the npm version
       sudo apt-get update
       sudo npm install npm -g

Now check the npm version and make sure it is 3.5.x and above
npm -v

Install Git(1.9.x)

sudo apt-get install git

NOTE:

Node Version - 4.2.2 and above
npm version - 3.6.x and above
monogo version - 3.2.x

Clone the repository to get the RLCatalyst code:

sudo git clone https://github.com/RLOpenCatalyst/core.git

Create a Mongodb path:

sudo mkdir -p /data/db/

Install ChefClient:

sudo curl -L https://www.opscode.com/chef/install.sh | sudo bash
To Check the chef client version
knife -v
It should be 12.6 or above

Install the dependencies- make , g++ , Kerberos & library:

sudo apt-get install make
sudo apt-get install g++
sudo apt-get install libkrb5-dev
sudo npm install -g kerberos

To run the application we need to do a client side build as well:

Pre-requisites:

1. Grunt-cli
    sudo npm install -g grunt-cli

2. sass gem
    sudo apt-get install ruby
    sudo gem install sass

Process to build the client side:

cd core/client/cat3
sudo npm install --production
sudo npm run-script build-prod

Install Node Packages:

cd ~
cd core/server
sudo npm install

To Install seed data:

sudo node install --seed-data

To Install forever & start the RLCatalyst Application:

sudo npm install forever --global
cd ~
cd core/server/app
sudo forever start app.js

Now you can access RLCatalyst at http://localhost:3001

Login Credentials
superadmin/superadmin@123

You are ready to start using RLCatalyst now. Please see Getting Started for next steps .

Installation Steps for Centos7

Here is a step by step plan on how to install RLCatalyst on Centos7 machine.

Update your System with yum:

yum update

To Install node.js & npm:

# Install the repository
rpm -Uvh https://rpm.nodesource.com/pub_4.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm

# Install NodeJS
yum install nodejs

checking the node version
node -v
4.2.2

Check the npm version
npm -v



NOTE - The npm version required is 3.5.x . If an older version got installed, upgrade the npm version.
       npm install npm -g

Now check the npm version
npm -v
3.5.3

To Install MongoDb (version 3.x):

Go to directory /etc/yum.repos.d/

Create a file mongodb-enterprise.repo
cat > mongodb-enterprise.repo
Edit the above file and add the contents

[MongoDB]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

Save the file

Run the Command
yum install mongodb-org

check the mongo version
mongod --version
3.2.1

NOTE:

npm version 3.5.3
node version 4.2.5
monogd verison 3.2.1

To Install Chef-Client (version 12.6.0):

curl -L https://www.opscode.com/chef/install.sh | sudo bash
To check the chef client version
knife -v
Chef:12.6.0

To Install git:

yum install git
To check the git version
git –version
1.7.x

To Install RLCatalyst and to create a db path folder:

To pull the catalyst code
git clone https://github.com/RLOpenCatalyst/core.git
Check the current directory for the presence of catalyst code i.e core folder.


Create a db path folder
mongo db path -  mkdir -p /data/db/

Go to cd core/server
npm install

Start the mongodb:

sudo service mongod start

To Install gcc library:

yum install gcc-c++

To Install the seed data:

node install --seed-data

To Start the Application:

Run (node app) to start your application.
npm install forever –g
cd core/server/app
node app.js

To run the application forever:

forever start app.js

Access RLCatalyst:

http://localhost:3001
username- superadmin
pass - superadmin@123

Now you are ready to start using RLCatalyst . Please see Getting Started for next steps

Working With Chef

Chef helps you express your infrastructure policy – how your software is delivered and maintained on your servers – as code. When infrastructure is code, it becomes more maintainable, versionable, testable, and collaborative.It allows you to install, configure and manage the packages required by your application without the complication of any client and server configuration. RL Catalyst allows you to use either chef or puppet configuration management to manage your Infrastructure.

To begin with you need to create your organization and an account in chef server to automate your infrastructure.

  • Go to the below link and create an account in Chef
https://getchef.opscode.com/signup
_images/opscode.png
  • Once you provide the details you will get the below message and email in your mailbox
_images/signup.png
  • Check the email and go to the link provided in the email and provide the password
_images/emailChef.png
  • Once you provided the password, you will get the below message
_images/welcomeChef.png
  • Create an Organization
_images/createOrgchef.png

Done Now you have a Hosted Chef account.

  • Goto The Administrator Tab
_images/saveOrg.png
  • Reset the Validation Key
_images/resetkey.png _images/resettingKey.png

Download the key in your desktop

  • Reset the User key
_images/resetUserkey.png _images/resettingUserKey.png

Download the key

  • Generate the Knife Configuration
_images/genKnife.png

So Now you have the user key, organization key and knife configuration

  • Install Chef-Client on your desktop (Windows or Linux)
https://downloads.chef.io/chef-client/
  • Create a folder in any location and then under that create chef-repo . Create a folder chef(windows) or .chef(linux)

The directory structure will be:

_images/dirStructure.png

Put all the files in the chef folder

  • To check the connectivity from your workstation to the hosted chef server

Just run any command

_images/knifeCmd.png

Upload cookbooks into Chef

Once you setup Chef, the automation libraries need to be uploaded into Chef account. RL automation libraries are available at https://github.com/RLOpenCatalyst/automationlibrary.git

  • clone the git repository to above directory
git clone https://github.com/RLOpenCatalyst/automationlibrary.git
  • Run the ruby program (cookbooks_upload.rb) available in the git repo.
ruby cookbooks_upload.rb

It will upload all the cookbooks to the hosted chef server along with the dependencies.

Code Contributions

Contributor License Agreement

If you are contributing to this repository you must agree the following :

  • The code I’m contributing is mine, and I have the right to license it.
  • I’m granting you a license to distribute said code under the terms of this agreement (typically “as you see fit” or “under an OSI-approved license” or whatever).

Branching Strategy

The central repository will have two branches with infinite lifetime

  • master
  • dev

Supported Branches For contributions to RLCatalyst create a feature or hot fix branch and make changes. Usage of the branches shall be explained in the following section.

Code Contributions

Step 1: Fork

$ git clone git@github.com:username/core.git

$ cd core

$ git remote add upstream git://github.com/RLOpenCatalyst/core.git

Step 2: Branch

Create a feature branch and start hacking:

$ git checkout -b my-feature-branch -t origin/master

Step 3: Commit

Make sure git knows your name and email address:

$ git config –global user.name “J. Random User”

$ git config –global user.email “j.random.user@example.com

Writing good commit logs is important. A commit log should describe what changed and why. Follow these guidelines when writing one:

The first line should be 50 characters or less and contain a short description of the change prefixed with the name of the changed subsystem (e.g. “net: add localAddress and localPort to Socket”). Keep the second line blank. Wrap all other lines at 72 columns. A good commit log can look something like this:

subsystem: explaining the commit in one line

Body of commit message is a few lines of text, explaining things in more detail, possibly giving some background about the issue being fixed, etc. etc.

The body of the commit message can be several paragraphs, and please do proper word-wrap and keep columns shorter than about 72 characters or so. That way git log will show things nicely even when it is indented. The header line should be meaningful; it is what other people see when they run git shortlog or git log –oneline.

Check the output of git log –oneline files_that_you_changed to find out what subsystem (or subsystems) your changes touch.

Step 4: Rebase

Use git rebase (not git merge) to sync your work from time to time.

$ git fetch upstream

$ git rebase upstream/master

Step 5: Tests

Bug fixes and features should come with tests. Add these tests in the tests directory of the repository.

Step 6: Push

$ git push origin my-feature-branch Pull requests will usually be reviewed within a few days. If there are comments to address, apply your changes in a separate commit and push that to your feature branch. Post a comment in the pull request afterwards; GitHub does not send out notifications when you add commits.

Code Review

Each Github pull request will go through 3 step before merge:

  1. We will execute our automated test cases against the pull request. If the tests failed the pull request will be rejected with comments provided on the failures.
  2. If tests pass, the RLCatalyst engineering team member will do the review of the changes. Technical communication possible via github.com pull request page. When ready, your pull request will be tagged with label Ready For Merge.
  3. Your patch will be merged into master including necessary documentation updates.
  4. After merge the feature branch will be deleted.

Release Strategy

Release from master branch will be tagged with release_<X.X>

Issue Contributions When opening new issues or commenting on existing issues please make sure discussions are related to concrete technical issues with the RLCatalyst software

RLCatalyst Issue Tracking is handled using Github Issues.

If you are familiar with RLCatalyst and know the repository that is causing you a problem or if you have a feature request on a specific component, you can file an issue in the corresponding GitHub project. All of our Open Source Software can be found in our GitHub organization.

Otherwise you can file your issue in the RLCatalyst project and we will make sure it gets filed against the appropriate project.

To decrease the back and forth in issues, and to help us get to the bottom of them quickly, we use the issue template below. You can copy/paste this template into the issue you are opening and edit it accordingly:

Version:[Version of the project installed]

Environment:[Details about the environment such as the Operating System, cookbook details, etc.]

Scenario:[What you are trying to achieve and you can't?]

Steps to Reproduce:[If you are filing an issue, what are the things we need to do to reproduce your problem?]

Expected Result:[What are you expecting to happen as the consequence of the reproduction steps above?]

Actual Result:[What actually happens after the reproduction steps?]