# License Installation

## Requesting A License

Yeti uses the Reprise License Manager and requires a floating license, if you are hoping to try Yeti and don’t already have a license please head to the Yeti webpage and request a trial. If you’ve purchased Yeti you should have received your license file from our licensing team already.

As recommended by the Reprise team, please reference the RLM End User Manual for configuration details.

## License Server Distribution

A distribution containing the License Server and Tools for your platform can be found here, once downloaded extract the contents to the directory of your choice. Yeti uses the generic RLM license server and a provided peregrinel.set isv file that must be present for license use to be successful.

## Running the License Server

The rlm command is::

    % rlm [-c license_file] [-dlog [+]logfile]
       [-nows] [-ws port] [-x [rlmdown|rlmremove]]
       [-install_service] [-service_name sname]
       [-isv_startup_delay seconds]

The -c license_file option specifies which license file to use. This option overrides the setting of the RLM_LICENSE environment variable. The license_file parameter can be a directory containing license files, all of which will be processed.

The -dlog logfile specifies the pathname for the server debug log. If logfile is preceded by the ‘+’ character, the logfile will be appended, otherwise it is overwritten.

The -nows and -ws port options control the operation of the embedded Web Server. The -nows option instructs the rlm server to not start the embedded web server. The -ws port option instructs the rlm server to use port as the port number for the web server.

The -x [rlmdown | rlmremove] option controls whether the rlmdown and/or rlmremove commands will be processed by the server. Specifying only -x will disable both commands. Specifying either command name after the -x will disable just that command.

These options can appear in any order on the command line.

Note that if the rlm server cannot bind the web server port (5054 by default), it will exit.

## Accessing the Server from Clients

Once you have a license server up and running you need to tell the client where to find it, this is done with either the peregrinel_LICENSE ( recommended ) or RLM_LICENSE environment variable. This should be set to port@hostname which port is the TCP/IP port of the license server and hostname is the name of the license server.

If you are unfamiliar with the process of setting environment variables for your specific platform here are some resources for Windows and OSX - if using Linux you should add these to your .tcshrc, .cshrc or .bashrc files depending on what Shell you’re using.

## Running the RLM Server as a Service on Windows

On Microsoft Windows servers, you may want to install and run the rlm server as a Windows service process. A service process can start automatically at boot time and remain running as long as the system is up, regardless of user logins and logouts.

You can install RLM as a service either in the RLM web interface or in a command window. Once installed as a service, it remains installed until it is explicitly deleted as a service. Installing RLM as a service does not start RLM; services are started via the Windows Services control panel, and at boot time.

To install using the web interface, select `Manage Windows Service` from the main menu on the left. You will get a form with 3 data fields:

`service name`

`logfile name`

`optional command-line arguments`

All 3 fields will be filled in with default values. You can just select “Install Service”, and the “rlm” service will be installed for you. By default, the logfile is put in the directory with the rlm.exe binary, and it is named rlm.log. Also, by default, rlm will search for all license files in this directory.

If you select `Remove Service`, the service name specified in the form will be removed.

Note

If the instance of rlm which you are running is actually running as a service, you will not be able to Remove the Service (since it is running). To remove the service, you will have to stop the service, and then either use the service control panel in Windows, or run rlm in a command window and use the Remove Service option in the web interface.*

Optionally, you can install RLM as a service in a command window. To do this, use the rlm program itself (in a command window), with special arguments:

`rlm -install_service -dlog [+]logfile [-service_name sname] <rlm runtime args>`

where: logfile is the pathname for the server debug log. This parameter is required. If preceded by the ‘+’ character, the logfile will be appended, rather than created.

sname is an optional name for the installed service. If not specified, sname defaults to “rlm”. If sname contains embedded whitespace, it must be enclosed in double quotes.

<rlm runtime args> are any other command line arguments to be passed to rlm when it is started. Example:

`rlm -install_service -service_name rlm-xyz -dlog c:\logs\server.log -c c:\licenses\xyz.lic`

This installs rlm as a service under the name “rlm-xyz”. When started via the Services control panel or at boot time, rlm will be passed the “-c c:licensesxyz.lic” args, and it will write it’s debuglog information to the file c:logsserver.log

