Installing a FlexNet Embedded (FNE) License Server
FNE License Server Types
The TotalView FNE license server is hosted on a single Linux x86 64-bit host machine. (For platform support specifics, see “Requirements for the Local License Server” in the FNE License Server Administration Guide PDF included in the distribution).
However, there is a provision for failover protection using a backup host, which ensures that users are not interrupted in the event of server failure. (See Installing an FNE Failover Server.) The procedure for installing either type is basically the same.
Installation Procedure
FNE License Server Prerequisites
To install an FNE license server:
1. The user/administrator must have sudo or root privileges
2. The license server must be installed on a Linux-x86-64 system. (For platform support specifics, see “Requirements for the Local License Server” in the FNE License Server Administration Guide PDF included in the distribution).
The host running TotalView will use TCP/IP to contact and check out licenses from the FNE license server running as a Linux service on the chosen x86 64-bit machine.
3. Java requirements:
*Oracle JRE 1.8 or OpenJDK 1.8
*The JAVA_HOME (or JRE_HOME) environment variable on your system set to the path for your default JDK (or JRE) installation. Ensure that this path does not include a trailing character, such as a slash or space.
Be sure to set this variable two levels up from the java executable, i.e., just above the bin directory. For example, for a java executable in /path/to/bin/java, set JAVA_HOME or JRE_HOME to the directory /path/to.
4. A dedicated unprivileged user account is recommended for the Linux-x86-64 system that hosts the license server. See Create a dedicated unprivileged user account.
Installing an FNE License Server
 
1. Install the FNE License Server
The FlexNet Embedded server is available as a separate installation tar bundle, available for download on the TotalView website at https://totalview.io/success/downloads.
NOTE: For served license renewal, skip this section and see FNE License Renewal.
1. Unpack your TotalView FlexNet Embedded distribution on the Linux license server system
To install the FNE license server software, unpack the FlexNet Embedded tar bundle onto the Linux x86 64-bit machine that will host the license server, then run the Install script from the resulting directory:
 
tar xvf flexnetls-<version>.tar -C ~
cd ~/flexnetls-<version>
2. Run the Install script using sudo (required)
sudo ./Install
*Choose an installation directory, e.g., /opt.
*At the prompt, select the components to install: just the FNE server files (flexnetls-server.tar.Z).
Once the Install script completes, you should have a flexnetls-<version> directory under <installdir>/toolworks.
2. Generate a Host ID for Each FNE License Server
Generate a host ID for the license server and failover server, if relevant.
To obtain host information, run the toolworks_hostid script, as follows:
 
<installdir>/toolworks/flexnetls-<version>/bin/toolworks_hostid
NOTE: Do not use the UNIX hostid command, as it will not return the proper host ID for FNE.
This script writes the host name and one or more FlexNet Embedded host ID values to standard output, for example:
 
The host name for this machine is: fast-server
The FlexNet Embedded host ID for this machine is:   08122b2cf32d
Generate host IDs for each server. If toolworks_hostid returns multiple FlexNet host IDs, select a persistent host ID, i.e., one for a device that is always part of the system when the license server software is running. The license server host ID is derived from the physical MAC address of a network interface card, and the host ID chosen must be a persistent address.
Send the host ID to the TotalView license team, license@perforce.com, who will then send you a permanent/subscription license to use when configuring each host
3. Verify Your FNE License Type and Product
After receiving your license, you can verify your license type and product by running the utility toolworks_licensetype and provide as input the license file:
 
<installdir>/toolworks/totalview.<version>/bin/toolworks_licensetype <licensefile>
The script returns the license type (either RLM, FNP, or FNE), the product, and whether a license server is required. For example:
 
FlexNet Embedded (FNE) TotalView for HPC license(s) detected
These licenses are counted. A license server is required.
For license setup help refer to TotalView for HPC > FlexNet Embedded (FNE)
in the TotalView Installation Guide.
4. Configure the FNE License Server
1. Install the license file on the license server system
Place your Perforce-provided FNE license file, license.bin, into the flexnetls-<version> directory.
2. Create a dedicated unprivileged user account
NOTE: Skip this step if you already created the user as a prerequisite to installing and running the license server as discussed in FNE License Server Prerequisites.
While not required, it’s recommended to have a dedicated, unprivileged user account to run the license server.
3. Run the Configure_License script using sudo
 
cd /opt/toolworks/flexnetls-<version>
sudo bin/Configure_License
 
This script is interactive and prompts you while it runs. These are the possible options:
*Create/provide a username, created as a prerequisite in FNE License Server Prerequisites or during Step 2. Note that this script will create a user account if you don’t already have one.
*(Optional) Define a program files directory where the license server service will be installed.
*(Optional) Define a data files directory for trusted storage and log files.
*Identify an available listening port (e.g., 7137).
*(Optional) Customize FNE server policy settings.
*(Optional) View the automatic license server startup script.
5. Point TotalView Client Installations to the FNE License Server
Each client machine that will run TotalView needs access to a license.
*On each client machine, set the environment variable TV_LICENSE_FILE to point to the FNE license server using the format <port>@<host>.
For example:
 
