We recently moved from Maya LT (licensed via Steam mostly) to the proper version. As we wanted our artists to be able to move from Windows to macOS (to cover any changes in production machines / pipeline in future).
To do this we needed to set up a license server. We have a Virtual Machine host running KVM but these steps should work with any VM host.
The Network License Manager will run on Windows, macOS and Linux. I’m a firm believer in single-purpose VMs, so I wanted to run it on Linux (as a VM it’s a lot easier to move around than it is to move the license server from machine to machine!). The license manager comes as an RPM for linux and is only supported on Red Hat. I’m used to Ubuntu so I asked if that was supported and was informed it wasn’t. CentOS to the rescue!
So the first step is getting CentOS installed. I grabbed the minimal iso image from their website as the full ones are quite large. As of this blog post it was here. Once you have this iso, you’ll need a VM to put it in (see below for how we configured it).
I don’t know the specifics of your setup, but I’ll provide the command line we used to setup the VM on our host. We dimensioned it thusly:
- 1 CPU
- 1024MB of Ram
- 8GB of disk
- VM set to boot from the minimal ISO
The disk space seems ample (regardless of the number of licenses) – we currently have 4.4GB free, plus we used LVM so expansion is easy. Currently ~500MB of Ram is being used as a disk cache, so i suspect we are fine there too but YMMV.
For Ubuntu users with libvirt install, the command line is:
virt-install --name stirfire-autodesk-licensing -r 1024 --vcpus 1 --location "/home/images/CentOS-7-x86_64-Minimal-1611.iso" --os-type linux --os-variant=rhel7 --network bridge=vswitch0,virtualport_type='openvswitch' --hvm --virt-type kvm --disk /dev/Disk4/stirfire-autodesk-licensing --noautoconsole --graphics=vnc
You’ll want to modify the
--location parameters above to suit your local environment.
If you are using libvirt – ensure you include the
--graphics=vnc option as even the minimal CentOS setup requires a graphical install.
(I’ve used VirtualBox to take screenshots)
You should “Install CentOS Linux 7” and after booting, the graphical installer will launch.
You should install CentOS with the defaults, selecting auto-partitioning on the only visible hard disk (do not encrypt it!) – the only other thing you might want to change is the hostname.
Set up a root password and an administration user while it installs. Do not forget your root password as you will need it later! (I may have done this while prepping these screenshots :D)
The VM will need to reboot to complete the installation, at this point you can “remove” the iso from the cd drive
Now we need to configure our yum so we can install extra packages. You’ll need to do these as an admin user, so either log in as root or preface everything with
sudo. Do a
yum upgrade to update all the package lists and whatnot. If this doesn’t work – check that your network is working via
ip addr show. If your enp adapter doesn’t have an IP, might be worth checking the configs in
/etc/sysconfig/network-scripts/ (look for a
ipcfg-enpxxx file and check it’s autostarting. If it wasn’t, modify the config file and restart the networking via
Now that our network is going and we’ve got an updated set of yum packages, we can install some things! (Also, now that network is going – you can SSH in! openSSH is installed by default)
Installing the license manager
You’ll need the LSB package for the license server so install that via
yum –y install redhat-lsb
Now we can install the license server. To download the latest one, visit this page which should link to the latest version.
I prefer to download things directly to my linux servers. Curl is installed by default, so you can do something like
curl <URL from the above page> -o nlm.tar.gz
We should check the md5’s match via
which should output an MD5 that matches the page you downloaded it from.
Extract the RPM (i have no idea why they don’t just distribute the RPM…) via
tar -xzvf nlm.tar.gz
you should install it from your root account and the command is
rpm -i <RPM FILENAME>
if it worked, you should have a
I don’t like running things as root that don’t need to run as root, so I added a user to run the license manger under
(I probably should have done this as a system user but ¯\_(ツ)_/¯)
You should now get a license file from Autodesk – they will want to lock it to the server’s mac address, so ensure that your VM has a mac address that won’t change!
You can retrieve the MAC address via
ip addr show
You want the MAC address for the public-facing adapter, so you’re looking for an enpxxx adapter as before.
Once you get your license file, put it in
/opt/flexnetserver/adsk_server.lic (it can be owned by root, but it must be readable by the “license” user created above)
Before testing things, we need to open some ports in the firewall via:
firewall-cmd --zone=public --add-port=27000/tcp --permanent
firewall-cmd --zone=public --add-port=27001/tcp --permanent
firewall-cmd --zone=public --add-port=27002/tcp --permanent
firewall-cmd --zone=public --add-port=27003/tcp --permanent
firewall-cmd --zone=public --add-port=27004/tcp --permanent
firewall-cmd --zone=public --add-port=27005/tcp --permanent
firewall-cmd --zone=public --add-port=27006/tcp --permanent
firewall-cmd --zone=public --add-port=27007/tcp --permanent
firewall-cmd --zone=public --add-port=27008/tcp --permanent
firewall-cmd --zone=public --add-port=27009/tcp --permanent
firewall-cmd --zone=public --add-port=2080/tcp --permanent
Testing the license Server
Switch to the license user via
and then run the license server via
/opt/flexnetserver/lmgrd -c /opt/flexnetserver/adsk_server.lic
you should be able to successfully license your products using this VM’s ip address!
Of course, if you reboot the VM, you’ll notice the license server doesn’t start up – so we need to do an init script. Here’s one I did earlier:
[Unit] Description=FlexNet License Server After=network.target [Service] Type=simple ExecStart=/opt/flexnetserver/lmgrd -c /opt/flexnetserver/adsk_server.lic -z ExecStop=/opt/flexnetserver/lmutil lmdown -c /opt/flexnetserver/adsk_server.lic User=license [Install] WantedBy=multi-user.target
This needs to go into
Then you can enable it via:
systemctl start flexlm.service
if you query it via
systemctl status flexlm.service
it should be running (the third line should say
Active: active (running)) If not – there might be a path or username problem (or, the flexlm you started earlier is still running! Kill that old one). If it’s running fine, enable it across reboots via
systemctl enable flexlm.service
And you’re done!
Enjoy your new license server VM!