Central Config Server in ColdFusion

Introduction

Central Config Server (CCS) is a separate server meant to create, manage, and quickly deploy ColdFusion administrator settings.  

Using CCS, you can:

  • Add/edit/delete a ColdFusion server instance to CCS.
  • Add/edit/delete any setting (in ColdFusion Admin) and propagate the change to all the servers, which have been added to CCS.
  • Create multiple clusters of ColdFusion servers. Within a cluster, you can categorize servers as stage/production, apply changes to stage servers, test performance, and then apply the same changes to the production server. 
  • Audit/monitor the changes to a ColdFusion server/instance. 
  • View the version history, which tracks all the changes done in ColdFusion Admin, and rolls back to any older version. 

Install CCS

Using ColdFusion Package Manager

  1. Navigate to <CF_Instance_Home>/cfusion/bin.
  2. Enter cfpm.bat
  3. Type install ccs

Using ColdFusion Administrator

  • You can also install CCS using ColdFusion Administrator > Package Manager.

Start CCS

  1. Once the CCS package is installed, you can start the CCS server using ccs.bat on Windows and ccs.sh on non-Windows platforms.
  2. Launch ccs.sh/ccs.bat.
  3. Use the command “startServer” to start CCS Server.
Start CCS
Start CCS

This starts the server in an interactive mode. To start server in a non -interactive mode run command:

ccs.sh/bat startserver

Start the server
Start the server

Enter help in the CCS.sh/CCS.bat console to learn about other supported commands.

View CCS help
View CCS help

Other CCS Commands

Command Usage Description
startserver ccsserver>startserver Starts the Central Config Server.
stopserver ccsserver>stopserver
Stops the Central Config Server.
listnodes ccsserver>listnodes
Lists the Central Config Server.
disablenode ccsserver>disablenode node 
Disable the node that has been added.
enablenode ccsserver>enablenode node
Enable the node that has been added.
deletenode ccsserver>deletenode node
Delete the node that has been added.

Add a node to CCS

Once the CCS server is started , you can add nodes to CCS. Add the nodes manually.

Alert:

CCS's Auto Discovery option is ONLY VALID until ColdFusion (2023 release) Update 6.

Adding Nodes using Auto-Discovery

You can also use the auto-discovery feature to automatically detect nodes in the same network and add them to your CCS server.

Navigate to the Administrator console of the ColdFusion instance from where CCS Server is started.

On the CCS page in Server Settings, you have a client section and the server section. Go to the server section and click Start Auto Discovery. This will list the set of nodes that it can find in its network of ColdFusion that are running. You can choose any node to add to your environment.

List of nodes
List of nodes

Adding nodes manually using ColdFusion Administrator console

Navigate to the Administrator console of the ColdFusion instance from where CCS Server is started. 

On the CCS page, you have a client section and a server section. Go to the server section and you can add the details of the ColdFusion node to be added to the CCS server.

Add a node
Add a node

Adding nodes manually using CCS Command Line Console

You can add a node using ccs.sh on non-windows platform and ccs.bat  on windows platform . This script is present in <CF_INSTANCE_HOME>/bin directory. 

Enter the command, addnode.

The addnode command accepts teh following:

  • Hostname
  • Port
  • Context root (in case of JEE installation) on which ColdFusion server runs
  • Secret key

You can get the secret key from the ColdFusion Admin console of the node in the CCS page or on the ccs.properties file located in the <CF_Instance_Home>/lib/ccs.

ADDNODE COMMAND

addnode  <hostname>:<port>/<JEEcontextroot>  secretkey

Addnode command
Addnode command

CCS Server Nodes

Once you add a node to the CCS server, all the settings of the node will be stored in the CCS Server. You can then change the ColdFusion settings using ColdFusion Admin, Admin APIs, or CFSetup.

Any change in the settings will be stored in CCS, and will be replicated across all nodes that are added to the CCS server.