TV_LICENSE_FILE=7137@licserver
export TV_LICENSE_FILE
*Alternatively, to avoid having to set up the TV_LICENSE_FILE environment variable for each user, place the <port>@<host> string in a file in the license directory.
To do this, create a file tv_license_file that contains just the <port>@<host> string, such as 7137@licserver. Place this file in <installdir>/toolworks/license/.
Starting and Stopping an FNE License Server
An FNE server is configured by default to autostart when the server reboots. In most scenarios, you won’t need to explicitly stop or start the server. You can, however, manually start or stop the server if you need to, or disable its autostart.
Disabling Autostart for an FNE License Server
To disable an FNE server’s autostart configuration, run the following script as root:
<installdir>/toolworks/flexnetls‑<version>/bin/Deconfigure_Autostart
To re-enable autostart, run:
<installdir>/toolworks/flexnetls‑<version>/bin/Configure_Autostart
Manually Starting or Stopping an FNE License Server
Run the following command to manually start the license server.
<installdir>/toolworks/flexnetls‑<version>/bin/toolworks_init start
NOTE: Note that toolworks_init was generated by the Configure_License script in 4. Configure the FNE License Server.
To stop the license server:
<installdir>/toolworks/flexnetls‑<version>/bin/toolworks_init stop
Managing FNE License Access with Model Definitions
The license models feature available with the FlexNet Embedded license server supports defining allow and block lists based on a host ID, using a model definition.
Model definitions use the EBNF syntax (Extended Backus–Naur form). For detail, see the FlexNet Embedded License Server Administration Guide located in the installation directory at <installdir>toolworks/flexnetls-<version>/doc/.
Creating and Managing FNE License Model Definitions
You can create either an allow list, which defines host IDs allowed to receive a license, or a block list, which blocks specific host IDs, and allows all others.
NOTE: For TotalView, provide usernames for the host ID field, rather than machine identifiers, because TotalView grants licenses based on the username sent as a secondary host ID. For example, bjones, rather than 0050569b0d74.
1. Create a model definition file
The following example creates a simple allow list with three engineering team members:
 
model "engTeam" {
on hostid("bjones",
"schang",
"msingh") {
use "default"
accept
}
on any() {
deny
}
}
 
Fields:
*model: The model definition name, as a string.
*hostid: The individual’s user ID
*use “default”: Uses the default license partition. Note that only one partition, the default, is supported in TotalView.
*accept: Accepts all identified hostids.
*on any () deny: Denies a license request for any requests that do not match the defined hostids.
To create a block list, switch the deny and accept keywords and move use "default" under on any():
 
model "engTeam" {
on hostid("bjones",
"schang",
"msingh") {
deny
}
on any() {
use "default"
accept
}
}
2. Load the file into the license server
a. Change to the flexnetls directory:
cd <installdir>/toolworks/flexnetls-<version>/linux-x86-64/bin/
b. Load the file:
sudo ./flexnetlsadmin.sh -server http://<SERVER>:<PORT>/api/1.0/instances/~ ‑model ‑load model_allow.model
where model_allow.model is the model definitions filename. Note that the prefix “.model” is not required; it can be anything you choose.
Once model definitions are loaded into the server, you can check on or delete them:
*To see the active model definition:
./flexnetlsadmin.sh -server http://<SERVER>:<PORT>/api/1.0/instances/~ ‑model
*To delete the active model definition:
./flexnetlsadmin.sh -server http://<SERVER>:<PORT>/api/1.0/instances/~ ‑model -delete
Installing an FNE Failover Server
TotalView's FNE license technology supports a failover license server configuration to provide a robust license server availability solution. This creates a primary/failover FNE license server pair for a complete FNE failover setup/configuration.
The procedure to install a failover license server is the same as installing a regular license server, with a few small differences:
For Step 3, the provided configure script is Configure_Backup_Server rather than Configure_License:
 
cd /opt/toolworks/flexnetls-<version>
sudo bin/Configure_Backup_Server
NOTE: The primary and failover servers must have the same assigned port.
For a proper failover setup, you must generate a host ID for both the primary and failover license servers.
3.Configure Hosts to Use the FNE failover setup.
In the case of a failover setup, the TV_LICENSE_FILE environment variable points to the failover host pair using the format <port>@<primarylicserver>:<backuplicserver>, for example:
 
TV_LICENSE_FILE=7137@licserver:failoverserver
export TV_LICENSE_FILE
Uninstalling an FNE License Server
TotalView provides a script to remove an FNE license server, fneuninstall, located in <installdir>/toolworks/flexnetls-<version>/bin. The script first stops and disables the license server, if it is running.
As the root user (or using sudo), run the script as below, assuming the FNE server is installed in its default location under /usr:
cd /usr/toolworks/flexnetls-<version>
./fneuninstall /usr
The script fneuninstall assumes that you have installed FNE using the default location, including the FNE program and data files. If you chose an alternate location when running Configure_License, you’ll need to remove these files manually after running this script.
If you have installed FNE on a backup, or failover, server, run this script on that server as well.