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.
- Liczba specjalistów pracujących w oprogramowaniu AutoCAD nie jest regulowana żadnym wewnętrznym dokumentem.
- Na podstawie punktu nr 1, odmowa instalacji programu jest niemal niemożliwa.
- 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
- Brak środków do przeglądania listy zajętych licencji.
Opcje rozwiązania
- Gotowe rozwiązanie wspierane przez producenta oprogramowania, umożliwiające użytkownikom samodzielne przeglądanie listy zajętych licencji.
- 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
- Możliwość oszczędności na licencji systemu operacyjnego
- 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:
- Instalacja i konfiguracja CentOS 7 na serwerze wirtualizacji
- Instalacja i uruchomienie Autodesk Network License Manager dla systemu Linux
- Konfiguracja automatycznego uruchamiania narzędzia po restarcie systemu
- Konfiguracja pliku parametrów (o nim napiszę poniżej)
- Instalacja lokalnego serwera webowego i PHP
Implementacja wyświetlania listy zajmowanych licencji
- 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
- 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.
- 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;"> <?php $log = file_get_contents('./log.txt'); $logrp = nl2br($log); $arraystr = explode(PHP_EOL,$logrp); $busy = explode(" ",$arraystr[13]); echo "Obecnie zajęte: ".$busy[12]." licencji<br /><br />"; $i = 18; while($i<=37){ //var $a = $i-17; $data = explode(" ", $arraystr[$i]); $time = str_replace('<br', '', $data[13]); //varEND echo "<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++; } ?> </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:
- Otrzymuję tekst z pliku log.txt, wcześniej utworzonego przez skrypt, który jest aktualizowany co 5s.
- Zamieniam tagi przeniesienia na tagi HTML.
- Rozdzielam tekst w tablicy na wiersze.
- Formatuję kolejność i zawartość wierszy.
Końcowy rezultat realizacji wszystkich wymagań
Jak wygląda GUI сервера:

Jak wygląda strona internetowa:

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:
- Użytkownik samodzielnie widzi zajmowaną licencję, co zmniejsza obciążenie działu wsparcia technicznego.
- 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.
- Oszczędności na licencjonowaniu Windows.
Źródło: habr.com
