The information on this page refers to LM-X |
version 6.0 and newer, which implemented YAML configuration. As of LM-X 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. |
Note |
---|
By default, a new YAML configuration file will be created automatically after installing and running v6.0 or newer. As of v6.0, legacy configuration files from LM-X versions prior to v6.0 will no longer work. If you use an existing configuration file from an older version when you start up the license server in v6.0 or newer, the configuration file will be migrated to the new YAML format. 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 lines to the newly migrated configuration file:
After adding these lines to the configuration file and restarting the LM-X server, you can access the LM-X License Server UI at https://URL:6199. |
This page details all LM-X license server configuration settings, their valid values, and required YAML syntax.
...
Info |
---|
Note the following:
|
Anchor | ||||
---|---|---|---|---|
|
The license_server
settings configure the TCP port and bind addresses for the license server. The license_server
settings are detailed below.
...
- Description: Restricts client connections to specific networks. When defined, the server accepts connections only from clients whose IP addresses match the provided values.
- Example syntax:
tcp_bind_address: ipv4: '192.168.21.123' ipv6: '8000:8000:8000:8000:abcd:1234:12df:fd54'
- Note: If not specified, connections from all networks are accepted.
...
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.
...
- Description: Full path to the log file.
- Syntax: A string representing the file path.
- Example: "'
/home/user1user/lmx-serv.log"'
format
:
- Description: Determines the level of detail in the log file.
- Valid values:
normal
(default)extended
(includes additional debugging information such as HostIDs and VM status)
...
- Description: Sets the interval for log file rotation (midnight rotation).
- Valid values:
day
,week
,month
,never
(default isnever
)
Example syntasyntax:
log:
path: "'/home/user1user/lmx-serv.log"'
format: normal
exclude:
- checkout
- checkin
- status
rotate_interval: month
...
- Description: The minimum time (in seconds) that must elapse before a user can be removed using the
lmxendutil
utility. - Valid values:
- A positive integer (default is
120
seconds) -1
: Disables user removal
- A positive integer (default is
- Example syntasyntax:
min_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.
- Example syntasyntax:
api_password: '$argon2id$v=19$m=65536,t=3,p=4$PVbKB+ekhE0ZBJ/2z1ggwQ==$+PjvNqhTnRlCxtApKJqq6kFYfPlR5QFVaXN5jEaT5t4='
- Note: This setting is sensitive; ensure proper security measures are in place.
...
- Description: Path to the pay-per-use usage database.
- Syntax: String indicating the database file location.
- Example: "'
/var/ppu.db"'
format
:
- Description: Determines the level of detail recorded.
- Valid values:
normal
(basic usage information)extended
(includes additional user information)
...
- Description: Enables the anonymization of usernames by hashing them.
- Valid values:
true
orfalse
(default isfalse
)
Example syntasyntax:
pay_per_use:
path: "'/var/ppu.db"'
format: normal
write_interval: 1000
anonymization: true
...
- Valid values:
- A list of feature identifiers.
- Example syntasyntax:
fast_queue: - "f1" - "f2" - "f3"
Anchor | ||||
---|---|---|---|---|
|
...
- Description: A mapping of user credentials required for accessing the web UI.
- Mandatory Admin User:
- An
admin
user must exist for the UI to function. - Behavior: If the admin user is missing from the configuration, it will be automatically recreated with the default password "MyPassword123admin". This password can be changed via the web the LM-X License Server UI.
- An
- Example syntasyntax:
web_server: tcp_listen_port: 6199 users: admin: password: '$argon2id$v=19$m=65536,t=3,p=4$PVbKB+ekhE0ZBJ/2z1ggwQ==$+PjvNqhTnRlCxtApKJqq6kFYfPlR5QFVaXN5jEaT5t4=' role: admin
Anchor | ||||
---|---|---|---|---|
|
...
- Usage:
Define groups that can later be referenced in access rules. - Example syntasyntax:
groups: admins: - "'admin1"' - "'admin2"' users: - "'user1"' limited_users: - "'userA"' ip_address_blacklist: - "'1.2.3.4"' - "'1.2.*.*"' banned_users: - "'baduser1"' - "'baduser2"'
Anchor | ||||
---|---|---|---|---|
|
...
- Description:
A list of rules evaluated in order. If no rule matches, the client is allowed by default. - Rule Properties:
feature
: Specify the license feature (use"'*"'
for all features).allow
ordeny
: Define lists ofusers
,hosts
, orip_addresses
.
...
- Description:
Reserves a specific number of licenses for certain users or groups.
Example syntasyntax:
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"'
Anchor | ||||
---|---|---|---|---|
|
...
- Description:
Restricts the number of borrowed licenses and/or the allowed duration. - Properties:
count
: Maximum number of licenses.hours
: Maximum borrow time in hours.ignore
: Specify exceptions (e.g., certain users or hosts).
Example syntasyntax:
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"'
Anchor | ||||
---|---|---|---|---|
|
The licenses
settings define where the license server searches for license files and optionally let you embed license data within the configuration.
...
- Description:
Embeds license details directly into the configuration file. - Syntax:
A block scalar (using|
) containing the license information.
Example syntasyntax:
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...
}
...