The information on this page refers to LM-X version v6.0 and newer, which implemented YAML configuration. As of v6.0, legacy configuration files from LM-X versions prior to v6.0 will no longer work (see the note below on migrating your old configuration file to the new YAML format). If you are using a version of LM-X older than LM-X v6.0, please see documentation for older versions. |
If you have an existing configuration file, it will be migrated to the new YAML format when you install LM-X version 6.0 or newer. The old configuration file does not include settings for the web server used to run the new LM-X License Server UI. To enable the web server and access the LM-X License Server UI, you must manually add the following line to the newly migrated configuration file: web_server: tcp_listen_port: 6199 |
This page details all LM-X license server configuration settings, their valid values, and required YAML syntax.
The configuration file includes settings for:
Note the following:
|
The license_server
settings configure the TCP port and bind addresses for the license server. The license_server
settings are detailed below.
tcp_listen_port
6200
tcp_bind_address
(Optional)
tcp_bind_address:
ipv4: 192.168.21.123
ipv6: 8000:8000:8000:8000:abcd:1234:12df:fd54
The hal
settings are used to configure redundant servers for High Availability Licensing (HAL). HAL ensures high availability for critical software by requiring at least two out of three configured servers to be operational. The HAL settings are described below.
master
:
slave1
:
slave2
:
Example syntax:
hal:
master:
host: "server1"
port: 6200
slave1:
host: "server2"
port: 6200
slave2:
host: "server3"
port: 6200
Important: The HAL server list must be identical across all servers for proper operation. For more details, refer to the LM-X End Users Guide on High Availability Licensing.
The log
settings define the logging behavior of the license server. The log settings are described below.
path
:
/home/user/lmx-serv.log'
format
:
normal
(default)extended
(includes additional debugging information such as HostIDs and VM status)exclude
(Optional):
checkout
, checkin
, status
, borrow
, borrow_return
, remove_user
, remote_restart
, remote_shutdown
, heartbeat
, blacklist
, reservation
, reservation_checkout
, reservation_normal_return
, reservation_early_return
, automatic_discovery
rotate_interval
:
day
, week
, month
, never
(default is never
)Example syntax:
log:
path: '/home/user/lmx-serv.log'
format: normal
exclude:
- checkout
- checkin
- status
rotate_interval: month
The denial storage and user removal settings are described below.
denial_store_period
86400
(one day)min_user_remove_time
lmxendutil
utility.120
seconds)-1
: Disables user removalmin_user_remove_time: 120
The api_password
setting is used to set the API password used for remotely stopping/restarting the license server and for removing users. The api_password
setting is detailed below.
api_password: '$argon2id$v=19$m=65536,t=3,p=4$PVbKB+ekhE0ZBJ/2z1ggwQ==$+PjvNqhTnRlCxtApKJqq6kFYfPlR5QFVaXN5jEaT5t4='
The pay_per_use
settings configure the database used for billing and usage tracking. The pay_per_use
settings are detailed below.
path
:
"/var/ppu.db"
format
:
normal
(basic usage information)extended
(includes additional user information)write_interval
:
1000
anonymization
:
true
or false
(default is false
)Example syntax:
pay_per_use:
path: "/var/ppu.db"
format: normal
write_interval: 1000
anonymization: true
The fast_queue
settings allow bypassing the normal queuing process if the license request can be satisfied immediately; for example, if a client requires fewer licenses than those immediately available. The fast_queue
settings are detailed below
fast_queue:
- "f1"
- "f2"
- "f3"
The web_server
settings enable and configure the web interface used for remote management of the license server.
tcp_listen_port
:
6199
tcp_bind_address
(Optional):
cert_chain_path
and private_key_path
(Optional):
users
:
admin
user must exist for the UI to function.web_server:
tcp_listen_port: 6199
users:
admin:
password: $argon2id$v=19$m=65536,t=3,p=4$PVbKB+ekhE0ZBJ/2z1ggwQ==$+PjvNqhTnRlCxtApKJqq6kFYfPlR5QFVaXN5jEaT5t4=
role: admin
The groups
settings allow the creation of groups for users, hosts, or IP addresses to reduce redundancy in configuration files.
groups:
admins:
- "admin1"
- "admin2"
users:
- "user1"
limited_users:
- "userA"
ip_address_blacklist:
- "1.2.3.4"
- "1.2.*.*"
banned_users:
- "baduser1"
- "baduser2"
The checkout
settings control which clients are allowed or denied the ability to CHECKOUT licenses, as well as setting license limits and reservations.
access
:
feature
: Specify the license feature (use "*"
for all features).allow
or deny
: Define lists of users
, hosts
, or ip_addresses
.limit
:
count
: Maximum licenses allowed.users
, hosts
, or ip_addresses
).reserve
:
Example syntax:
checkout:
access:
- feature: "f1"
allow:
users:
- "bob"
- "alice"
- feature: "f2"
allow:
hosts:
- "localhost"
users:
- "bob"
- "alice"
ip_addresses:
- "1.1.*.*"
- feature: "*"
deny:
users:
- "bob"
- "alice"
limit:
- feature: "f1"
count: 6
users:
- "limited_users"
- feature: "f3"
count: 3
hosts:
- "host666"
- feature: "*"
count: 1
ip_addresses:
- "123.123.123.123"
reserve:
- feature: "f1"
count: 5
users:
- "bob"
- "alice"
- feature: "f16"
count: 10
hosts:
- "localhost"
The borrow
settings control which clients are allowed to borrow licenses and impose limits on the number of licenses that can be borrowed or the duration of the borrow.
access
:
feature
and client matching.limit
:
count
: Maximum number of licenses.hours
: Maximum borrow time in hours.ignore
: Specify exceptions (e.g., certain users or hosts).Example syntax:
borrow:
access:
- feature: "f1"
allow:
users:
- "bob"
- "alice"
- feature: "f2"
allow:
hosts:
- "localhost"
ip_addresses:
- "1.1.*.*"
- feature: "*"
allow:
users:
- "test"
- feature: "f3"
deny:
users:
- "bob"
- "alice"
limit:
- feature: "f5"
hours: 3
- feature: "f1"
count: 6
ignore:
users:
- "bob"
- feature: "f3"
hours: 3
ignore:
hosts:
- "host666"
- feature: "*"
count: 1
ignore:
ip_addresses:
- "123.123.123.123"
The licenses
settings define where the license server searches for license files and optionally let you embed license data within the configuration.
path
:
<vendor>.lic
in the same directory as the license server if unspecified./usr/x-formation/<vendor>.lic
if unspecified.embedded
:
|
) containing the license information.Example syntax:
licenses:
path:
- '/home/user/licenses/'
- '/tmp/lmx.lic'
embedded:
- |
FEATURE F1
{
VENDOR=TEST-VENDOR COUNT=1 VERSION=5.0 END=2030-01-01 MAINTENANCE_END=2030-01-01 SHARE=VIRTUAL
PLATFORMS="Linux_x86 Linux_x64 Linux_arm64 Linux_arm32" "_x64" OPTIONS="TEST-VENDOR TYPE=NETWORKED"
KEY=AbCdEfGhIjKlMnOpQrStUvWxYz0123456789...
}