Sign inSign up

kutena/splm_ugslmd

By kutena

Updated over 3 years ago

FlexLM / Siemens UG License Manager for NX & SolidEdge

Image
0

1.9K

kutena/splm_ugslmd repository overview

Run FlexLM / Siemens UG License Manager in Docker container

Applicable to the Siemens UG license manager used to provide floating licenses for SolidEdge and NX.

Background

Previously the license was bound to a so called host ID, which was in fact the MAC address of the license servers network adapter. As of year 2020 the host ID was replaced by a composite host ID, a hash value generated from the hostname and again the MAC address. Additionally the Linux version of the license daemon became available for SolidEdge users. This opens the possibility to run the license manager in a Docker container.

Why?

  • Reduce costs, maintenance effort and time to run a dedicated license server
  • Super flexible and portable solution
  • Cheating with licenses? Better not - the CAD software probably phones home.

Usage

Lets assume your server's hostname is "licserv", the MAC address of your network adapter is "10:20:30:40:50" and your license file is "SELicenseFileV110.txt"

Start from command line
docker run -d --name se2023_licserv  -p 26999:26999 -p 28000:28000 -e "HOSTNAME=licserv" -e "MACADDR=10:20:30:40:50" --mount type=bind,source="$(pwd)"/SELicenseFileV110.txt,target=/usr/Siemens/PLMLicenseServer/splm11.lic --privileged splm_ugslmd
Alternatively: Run docker container on Synology NAS

Login to your NAS and start Docker UI. Upload your image to NAS e.g. using file station. In the Docker UI choose "Import image from file". Alternatively register from Docker Hub.

Launch image splm_ugslmd and set the following preferences:

General settings:

-> Execute container using high privilege

Advanced Settings:

-> Enable auto-restart

Volume:

-> Add file

-> Mount path: /usr/Siemens/PLMLicenseServer/splm11.lic

-> File/Folder: [Path to your license file]

Port Settings:

-> Local Port: 26999, Container Port: 26999

-> Local Port: 28000, Container Port: 28000

Environment:

-> HOSTNAME: [hostname of your license server]

-> MACADDR: [MAC address used to obtain the composite host ID]

Hit Apply and your are done!

Build docker image

In case the provided image does not work for several reasons you can build it according to the following instructions.

Prerequisites
  1. Valid license file
  2. FlexLM Linux installer SPLMLicenseServer_v11.0.0_linux_setup.bin
Create a directory for the new Docker image and cd into it:
mkdir splm_ugslmd
cd splm_ugslmd
Create docker file:
cat > Dockerfile <<EOF 
# syntax=docker/dockerfile:1
FROM opensuse/leap:15

# Expose ports
EXPOSE 26999
EXPOSE 28000

# Hostname and mac will be set during runtime
ENV HOSTNAME=thishost
ENV MACADDR=00:11:22:33:44:55

# copy license file
COPY ./splm11.lic /tmp/splm11.lic

# copy install binary
COPY ./SPLMLicenseServer_v11.0.0_linux_setup.bin /tmp/SPLMLicenseServer_setup.bin

# copy start script
COPY ./init /usr/local/sbin/init

# create dir required by license service
# set correct permissions for start script
# set correct permissions for setup binary
RUN mkdir /usr/tmp/;\
    chmod +x /usr/local/sbin/init;\
    chmod +x /tmp/SPLMLicenseServer_setup.bin

# install requirements for licenseserver post-install-check
RUN zypper -n install insserv vim iproute2 iputils

# install licenseserver using binary
RUN /tmp/SPLMLicenseServer_setup.bin --mode unattended --installer-language en --installdir /usr/Siemens/PLMLicenseServer --licensefile /tmp/splm11.lic || :;\
    rm /tmp/splm11.lic;\
    rm /tmp/SPLMLicenseServer_setup.bin

# start script when running the container (starts license service + tail -f on logfile)
CMD ["/usr/local/sbin/init"]
EOF
Create init script:
cat > init <<EOF 
#!/bin/bash

