Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

CAST provides a single Docker image for Microsoft Windows and Linux (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.


Docker for Microsoft WindowsDocker for Linux

AIP Console (front end) - including embedded CAST Dashboards

AIP Node (back end)

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:

Docker for Microsoft Windows

  • 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

...

Docker for Linux

...

  • Deploy AIP Console (front end)

...

  • Choose to store the AIP Console persistence database in a specific location on the server, or leave it with the Docker container

Which releases of CAST AIP components are provided in the image?

The Docker image provided by CAST will contain the most recent "funcrel" releases of each component where possible. Images are updated as soon as new releases of components are shipped. You can inspect the content of the images via Docker hub (Docker ID account required). The "latest" tag contains the most recent release:

Release Notes

See CAST AIP Docker Installer - Release Notes.

Anchor
requirements
requirements
Deployment requirements

SoftwareSupportedNotes
Host Operating System(tick)

Microsoft Windows

See the Docker Desktop for Windows system requirements: https://docs.docker.com/docker-for-windows/install/#system-requirements

Info
  • To run Docker in a virtual machine, the Operating System must be running Windows Server 2019 with the latest updates applied.
  • Installations of Windows Server using only Server Core (i.e. without a GUI) are not supported.


Linux

  • Ubuntu Server (16.04 LTS / 18.04 LTS / 20.04 LTS)
  • CentOS (7 or 8)

See also: https://docs.docker.com/engine/install/#server

Docker

(tick)

Microsoft Windows

Docker Desktop for Windows - latest version recommended, or one that provides:

Image Modified

Host Operating System(tick)

Microsoft Windows

See the Docker Desktop for Windows system requirements: https://docs.docker.com/docker-for-windows/install/#system-requirements

Info
  • To run Docker in a virtual machine, the Operating System must be running Windows Server 2019 with the latest updates applied.
  • Installations of Windows Server using only Server Core (i.e. without a GUI) are not supported.

    Linux

    • Docker Engine ≥ 18.0
    • docker-compose ≥ 3.0
    • curl (optional) - to download the extension containing the start script from CAST Extend.
    • netstat (optional) - the installer uses this tool to check if the requested port for the installed components is free. This tool is not present by default in all Linux distributions. If the tool is not present, a message is displayed during the installation and you should ensure that your chosen port is indeed unused since the installer will not have been able to check this. This is especially true when installing additional containers by re-running the script - if you choose the same port numbers, the container will not be able to start.

    Image Added

    RAM(tick)

    16GB RAM (minimum) for the

    Microsoft Windows machine:

    host server. 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(tick)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(tick)

    The Docker image does not contain a CAST Storage Service/PostgreSQL instance for the analysis data, therefore if you are installing the AIP Node/AIP Core image (Docker for Windows only) 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(tick)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 (See:

    ...

    •  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:

    Image Removed

    ...

    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. 

    Info

    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.

    ...

    Enter the credentials for the CAST Storage Service/PostrgreSQL instance. The default options are operator/CastAIP.

    ...

    Step 5 - Choose simple or advanced installation

    The installer will now offer you a choice between simple or advanced install mode:

    Image Removed

    ...

    • Deploy AIP Console (front end), AIP Node (back end), AIP Core and Extend Proxy (without extensions).
    • Data (Delivery, Deploy, Logs, LISA, LTSA etc.) is stored by default within the Docker container. This means that if the container is deleted, this data is lost.

    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.

    ...

    Choice of deployment scenario:

    • 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 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.

    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:

    Image Removed

    ...

    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:

    Image Removed

    The installer will then start the process of pulling the Docker image:

    Image Removed

    Info

    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):

    Image Removed

    Next you will be asked whether you want to install CAST Extend Proxy or not. The default is to install CAST Extend Proxy:

    Image Removed

    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:

    Image Removed

    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:

    Image Removed

    ...

    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 8082If the port is already being used by another service on the server, you can choose another custom port (for example port 80).

    ...

    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).

    ...

    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:

    Image Removed

    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):

    Image Removed

    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:

    Image Removed

    Sub folders are then created in the chosen root folder:

    Image Removed

    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:

    Image Removed

    The installer will then start the process of pulling the Docker image:

    Image Removed

    Info

    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:

    Image Removed

    Image Removed

    Info
    Note that by default Docker Desktop will store the downloaded items in %PROGRAMDATAM%\Docker\windowsfilter.

    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:

    Code Block
    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:

    Code Block
    =================================================================
    =================================================================
    Your container is ready...
    =================================================================
    =================================================================

    The configuration key and AIP Node token will also be displayed - you must take note of these:

    Code Block
    =================================================================
    IMPORTANT: Configuration key is: 2bf79564-7db4-4298-97f0-003bf35eede1
    
    Node token is ...
    spring.liquibase.parameters.baseToken=VXzLH7COTD79Wf8TjIPU
    =================================================================
    Info

    Image Removed

    Image Removed

    Image Removed

    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:

    Image Removed

    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:

    Code Block
    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:

    Code Block
    more c:\cast\extendproxy\config.proxy.json

    The key is highlighted below:

    Image Removed

    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

    ...

    Technical information and tips

    Anchor
    ram
    ram
    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 "4g" entry in the following line in the lines in the installer files:

    Code Block
    Microsoft Windows - start_docker_caip.bat

    ...

    :

    ...

    Code Block
    
    set OPTIONS=-m 4g -t --restart always --name %CAIPCONTAINERNAME% -d
    
    Linux - start_docker_caip.sh:
    ARGS_DOCKER="-m 4g -t --restart always -d --name $CONTAINERNAME -v $DOC_CONF_DIR:/workspace -p $HOSTPORTCONSOLE:8081"

    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:

    Image Modified

    If you choose to retain the existing containers, the installer will choose a new unique container name for the new installation (or you can choose a custom name):

    Image Modified

    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:

    Code Block
    Microsoft Windows:
    docker exec -it <container_name> cmd
    
    Linux:
    docker exec -it <container_name> /bin/bash