Versions Compared

Key

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


The information on this page refers to LM-X

versions prior to

version v6.0, which implemented YAML configuration. As of v6.0,

ASCII-formatted

legacy configuration files will no longer work.

 

If you are using a version of LM-X older than LM-X v6.0, please see documentation for older versions 


This page details all LM-X license server configuration settings, their valid values, and required YAML syntax.  

...

Info

Note the following:

  • Configuration Changes: All settings can be modified either directly in the configuration file or by using the LM-X License Server Web UI. However, any changes will only be applied after a restart of the license server.

  • Admin User Management: The web server configuration must include an admin user. If the admin user is missing in the configuration, it will be automatically recreated using the default password "MyPassword123". This password admin. This default password can be changed later using the LM-X License Server Web UI.

  • YAML Syntax: As of LM-X License Manager v6.0, the LM-X license server configuration is defined using YAML. Ensure you use proper YAML formatting, including indentation and case sensitivity for keys. Incorrect syntax may lead to configuration errors or server misbehavior. To avoid errors, using the LM-X License Server Web UI is recommended.

...

  • 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 is never)

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
  • 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: Enables the anonymization of usernames by hashing them.
  • Valid values: true or false (default is false)

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"

...

  • 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 "MyPassword123". This password can be changed via the web UI.
  • 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

...

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

...

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

...

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

...

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

...