# set hostname
old_hostname=$(uname -n)
new_hostname=$(env |grep -i hostname | cut -d '=' -f 2)
if [ ! -z $new_hostname ]; then 
    echo $new_hostname > /proc/sys/kernel/hostname
    echo $new_hostname > /etc/hostname
    cp /etc/hosts /etc/hosts.tmp
    sed -i "s/$old_hostname/$new_hostname/" /etc/hosts.tmp
    cat /etc/hosts.tmp > /etc/hosts
    rm /etc/hosts.tmp
fi

# set mac address
macaddr=$(env |grep -i macaddr | cut -d '=' -f 2)
if [ ! -z "$(echo $macaddr | grep -E '^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$')" ]; then
    ip link set dev eth0 down
    ip link set dev eth0 address $macaddr
    ip link set dev eth0 up
fi

# start license server
service splmld start
tail -f /usr/Siemens/PLMLicenseServer/splm_ugslmd.log
EOF
Template for license file:
cat > splm11.lic <<EOF 
################################################################################
#                                                                              #
#                                                                              #
#                          Siemens PLM Software Inc.                           #
#                                 License File                                 #
#                                                                              #
#  Sold-To/Install: 0000000                    WebKey Access Code: 0000000000  #
#     Contact Name: Werner von Siemens                    Created: 01/01/2023  #
#    Customer Name: Siemens AG                                                 #
#   E-mail Address: [email protected]                        Version: 2212        #
################################################################################
SERVER thishost COMPOSITE=D1E5C5AEFE6B 28000
VENDOR ugslmd PORT=26999

################################################################################
#                                                                              #
#              SOFTWARE LICENSE TO FEATURE NAME CROSS REFERENCE                #
#   Version: 2212                                  Created: 01/01/2023 00:00:00#
#   Siemens AG                             Sold-To/Install: 0000000            #
################################################################################

# LICENSE PRODUCT  QTY  DESCRIPTION            QTY  FEATURE NAME

