Menadżer licencji LMTOOLS. Wyświetlanie listy licencji dla użytkowników produktów Autodesk

Dzień dobry, szanowni czytelnicy.

Będę maksymalnie zwięzły i podzielę artykuł na punkty.

Problemy organizacyjne

Liczba użytkowników programu AutoCAD przekracza liczbę lokalnych licencji sieciowych.

  1. Liczba specjalistów pracujących w oprogramowaniu AutoCAD nie jest regulowana żadnym wewnętrznym dokumentem.
  2. Na podstawie punktu nr 1, odmowa instalacji programu jest niemal niemożliwa.
  3. Nieprawidłowa organizacja pracy prowadzi do braku licencji, co skutkuje zgłoszeniami i telefonami abonentów do działu IT z tym problemem.

Problemy techniczne

  1. Brak środków do przeglądania listy zajętych licencji.

Opcje rozwiązania

  1. Gotowe rozwiązanie wspierane przez producenta oprogramowania, umożliwiające użytkownikom samodzielne przeglądanie listy zajętych licencji.
  2. Opracowanie dowolnego odpowiedniego rozwiązania do generowania raportu pracy menadżera licencji w formie strony internetowej.

Przyjęte rozwiązanie i wdrożenie

Zadanie techniczne

  1. Możliwość oszczędności na licencji systemu operacyjnego
  2. Wyświetl listę użytkowników korzystających z licencji

Implementacja pracy menedżera licencji

Podjęto decyzję o samodzielnej realizacji niezbędnej funkcji. Kolejność wykonania:

  1. Instalacja i konfiguracja CentOS 7 na serwerze wirtualizacji
  2. Instalacja i uruchomienie Autodesk Network License Manager dla systemu Linux
  3. Konfiguracja automatycznego uruchamiania narzędzia po restarcie systemu
  4. Konfiguracja pliku parametrów (o nim napiszę poniżej)
  5. Instalacja lokalnego serwera webowego i PHP

Implementacja wyświetlania listy zajmowanych licencji

  1. Tworzenie pliku .sh z poniższym zawartością:
    	#! /bin/bash
    	/opt/flexnetserver/lmutil lmstat -a -c [путь к файлу .lic]> "/var/www/html/log.txt"
    	

    Plik ten umieszczany jest w wygodnym katalogu i konfigurowany jako plik wykonywalny.

    Za pomocą tej komendy eksportowany jest status menedżera licencji do pliku log.txt

  2. Użyłem komendy
    watch -n 5 [ścieżka do utworzonego w punkcie nr 1 pliku .sh]

    Pozwala to na wywoływanie wcześniej stworzonego skryptu bash co 5 sekund.

  3. W katalogu log.txt z punktu nr 1 znajduje się plik index.php z następującą zawartością
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="/jq.js"></script>
    <title>Serwer licencji AutoCAD</title>
    <style>
    </style>
    </head>
    <body>
    <h1>Lista licencji serwera AutoCAD</h1>
    
    <div style="margin: 10px;">
    &lt;?php
    $log = file_get_contents(&#039;./log.txt&#039;);
    $logrp = nl2br($log);
    $arraystr = explode(PHP_EOL,$logrp);
    $busy = explode(&quot; &quot;,$arraystr[13]);
    echo &quot;Obecnie zajęte: &quot;.$busy[12].&quot; licencji<br /><br />";
    $i = 18;
    while($i&lt;=37){
    //var
    $a = $i-17;
    $data = explode(&quot; &quot;, $arraystr[$i]);
    $time = str_replace(&#039;&lt;br&#039;, &#039;&#039;, $data[13]);
    //varEND
    echo &quot;<span>".$a."</span> ";
    echo "<span>".$data[4]."</span> ";
    echo "<span>".$data[12]."</span> ";
    echo "<span>".$data[11]."</span> ";
    echo "<span>".$time."</span>";
    echo "<br>";
    $i++;
    }
    ?&gt;
    </div>
    </body>
    </html>
    	

    Proszę o wybaczenie za kod PHP, bardziej profesjonalni specjaliści zrobiliby to lepiej, a ja zrobiłem w miarę mojej wiedzy.

    Istota działania index.php:

    1. Otrzymuję tekst z pliku log.txt, wcześniej utworzonego przez skrypt, który jest aktualizowany co 5s.
    2. Zamieniam tagi przeniesienia na tagi HTML.
    3. Rozdzielam tekst w tablicy na wiersze.
    4. Formatuję kolejność i zawartość wierszy.

Końcowy rezultat realizacji wszystkich wymagań

Jak wygląda GUI сервера:

Menadżer licencji LMTOOLS. Wyświetlanie listy licencji dla użytkowników produktów Autodesk

Jak wygląda strona internetowa:

Menadżer licencji LMTOOLS. Wyświetlanie listy licencji dla użytkowników produktów Autodesk

Plik parametrów .opt

W nim wskazałem

TIMEOUTALL 14400 — czas przestoju programu jest ograniczony do 4 godzin
MAX_BORROW_HOURS [CODE] 48 — maksymalny czas wypożyczenia jest ograniczony do 2 dni.

Dodatkowe informacje

Ponieważ w organizacji używane są poprawne nazwy domenowe pracowników, na podstawie loginu bardzo łatwo zidentyfikować specjalistę, który zajął licencję.

Ogólny wynik wysiłków:

  1. Użytkownik samodzielnie widzi zajmowaną licencję, co zmniejsza obciążenie działu wsparcia technicznego.
  2. Wśród zespołu specjalistów pracujących z oprogramowaniem bez udziału wsparcia technicznego rozwiązywany jest problem „Kto dostanie licencję?”, i w zależności od priorytetu prac licencja jest zwalniana lub zajmowana.
  3. Oszczędności na licencjonowaniu Windows.

Źródło: habr.com

Kup solidny hosting dla stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting dla stron z ochroną przed DDoS, serwery VPS VDS | ProHoster