Installed RLM services are also deleted with the rlm program. Services must be stopped via the service control panel before they can be deleted. Note that deleting a service deletes it from the Windows service database; it does not delete the rlm executable or associated license file(s):

`rlm -delete_service [-service_name sname]`

where: sname is an optional name for the installed service. If not specified, service_name defaults to “rlm”. If service_name contains embedded whitespace, it must be enclosed in double quotes.

## Running the RLM Server as a Service on Linux

On most Unix systems, system services are started at boot time, usually via startup scripts located in /etc/rc.<something>. For example, the script could be located in /etc/init.d/rlm, with a link to /etc/rc5.d/S98rlm. Note that you must install this startup script as root.

The startup script should su to a different user so that the rlm servers are not running as root.

If required please contact support for a sample start up script.

## Running the RLM Server as a Service on OSX

On Mac systems, the server can be started by placing a script in /Library/LaunchDaemons.

The following is an example of a script which would start rlm at boot time on Mac systems. Note that this script must be placed in the /Library/LaunchDaemons directory, and it must have an extension of .plist.

You should change ABSOLUTE_PATH_TO_RLM to the path to the rlm server binary. You can add additional ProgramArguments as needed:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
           <key>Label</key>
           <string>com.peregrinel.rlm</string>
           <key>ProgramArguments</key>
           <array>
           <string>ABSOLUTE_PATH_TO_RLM</string>
           </array>
           <key>RunAtLoad</key>
           <true/>
    </dict>
    </plist>

## RLM Embedded Web Server

The rlm server contains an embedded Web Server which can be used to perform most administration of the rlm server itself. The web server allows you to retrieve server and license status (similar to rlmstat), cause the servers to re-read the license files (rlmreread), switch debug (rlmswitch) or report log (rlmswitchr) files, move the current report log file to a new name (rlmnewlog), or shut down the license servers (rlmdown). Using this web-based interface, you can administer the license servers from any platform, and you do not need to install the rlm utilities - you only need a web browser.

The web server is started automatically on port 5054 when rlm is started. To use the web server, simply point your browser to: `http://ServerHostName:5054` and select the operation you would like to perform. You will be prompted for any required information.

If you would like to run the web server on a different port, specify the -ws NNNNN command-line argument when starting rlm, where NNNNN is the desired port.

The RLM web server is 100% self-contained in the rlm binary; no additional html files are required for operation.

## Setting Timeouts for Checked Out Licenses

In some situations it’s likely that a client may hold onto a checked out license longer than the lifetime of the application - when Maya crashes for instance. The reason being is that because of the early exit from the application the code used to return the license to the license server was unable to run.

To avoid zombie licenses the TIMEOUT ISV option may be used to tell RLM to release licenses owned by instances that haven’t sent a heartbeat back to the server for the specified amount of time.

You can edit the peregrinel options file by navigating to the RLM web interface and selecting the Status option. Find the peregrinel ISV server and select peregrinel in the Options column. Once editing the options file add TIMEOUT <num seconds> peregrinel - the minimum value for <num seconds> is 3600 ( one hour ).

Once you’re happy with the changes use the Update Options button to save your changes and Reread the server ( to force the options to take effect ).

## Serving Licenses for Multiple RLM ISV’s

When you have licensed software from multiple ISVs, you have two choices for how to configure rlm and the ISV servers when running them on a single license server system.

The first choice is to keep them entirely separate, using separate installation directories and port numbers for the client and web interface. Although conceptually simple management and use becomes more complex, the number of used ports are increased and there will be multiple web interfaces to check license usage.

The second choice is to run a single instance rlm, which manages two (or more) ISV servers. This is the method recommended by ourselves and Reprise Software and is much simpler to manage, you only have a single RLM port to be managed and a unified web interface.

To do this you need to make sure you choose the latest version of the RLM license manager supplied by the vendors ( they are backwards compatible ) or better yet, download the latest version from Reprises website ( http://www.reprisesoftware.com/enduser_kits/end-useragreement.php ).

Copy over the <ISV>[.exe] or <ISV>.set files from all of the vendors.

Copy over all of the .lic ( license ) files supplied by all of the vendors.

Once all of the required files have been copied the RLM server can be started as usual, use the web interface to confirm that all relevant licenses have been accounted for.