# --------------- ----- --------------------  ----- ---------------------------
# SE320TC             1 Solid Edge Classic        1 solidedgeclassic
# SE401               1 Solid Edge Included CAM
#                                                 1 3d_to_2d_flattener
#                                                 1 assemblies
#                                                 1 cam_base
#                                                 1 cavity_milling
#                                                 1 dxf_to_ug
#                                                 1 dxfdwg
#                                                 1 gateway
#                                                 1 gmc
#                                                 1 graphical_tool_path
#                                                 1 grip_execute
#                                                 1 iges
#                                                 1 nc_external_program
#                                                 1 nc_wizard_builder
#                                                 1 nx_cam_deburr_planar
#                                                 1 nx_post_config_adv
#                                                 1 planar_milling
#                                                 1 probe
#                                                 1 pstudio_auth
#                                                 1 pstudio_cons
#                                                 1 pv_ugdatagenerator
#                                                 1 shop_doc
#                                                 1 sla_3d_systems
#                                                 1 step_ap203
#                                                 1 step_ap214
#                                                 1 tol_cavity_milling
#                                                 1 ug_holemaking
#                                                 1 ug_kf_execute
#                                                 1 ug_post_exe
#                                                 1 ug_post_kinematics
#                                                 1 ug_post_mill
#                                                 1 ug_smart_models
#                                                 1 ug_to_dxf
#                                                 1 ug_to_vericut
#                                                 1 ug_visualize
#                                                 1 ugopen_menuscript
EOF
Build image:
docker build -t splm_ugslmd:latest -f Dockerfile .
Export image file:
docker image save splm_ugslmd -o ./splm_ugslmd.img
Run & test:
docker run -d --name se2023_licserv  -p 26999:26999 -p 28000:28000 -e "HOSTNAME=licserv" -e "MACADDR=10:20:30:40:50" --mount type=bind,source="$(pwd)"/SELicenseFileV110.txt,target=/usr/Siemens/PLMLicenseServer/splm11.lic --privileged splm_ugslmd
Attach to the running container:
docker container exec -it se2023_licserv /bin/bash
Check that lmgrd and ugslmd is running:
ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 18:31 ?        00:00:00 /bin/bash /usr/local/sbin/init
splmld      42     1  0 18:31 ?        00:00:00 /usr/Siemens/PLMLicenseServer/lmgrd -c /usr/Siemens/PLMLicenseServer/splm11.lic
splmld      45    42  1 18:31 ?        00:00:00 ugslmd -T licserv 11.16 7 -c :/usr/Siemens/PLMLicenseServer/splm11.lic: -srv tZiLzz07mZXqo2iK3k0xYocyS2rRId
root        54     1  0 18:31 ?        00:00:00 tail -f /usr/Siemens/PLMLicenseServer/splm_ugslmd.log
root        55     0  0 18:31 pts/0    00:00:00 /bin/bash
root        82    55 99 18:31 pts/0    00:00:00 ps -ef
Check properly mounted license file:
mount |grep Siemens
/dev/mapper/cr-local on /usr/Siemens/PLMLicenseServer/splm11.lic type ext4 (rw,relatime,stripe=128)
Check hostname:
uname -n
licserv
Check MAC address:
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
21: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 10:20:30:40:50 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
Output from log file:
cat /usr/Siemens/PLMLicenseServer/splm_ugslmd.log
19:01:52 (lmgrd) -----------------------------------------------
19:01:52 (lmgrd)   Please Note:
19:01:52 (lmgrd) 
19:01:52 (lmgrd)   This log is intended for debug purposes only.
19:01:52 (lmgrd)   In order to capture accurate license
19:01:52 (lmgrd)   usage data into an organized repository,
19:01:52 (lmgrd)   please enable report logging. Use Flexera's
19:01:52 (lmgrd)   software license administration  solution,
19:01:52 (lmgrd)   FlexNet Manager, to  readily gain visibility
19:01:52 (lmgrd)   into license usage data and to create
19:01:52 (lmgrd)   insightful reports on critical information like
19:01:52 (lmgrd)   license availability and usage. FlexNet Manager
19:01:52 (lmgrd)   can be fully automated to run these reports on
19:01:52 (lmgrd)   schedule and can be used to track license
19:01:52 (lmgrd)   servers and usage across a heterogeneous
19:01:52 (lmgrd)   network of servers including Windows NT, Linux
19:01:52 (lmgrd)   and UNIX.
19:01:52 (lmgrd) 
19:01:52 (lmgrd) -----------------------------------------------
19:01:52 (lmgrd) 
19:01:52 (lmgrd) 
19:01:52 (lmgrd) Server's System Date and Time: Thu Mar 30 2023 19:01:52 UTC
19:01:52 (lmgrd) SLOG: Summary LOG statistics is enabled.
19:01:52 (lmgrd) FlexNet Licensing (v11.16.4.0 build 252457 x64_lsb) started on licserv (linux) (3/30/2023)
19:01:52 (lmgrd) Copyright (c) 1988-2019 Flexera. All Rights Reserved.
19:01:52 (lmgrd) World Wide Web:  http://www.flexerasoftware.com
19:01:52 (lmgrd) License file(s): /usr/Siemens/PLMLicenseServer/splm11.lic
19:01:52 (lmgrd) lmgrd tcp-port 28000
19:01:52 (lmgrd) (@lmgrd-SLOG@) ===============================================
19:01:52 (lmgrd) (@lmgrd-SLOG@) === LMGRD ===
19:01:52 (lmgrd) (@lmgrd-SLOG@) Start-Date: Thu Mar 30 2023 19:01:52 UTC
19:01:52 (lmgrd) (@lmgrd-SLOG@) PID: 41
19:01:52 (lmgrd) (@lmgrd-SLOG@) LMGRD Version: v11.16.4.0 build 252457 x64_lsb ( build 252457 (ipv6))
19:01:52 (lmgrd) (@lmgrd-SLOG@) 
19:01:52 (lmgrd) (@lmgrd-SLOG@) === Network Info ===
19:01:52 (lmgrd) (@lmgrd-SLOG@) Listening port: 28000
19:01:52 (lmgrd) (@lmgrd-SLOG@) 
19:01:52 (lmgrd) (@lmgrd-SLOG@) === Startup Info ===
19:01:52 (lmgrd) (@lmgrd-SLOG@) Server Configuration: Single Server
19:01:52 (lmgrd) (@lmgrd-SLOG@) Command-line options used at LS startup: -c /usr/Siemens/PLMLicenseServer/splm11.lic 
19:01:52 (lmgrd) (@lmgrd-SLOG@) License file(s) used:  /usr/Siemens/PLMLicenseServer/splm11.lic
19:01:52 (lmgrd) (@lmgrd-SLOG@) ===============================================
19:01:52 (lmgrd) Starting vendor daemons ... 
19:01:52 (lmgrd) Starting vendor daemon at port 26999
19:01:52 (lmgrd) Using vendor daemon port 26999 specified in license file
19:01:52 (lmgrd) Started ugslmd (internet tcp_port 26999 pid 44)
19:01:52 (ugslmd) FlexNet Licensing version v11.16.4.0 build 252457 x64_lsb
19:01:52 (ugslmd) SLOG: Summary LOG statistics is enabled.
19:01:52 (ugslmd) SLOG: FNPLS-INTERNAL-CKPT1
19:01:52 (ugslmd) SLOG: VM Status: 0
19:01:52 (ugslmd) SLOG: FNPLS-INTERNAL-CKPT5
19:01:52 (ugslmd) SLOG: TPM Status: 0
19:01:52 (ugslmd) SLOG: FNPLS-INTERNAL-CKPT6
19:01:52 (ugslmd) Using options file: "26999"
19:01:52 (ugslmd) Server started on licserv for:    3d_to_2d_flattener 
19:01:52 (ugslmd) assemblies    cam_base    cavity_milling  
19:01:52 (ugslmd) dxf_to_ug dxfdwg      gateway     
19:01:52 (ugslmd) gmc       graphical_tool_path grip_execute    
19:01:52 (ugslmd) iges      nc_external_program nc_wizard_builder 
19:01:52 (ugslmd) nx_cam_deburr_planar nx_post_config_adv planar_milling    
19:01:52 (ugslmd) probe     pstudio_auth    pstudio_cons    
19:01:52 (ugslmd) pv_ugdatagenerator shop_doc   sla_3d_systems  
19:01:52 (ugslmd) step_ap203    step_ap214  tol_cavity_milling 
19:01:52 (ugslmd) ug_holemaking ug_kf_execute   ug_post_exe 
19:01:52 (ugslmd) ug_post_kinematics ug_post_mill   ug_smart_models 
19:01:52 (ugslmd) ug_to_dxf ug_to_vericut   ug_visualize    
19:01:52 (ugslmd) ugopen_menuscript borrowing   gateway_id  
19:01:52 (ugslmd) solidedgeclassic server_id    
19:01:52 (ugslmd) 
19:01:52 (ugslmd) Licenses are case sensitive for ugslmd
19:01:52 (ugslmd) 
19:01:52 (ugslmd) EXTERNAL FILTERS are OFF
19:01:52 (ugslmd) CANNOT OPEN options file "26999"
19:01:52 (lmgrd) ugslmd using TCP-port 26999
19:01:52 (ugslmd) SLOG: Statistics Log Frequency is 240 minute(s).
19:01:52 (ugslmd) SLOG: TS update poll interval is 600 seconds.
19:01:52 (ugslmd) SLOG: Activation borrow reclaim percentage is 0.
19:01:52 (ugslmd) (@ugslmd-SLOG@) ===============================================
19:01:52 (ugslmd) (@ugslmd-SLOG@) === Vendor Daemon ===
19:01:52 (ugslmd) (@ugslmd-SLOG@) Vendor daemon: ugslmd
19:01:52 (ugslmd) (@ugslmd-SLOG@) Start-Date: Thu Mar 30 2023 19:01:52 UTC
19:01:52 (ugslmd) (@ugslmd-SLOG@) PID: 44
19:01:52 (ugslmd) (@ugslmd-SLOG@) VD Version: v11.16.4.0 build 252457 x64_lsb ( build 252457 (ipv6))
19:01:52 (ugslmd) (@ugslmd-SLOG@) 
19:01:52 (ugslmd) (@ugslmd-SLOG@) === Startup/Restart Info ===
19:01:52 (ugslmd) (@ugslmd-SLOG@) Options file used: 26999
19:01:52 (ugslmd) (@ugslmd-SLOG@) Is vendor daemon a CVD: No
19:01:52 (ugslmd) (@ugslmd-SLOG@) Is FlexNet Licensing Service installed and compatible: No
19:01:52 (ugslmd) (@ugslmd-SLOG@) FlexNet Licensing Service Version: -NA-
19:01:52 (ugslmd) (@ugslmd-SLOG@) Is TS accessed: No
19:01:52 (ugslmd) (@ugslmd-SLOG@) TS access time: -NA-
19:01:52 (ugslmd) (@ugslmd-SLOG@) Number of VD restarts since LS startup: 0
19:01:52 (ugslmd) (@ugslmd-SLOG@) 
19:01:52 (ugslmd) (@ugslmd-SLOG@) === Network Info ===
19:01:52 (ugslmd) (@ugslmd-SLOG@) Listening port: 26999
19:01:52 (ugslmd) (@ugslmd-SLOG@) Daemon select timeout (in seconds): 1
19:01:52 (ugslmd) (@ugslmd-SLOG@) 
19:01:52 (ugslmd) (@ugslmd-SLOG@) === Host Info ===
19:01:52 (ugslmd) (@ugslmd-SLOG@) Host used in license file: licserv
19:01:52 (ugslmd) (@ugslmd-SLOG@) HostID node-locked in license file: COMPOSITE=746833B71127
19:01:52 (ugslmd) (@ugslmd-SLOG@) HostID of the License Server: 0123456789ab
19:01:52 (ugslmd) (@ugslmd-SLOG@) Running on Hypervisor: Not determined - treat as Physical
19:01:52 (ugslmd) (@ugslmd-SLOG@) ===============================================
Check composite host ID:
/usr/Siemens/PLMLicenseServer/getcid
Composite HostID Value(s):

  Multiple composite hostids (CIDs) indicate you have multiple network adapters.
  You should select the first CID or the most appropriate CID based on the network
  adapter which is currently active. The Siemens PLM Software Licensing CIDs 
  for this host "licserv" are:

  COMPOSITE=746833B71127 - eth0
                         (MAC : 102030405060)


