Introduction
CAST provides a single Docker image for Microsoft Windows (available in Docker hub) that includes the CAST AIP Components listed below. It has been implemented to facilitate CAST AIP deployment in a Microsoft Windows environment. The image is deployed via the CAST AIP Docker Installer (an interactive batch script) in a unique container created by the installer and you can therefore install multiple CAST AIP containers in the Docker environment - for example to install multiple AIP Nodes on the same server within Docker.
AIP Console (front end) - including embedded CAST Dashboards | |
AIP Core (currently only for Management/Engineering - Dashboard) | |
CAST Extend Proxy |
Installation is flexible and you can install all these components or different combinations of them within the container created by the installer:
- Deploy AIP Console (front end), AIP Node (back end), AIP Core and Extend Proxy (without extensions)
- Deploy AIP Console (front end), AIP Node (back end) and AIP Core
- Deploy AIP Node (back end) and AIP Core - this option is designed for use with an existing AIP Console (front end) deployed elsewhere in your environment
- Choose to store the data (Delivery, Deploy, Logs, LISA, LTSA etc.) in a specific location on the server or on a network share, or leave it with the Docker container
The AIP Console (front end) component also includes the embedded CAST Heath and Engineering Dashboards which can be accessed directly from AIP Console.
Deployment requirements
Software | Supported | Notes |
---|---|---|
Docker Desktop | Docker Desktop for Windows - latest version recommended, or one that provides:
| |
Host Operating System | Microsoft Windows See the Docker Desktop for Windows system requirements: https://docs.docker.com/docker-for-windows/install/#system-requirements
| |
RAM | 16GB RAM (minimum) for the Microsoft Windows machine: 4GB RAM is granted by default by the CAST AIP Docker Installer to the Docker container running the image - see RAM allocated to the container below. | |
Storage | 25GB (minimum) free storage: SSD with SATA interface recommended. An installation of all components is currently approximately 14GB - however, if your data resides within the Docker container, then you will need additional storage. | |
CAST Storage Service / PostgreSQL instance | The Docker image does not contain a CAST Storage Service/PostgreSQL instance for the analysis data, therefore you must install an instance on the current server (if the server is powerful enough) or on a dedicated server (recommended). The server on which Docker Desktop is installed and more specifically the container in which AIP Core/AIP Node is deployed, must be able to connect to this CAST Storage Service/PostgreSQL instance. Make sure that the configuration file pg_hba.conf in your CAST Storage Service/PostgreSQL instance is correctly configured to meet this requirement. | |
Access to Docker Hub | The Docker image is hosted on https://hub.docker.com/, therefore the server on which you are performing the installation must have internet access to this URL. |
Installation
Step 1 - ensure deployment requirements are in place
Ensure that all requirements are in place. This includes the installation of any third-party software that is required to run Docker. Installation and configuration of third-party software is out of scope of this documentation, however, some tips can be found in the following documentation:
Step 2 - download and unpack CAST AIP Docker Installer
The installation files are available as an extension (CAST AIP Docker Installer) published by CAST - see https://extend.castsoftware.com/#/extension?id=com.castsoftware.caip.docker&version=latest. Download the extension and unzip it to a working folder anywhere on the server - this will contain the following file:
- start_docker_caip.bat
Step 3 - Run the installer
Double click the start_docker_caip.bat file to start the installation. This will run in a CMD window and will require interaction to fill in the configuration details.
Step 4 - Configure CAST Storage Service/PostgreSQL instance
The installer requires the location of your CAST Storage Service/PostgreSQL instance that will be used to host the schemas for any Applications analyzed with the AIP Node you are installing:
hostname | Enter the hostname/IP address and port number of the CAST Storage Service/PostgreSQL instance that this installation will use for the CAST schema "triplet" required for each Application managed on the AIP Node (Analysis, Dashboard, Management schemas). This CAST Storage Service/PostgreSQL instance can either be installed on the local server or a remote server. hostname must not be localhost even if the CAST Storage Service/PostgreSQL instance is located on the same server as your Docker installation. Keep in mind that a Docker container is a standalone package of software, similar to a lightweight virtual machine. Thus, using localhost will be seen by the container as a server hosted within the container itself and not as the server on which Docker is installed. |
---|---|
port | |
user | Enter the credentials for the CAST Storage Service/PostrgreSQL instance. The default options are operator/CastAIP. |
password |
Step 5 - Choose simple or advanced installation
The installer will now offer you a choice between simple or advanced install mode:
Simple mode |
In this scenario, all items are installed within the Docker environment. Access is granted to the AIP Console (front end) and CAST Extend Proxy services outside the Docker environment via a TCP port number for user access and management. In other words, this is a "closed" installation entirely residing within Docker. |
---|---|
Advanced mode | Choice of deployment scenario:
In this scenario, all chosen items are installed within the Docker environment. All services can be exposed outside the Docker environment via a TCP port number if required. In other words you can install AIP Node (back end) and AIP Core as a standalone item, expose the port and then adopt this AIP Node in an existing AIP Console (front end) deployed elsewhere in your environment. |
Simple mode
Choosing simple mode will require you to input additional details to expose the ports required for users/services to access the items within the Docker environment:
AIP Console port | This is the port number which end-users will use to communicate with the AIP Console (front end) in their browsers - the default is 8081. If the port is already being used by another service on the server, you can choose another custom port (for example port 80). |
---|---|
Extend Proxy port | This is the port number which is required to communicate with CAST Extend Proxy to populate it with extensions - the default is 8085. If the port is already being used by another service on the server, you can choose a different one. |
In a new installation, no existing containers will be detected, and the installer will then create a new Docker container with the default name castcaip_1. You can enter a custom name if you prefer. This container will be visible in Docker Desktop when the installation process is complete:
The installer will then start the process of pulling the Docker image:
The items are all downloaded directly from https://hub.docker.com/.
Advanced mode
In Advanced mode, you will first be prompted to choose whether you want to install AIP Node (back end) and AIP Core with AIP Console (front end) - or to install just the AIP Node (back end) and AIP Core as a standalone item, which can then be adopted into an existing AIP Console (front end) somewhere else in your environment. The default is to install the AIP Node (back end) and AIP Core with AIP Console (front end):
Next you will be asked whether you want to install CAST Extend Proxy or not. The default is to install CAST Extend Proxy:
Next you will be asked whether you want to expose the AIP Node port outside the Docker environment. This is only required if you have chosen to install just the AIP Node (back end) and AIP Core as a standalone item - in this situation, the existing AIP Console somewhere else in your environment will use this exposed port to communicate with the standalone AIP Node:
Depending on the choices you made, you will now need to define all the exposed port numbers for the services running within the Docker environment:
AIP Node port | You will be asked to configure this port if you answered yes to whether you want to expose the AIP Node port outside the Docker environment. This is the port number which AIP Console (outside the Docker environment) will use to communicate with the AIP Node (back end) within the Docker environment - the default is 8082. If the port is already being used by another service on the server, you can choose another custom port (for example port 80). |
---|---|
AIP Console port | You will only be asked to configure this port if you selected to install the AIP Node (back end) and AIP Core with AIP Console (front end). This is the port number which end-users will use to communicate with the AIP Console (front end) in their browsers - the default is 8081. If the port is already being used by another service on the server, you can choose another custom port (for example port 80). |
Extend Proxy port | You will only be asked to configure this port if you selected to install CAST Extend Proxy. This is the port number which is required to communicate with CAST Extend Proxy to populate it with extensions - the default is 8085. If the port is already being used by another service on the server, you can choose a different one. |
Next you will be asked which type of AIP Node you want to install. At the current time, please use the default setting (standard) - other options are in beta and do not work correctly:
Finally you will be prompted to choose whether you want to keep the data generated by CAST AIP (Delivery, Deploy, Logs, LISA, LTSA etc.) within the container (enter No), or in a specific location on the server or on a network share (enter Yes):
If you choose Yes, you will need to enter a "root" folder that will be used for the CAST AIP data, for example D:\CAST\temp:
Sub folders are then created in the chosen root folder:
In a new installation, no existing containers will be detected, and the installer will then create a new Docker container with the default name castcaip_1. You can enter a custom name if you prefer. This container will be visible in Docker Desktop when the installation process is complete:
The installer will then start the process of pulling the Docker image:
The items are all downloaded directly from https://hub.docker.com/.
Step 6 - check container and image
When the download is complete, the CMD window will close and the Container and Docker image will be visible in Docker Desktop:
Step 7 - check deployment log to view configuration key/AIP Node token
Before continuing with the deployment, you must access the deployment log to:
- check that the installation completed successfully
- locate the configuration key, which is required during the initial setup of AIP Console (if you chose to install AIP Console (front end))
- locate the AIP Node token which is required to adopt the AIP Node in an existing AIP Console elsewhere in your environment (if you chose to install only the AIP Node and AIP Core)
To access the log, run the following command in a CMD or Powershell window, where <container_name> is the name of the container created by the installer in Docker - the default is castcaip_1:
docker logs --details -f <container_name>
The log will then be displayed in the command window. A successful installation is indicated by Your container is ready at the end of the log:
================================================================= ================================================================= Your container is ready... ================================================================= =================================================================
The configuration key and AIP Node token will also be displayed - you must take note of these:
================================================================= IMPORTANT: Configuration key is: 2bf79564-7db4-4298-97f0-003bf35eede1 Node token is ... spring.liquibase.parameters.baseToken=VXzLH7COTD79Wf8TjIPU =================================================================
- The configuration key is required when first starting AIP Console - see Complete start-up wizard:
- The AIP Node token is required when adding the AIP Node to an existing AIP Console elsewhere in your environment - see Declare AIP Nodes in AIP Console:
Step 8 - locate the CAST Extend Proxy API key
If you chose to install CAST Extend Proxy, you must locate the API key which will allow you to use CAST Extend Proxy with AIP Console. This API key is required during the initial setup of AIP Console - see Complete start-up wizard:
To locate the API key, run the following command in a CMD or Powershell window, where <container_name> is the name of the container created by the installer in Docker - the default is castcaip_1:
docker exec -it <container_name> cmd
This will take you direct into the container and you can explore its filesystem. The API key is located in the c:\cast\extendproxy\config.proxy.json
file which you can access with this command:
more c:\cast\extendproxy\config.proxy.json
The key is highlighted below:
Next steps
When the deployment is complete and depending on the installation choices you made, you may wish to consult further documentation to explain what to do next:
AIP Node + AIP Core standalone deployed | You will need to adopt this AIP Node into an existing AIP Console elsewhere in your environment - see Declare AIP Nodes in AIP Console. |
---|---|
AIP Console deployed | You will need to Complete start-up wizard to prepare your environment. The AIP Node + AIP Core installed at the same time will be automatically adopted into the AIP Console installation. |
CAST Extend Proxy deployed | If you are using CAST Extend Proxy in an environment with no internet access, you will need to populate this with your required extensions - see Update CAST Extend Proxy with new content. |
Technical information and tips
RAM allocated to the container
The installer will automatically allocate 4GB RAM to the container when the container is started. 4GB is the absolute minimum RAM memory required to run all components. CAST recommends increasing this value. To change the value, you can modify the following line in the start_docker_caip.bat installer file:
set OPTIONS=-m 4g -t --restart always --name %CAIPCONTAINERNAME% -d
Existing container detected during the installation
If the installer detects an existing container created by CAST in the Docker environment, the installer will prompt whether to remove these existing containers. The default action is to remove all existing containers:
If you choose to retain the existing containers, the installer will choose a new unique container name for the new installation:
Accessing files within the Docker container
It may be necessary to modify configuration files that reside in the Docker container for certain advanced configuration scenarios. If this is required, you can access the files using the following command from a command or Powershell window, where <container_name> is the name of the container created by the installer in Docker - the default is castcaip_1:
docker exec -it <container_name> cmd