Sign inSign up

mfsharedtech/apls

By mfsharedtech

Updated 3 months ago

AutoPass License Server

Image
7

100K+

mfsharedtech/apls repository overview

Official Docker Image of OpenText AutoPass License Server

What is AutoPass License Server?

AutoPass is a license management, license enforcement, product activation, and usage tracking application for OpenText and its customers. AutoPass License Server (APLS) enables organizations to manage licenses in a centralized way. Software product licenses are broadly classified into three types: concurrent (floating), consumable and seat (standalone) licenses. A concurrent license is shared dynamically between multiple client users, a consumable license is shared between multiple client users by a time unit(hour/day) and a capacity of license is consumed for each time unit. whereas a seat license is locked to a specific client machine. The concurrent licenses are then shared or "pooled" between a group of users. Using concurrent licenses enables you to purchase the number of licenses equal to the largest number of users liable to be active at any time, instead of the total number of users of a product. APLS can also be used to collect data metrics for a product or its features. Various other features of APLS include reservation, buy more etc.,

APLS Specification

SpecificationsValuesLinks/Comments
Container/Image OSRed Hat Universal Base Image 9

How to deploy the APLS docker image

Hosting APLS application in container

a) Open Command prompt or Shell based on OS where you are running docker docker pull mfsharedtech/apls:<Major.Minor.Minor>- b)Please see the docker variables below and start the container using the command below

Docker Options

Name ,shorthandDescription
--nameAssign a name to the container
--detach, -dRun container in background and print container ID
--publish -pPublish a container’s port(s) to the host
--volume , -vBind mount a volume

Docker run attribute

SNOOptionRequired
1--name AUTOPASS-APLS
2-p 5814:5814Yes
2-v "/customlib/:/opt/autopass/apls/apls/customlib/"Optional .But in case if we want use third party jars it is required
5-v "/logs:/logs/"Yes
6-v "/config:/config/"Yes
7-v "/data/:/var/opt/autopass/apls/licenseserver/data/"Yes
8-e EULA='true'Yes 1. Passing 'true' to this key means you are accepting End User License Agreement2. If you are not passing the key or passing the value other than true, container will not come up.
9-e TIME_ZONE=<TIME_ZONE> example :- -e TIME_ZONE=GMTOptional If this property is passed and value is set to any time zone that exists within the apls container, then apls will run in the mentioned timezone.If the property is not used or the passed value is not matching with the apls container timezone then, apls will run in default timezone.Note: Key and value are case sensitive.

docker run --name AUTOPASS-APLS -d -p :5814 -v "/customlib:/opt/autopass/apls/apls/customlib/" -v "/logs:/logs/" -v "/config:/config/" -v "/data/:/var/opt/autopass/apls/licenseserver/data/" -e EULA='true' "< APLS IMAGE NAME >"

Example :- docker run --name apls-5814 -d -p 5814:5814 -v /var/opt/autopass/apls/custlibs:/opt/autopass/apls/apls/customlib -v /var/opt/autopass/apls/data/:/var/opt/autopass/apls/licenseserver/data/ -v /var/opt/autopass/apls/config/:/config/ -v /var/opt/autopass/apls/logs/:/logs/ -e EULA='true' ""

Mounted Paths

Note:- As a best practice we should do following things because docker images are immutable.

  1. Avoid storing application data in your container’s writable layer using storage drivers. This increases the size of your container and is less efficient from an I/O perspective than using volumes or bind mounts
  2. Instead, store data using volumes

| Host Path | Host Sub-folder | Container Path | Configuration Description | | --- | --- | --- | --- | --- | | autopass-store | {SUBPATH_OF_AUTOPASS _LOG_FILES} | /logs | This path is mounted to contain APLS logs, such as startup.logs, catalina logs, APLS logs | | autopass-store | {SUBPATH_OF_AUTOPASS _CONFIG_FILES} | /config | This path is mounted to update the server.xml file for the APLS server | | autopass-store | {SUBPATH_OF_AUTO_PASS _DATA_FILES} | /var/opt/autopass/apls/licenseserver/data | This path is mounted to store the APLS data folder path | | autopass-store | {SUBPATH_OF_AUTOPASS _DATABASE_DRIVERS} | /opt/autopass/apls/apls/customlib | This path is mounted to allow storing database drivers for APLS to pick up | | autopass-store | {SUBPATH_OF_AUTOPASS _DATA_CECERT} | /var/opt/autopass/apls/licenseserver/data/cecert | This path is mounted to allow read custom certificates .Note:- Don't put keystore files in this location .This only for custom certificates |

Tomcat server configuration

Note:- Custom keystore values can be directly editable in server.xml or by passing below environments variables