Press the ENTER key to continue...
Check licenses issued:
/usr/Siemens/PLMLicenseServer/lmutil lmstat -a
lmutil - Copyright (c) 1989-2019 Flexera. All Rights Reserved.
Flexible License Manager status on Thu 3/30/2023 19:12

License server status: 28000@licserv
    License file(s) on licserv: /usr/Siemens/PLMLicenseServer/splm11.lic:

   licserv: license server UP (MASTER) v11.16.4

Vendor daemon status (on licserv):

    ugslmd: UP v11.16.4
Feature usage info:

Users of 3d_to_2d_flattener:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of assemblies:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of cam_base:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of cavity_milling:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of dxf_to_ug:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of dxfdwg:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of gateway:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of gmc:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of graphical_tool_path:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of grip_execute:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of iges:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of nc_external_program:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of nc_wizard_builder:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of nx_cam_deburr_planar:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of nx_post_config_adv:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of planar_milling:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of probe:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of pstudio_auth:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of pstudio_cons:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of pv_ugdatagenerator:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of shop_doc:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of sla_3d_systems:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of step_ap203:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of step_ap214:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of tol_cavity_milling:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_holemaking:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_kf_execute:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_post_exe:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_post_kinematics:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_post_mill:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_smart_models:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_to_dxf:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_to_vericut:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ug_visualize:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of ugopen_menuscript:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of borrowing:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of gateway_id:  (Total of 1000 licenses issued;  Total of 0 licenses in use)

Users of solidedgeclassic:  (Total of 1 license issued;  Total of 0 licenses in use)

Users of server_id:  (Total of 1 license issued;  Total of 0 licenses in use)
Close shell and continue on host:
exit
Check connection from host to container:
telnet 172.17.0.2 28000
Trying 172.17.0.2...
Connected to 172.17.0.2.
Escape character is '^]'.

Connection closed by foreign host.

and:

$> telnet 172.17.0.2 26999
Trying 172.17.0.2...
Connected to 172.17.0.2.
Escape character is '^]'.




Connection closed by foreign host.

Tag summary

Content type

Image

Digest

sha256:9dd529494

Size

220.4 MB

Last updated

over 3 years ago

docker pull kutena/splm_ugslmd