ColdFusion nodes added to a CCS Server belong to a certain cluster and environment. By default, any node added to CCS belongs to ‘development’ environment and default cluster name is ‘_CF_DEFAULT’. 

This will categorize your settings based on the kind of deployment.

For example, you'd like to test the performance of your applications with ‘Null Support’ on. You can enable this setting in one of your development servers added to CCS, and the setting will be propagated to all the development servers, which belong to the same cluster.

Note: The cluster mentioned is different from the ColdFusion cluster, created using Enterprise Manager. This CF nodes cluster is used only by the config server to save deployment specific settings.

Configuring cluster and environment of a ColdFusion Node

You can configure the cluster and environment to which a ColdFusion Node belongs to using the CCS page in ColdFusion Admin.

On the CCS page, you can update the cluster name and the current environment of the node.

Server settings
Server settings

You can also change the environment & cluster using the ccs.properties file, located inside <CF_Inst ance_HOME>/lib/ccs/.

Edit the file, save the file, and restart your ColdFusion server.

Change cluster details
Change cluster details

Note:

This file can also be used to exclude settings, load from versions and environments, change CCS server details. Restart ColdFusion to apply the changes.

Configuring environment available to CCS clients

By default, there are four environments, development, stage, test, and production, that are available to the ColdFusion nodes. You can add/remove environments in the CCS server.

To add or remove any environment,

  1. Go to the ColdFusion instance directory from where CCS is running.
  2. Edit server.properties  located in <CF_Instance_Home>/lib/ccs.
Add or remove environment
Add or remove environment

Note:

Using this file you can also edit the port on which CCS Server is running.

Exclude files

In the ccs.properties file, we’ve added a setting ‘ excludeFiles’. At times, you do not want to sync all settings across the nodes and keep separate settings for each node of your ColdFusion server. Add the name of the file in excludeFiles. For example, you do not want to sync cloud configurations added to your node, then go to <CF_Instance_Home>/lib/ccs/ccs.properties and add neo-cloud-config.xml as a value to excludeFiles settings. This setting accepts a list with ‘,’ as a delimiter.

Version history

If you change any Admin setting, for example, Timeout Request, the change can be seen in the version history. Every time you make any change, an entry gets added.

Deleting a version does not mean reverting to the original value. If you delete the version, the Timeout Request does not revert to the original value. This implies that you cannot load from this version, more info in the load from versions and environment.

Load from versions and environment

After you change any Admin setting, if you want to use the version with the new setting, then use the Load settings section to select the version for the node.

If you delete any version, that version will not appear in the Version drop-down. So, if you’d like to get the setting of your production environment, you can select the required version, and the change will be applied to the environment.

You can choose to move from one cluster to another as well. If you want to change the environment, you can also load from the setting. This will only load the settings into the current environment. It will not move the current node to another environment. If you are in the development environment and you're trying to load a setting, it will just load the setting. It will not move you from development to the production environment, but if you want your node to move from your development to production environment. You can select the environment from the drop down and change the name of the cluster.

Support for JEE installations

Add a node where a JEE config is running. In ColdFusion Admin > Server Settings > CCS, you can add the node where the JEE config runs. The secret key is used for secure communication between the Central Config Server and the ColdFusion Admin.

Add JEE node
Add JEE node

The new node gets added, and you can view it in the Current nodes list.

Note:

While adding a JEE node, specifying the context root is mandatory.

Settings that are not synced

  • Java and JVM settings
  • Scheduled tasks
  • Any settings that involve file path for ex., custom tags.
  • Datasource settings
  • Passwords, for example., database connection password, or admin user password.

CCS Settings Store

In the <CF_Instance_Home>/bin directory of the ccs server, a folder ccsstore contains separate directories for separate clusters. Inside each cluster folder, there are separate directories for each environment. Then for each version of settings, there is an associated folder.

Document revision history

Get help faster and easier

New user?