Variable NameDefault ValueSinceMandatoryRemarks
SERVER_ CERT_PATH"$CATALINA_HOME_ HPAPLS"/conf/keystore.jks-NThe pathname of the keystore file with in the container where the server certificate is stored and to be loaded. By default points to the AutoPass self signed certificate. Products can choose to set a different certificate path. Products can place custom keystore file in one of the mounted directory so that it is available in the source directory of the container. Products can pass keystore file path in the plain text in server.xml or it can be passed throught environment variables while creating container
SERVER_CERT_PASSWD--NThe password used to access the specified keystore file. If SERVER_CERT_PATH is set please ensure to set this variable as well, since it might fail to access the keystore
SERVER_CERT_ALIASaptomcat-NThe alias used for the server key and certificate in the keystore. If not specified, a key with alias aptomcat will be searched and if the certificate is not found the certificate loading will fail. If SERVER_CERT_PATH and SERVER_CERT_PASSWD, ensure to set this variable as well. If more than one key is present in the keystore it is strongly recommended that a keyAlias is configured to ensure that the correct key is used.
SERVER_PROXY_NAME--NIf this APLS is being used in a proxy configuration, configure this variable to specify the server name to be returned for calls to tomcat's request.getServerName
SERVER_PROXY_PORT--NIf this APLS is being used in a proxy configuration, configure this attribute to specify the server port to be returned for calls to tomcat's request.getServerPort
Note:- The below variable can be used to set JVM parameters for tomcat
Variable NameDefault ValueSinceMandatoryRemarks
MAX_APLS_MEMORY-Xmx1532M -XX:+UseParallelOldGC -XX:ParallelGC Threads=20 -XX:ConcGCThreads=5 -XX:+UseParallelGC -XX:Initiating HeapOccupancy Percent=45 -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=70 -XX:MaxMetaspace Size=256m -XX:Reserved CodeCacheSize=64m -XX:CompressedClassSpaceSize=64m-NThis is used to set the JVM memory for details please check below table " JVM configuration details ". Customer can set custom values for these variables.

JVM configuration details

JVM SettingsDescriptionDefault Value
XmxThe flag Xmx specifies the maximum memory allocation pool for a Java virtual machine (JVM), while Xms specifies the initial memory allocation pool.This means that your JVM will be started with Xms amount of memory and will be able to use a maximum of Xmx amount of memory. For example, starting a JVM l will start it with 256 MB of memory and will allow the process to use up to 1536 MB of memory1536 (1.5 GB)
XX:+UseParallelOldGCUse parallel garbage collection for the full collections. Enabling this option automatically sets XX:+UseParallelGCNA
XX:+UseParallelGCThis Property is automatically sets if we set the above XX:+UseParallelOldGCNA
XX:ParallelGCThreadsSets the number of threads used during parallel phases of the garbage collectors. The default value varies with the platform on which the JVM is running.20
XX:ConcGCThreadsNumber of threads concurrent garbage collectors will use. The default value varies with the platform on which the JVM is running.5
XX:InitiatingHeap OccupancyPercentPercentage of the (entire) heap occupancy to start a concurrent GC cycle. GCs that trigger a concurrent GC cycle based on the occupancy of the entire heap and not just one of the generations, including G1, use this option. A value of 0 denotes 'do constant GC cycles'. The default value is 45.45
XX:MinHeapFreeRatioThis is set to control the heap expansion and shrinking: Minimum percentage of heap free after GC to avoid expansion. when the percentage of free space in a generation falls below this value the generation will be expanded to meet this percentage. Default is 4040
XX:MaxHeapFreeRatioThis is set to control the heap expansion and shrinking: Maximum percentage of heap free after GC to avoid shrinking. when the percentage of free space in a generation exceeded this value the generation will shrink to meet this value. Default is 70.70
XX:MaxMetaspaceSizeWith the introduction of Java 8, permgen space is no longer used. Instead, Metaspace is introduced. Although Metaspace is expanded automatically, there might be a scenario when you do want to set a cap.256m
XX:ReservedCodeCacheSizeThe maximum size of the code cache is set via the -XX:ReservedCodeCacheSize=N flag (where N is the default just mentioned for the compiler). The code cache is managed like most memory in the JVM: there is an initial size ( -XX:InitialCodeCacheSize=N). Allocation of the code cache size starts at the initial size and increases as the cache fills up. The initial size of the code cache varies based on the compiler in use. Resizing the cache happens in the background and doesn’t really affect performance, so setting the ReservedCodeCacheSize size (i.e., setting the maximum code cache size) is all that is generally needed.32m (Max 1024m)
XX:CompressedClassSpaceSizespecifies the maximum size of the Compressed Class Space.64m
Note :-
Refer the below link for more details https://docs.oracle.com/cd/E40972_01/doc.70/e40973/cnf_jvmgc.htm#autoId0

Logs and Debugging

Following log files can be use to validate if there are any errors.

Please go to the mounted path where you have setup AutoPass logs to be present. ** startup.log ** specifies any error with regard to container start up ** autopassls.log ** specifies APLS specific logs ** autopasslspurge.logs ** specifies APLS database purge logs. ** autopasslsaudit.xml ** specifies the APLS audit logs enabled through APLS UI configuration. ** localhost..log ** and ** catalina..log ** will give any information with regard to the tomcat server. To get all logs try, ** docker logs -f <APLS_CONTAINER_ID> **

Log level configuration

From the mounted path, /autopass-store/{SUBPATH_OF_AUTOPASS_DATA_FILES}/conf , log4j.xml file, allows the user the option to change the log levels.

By default "INFO" is specified for AutoPass and IDM logs.

This can be modified to the following level,

LevelDescription
ALLAll levels including custom levels.
DEBUGDesignates fine-grained informational events that are most useful to debug an application.
ERRORDesignates error events that might still allow the application to continue running.
FATALDesignates very severe error events that will presumably lead the application to abort.
INFODesignates informational messages that highlight the progress of the application at coarse-grained level.
OFFThe highest possible rank and is intended to turn off logging.
TRACEDesignates finer-grained informational events than the DEBUG.
WARNDesignates potentially harmful situations.

How to remove or upgrade the APLS Docker image

Use the below command to remove APLS container ** docker rm -f <APLS_CONTAINER_ID> ** For upgrade, remove existing container and use the new image to recreate the container Use this reference "How to deploy the APLS docker image"

Tag summary

Content type

Image

Digest

sha256:5da5a597b

Size

357.6 MB

Last updated

3 months ago

docker pull mfsharedtech/apls