• Skip to primary navigation
  • Skip to content

Stirfire Studios

VR/AR Application Development in Perth

  • About
  • What We Do
    • Gamification
    • AR App Development
    • VR App Development
    • Interactive Installations
  • Case Studies
    • Safety Beach
    • Driving Distraction Simulator
    • Dead End Alley VR
  • News
  • Investors
  • Contact

Autodesk Network License Manager in a VM!

Brendan Ragan · Nov 7, 2017 ·

Background

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!

Centos Setup

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 --disk, --network and --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)

Centos Minimal install boot screen
Once you get it booting properly, you’ll be greeted with this screen

You should “Install CentOS Linux 7” and after booting, the graphical installer will launch.

Centos installer boot screen
Centos installer boot screen

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.

Root and system user config screen

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 /etc/init.d/network restart)

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

md5sum nlm.tar.gz

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 /opt/flexnetserver directory

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

adduser license

(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
su license
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 /usr/lib/systemd/system/flexlm.service

Then you can enable it via:

systemctl daemon-reload
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!

Front Page, Journal, Uncategorised System Administration, Technical

« Conventional Thinking
Vee Pendergrast on Game Hugs »

Ready to talk about your project?

Contact Us

© 2018 Stirfire Studios. | Proudly created by Get With The Brand

  • Investors
  • Terms & Privacy