[Из песочницы] Диспетчер лицензирования LMTOOLS. Вывод списка лицензий для пользователей продуктов Autodesk

Добрый день, уважаемые читатели.

Буду предельно краток и разобью статью на пункты.

Проблемы организационного характера


Количество пользователей программного продукта AutoCAD превышает количество локальных сетевых лицензий.
  1. Количество специалистов работающих в ПО AutoCAD не нормируется никаким внутренним документом.
  2. Исходя из пункта №1, отказать в установке программы почти невозможно.
  3. Неправильная организация работ ведёт к нехватке лицензий, что приводит к заявкам и звонкам абонентов в службу информационных технологий с данной проблемой.

Проблемы технические


  1. Отсутствие средств для просмотра списка занимаемых лицензий.

Варианты решения


  1. Готовое решение поддерживаемое производителем ПО, позволяющее пользователям самостоятельно просматривать список занимаемых лицензий.
  2. Разработка любого подходящего решения для вывода отчёта работы диспетчера лицензирования в виде вэб-страницы.

Принятое решение и реализация


Техническое задание


  1. Возможность сэкономить на лицензии ОС
  2. Вывод списка пользователей занимающих лицензии

Реализация работы диспетчера лицензирования


Принято решение самостоятельно реализовать необходимую функцию. Порядок выполнения:
  1. Установка и настройка CentOS 7 на сервер виртуализации
  2. Установка и запуск Autodesk Network License Manager для Linux
  3. Настройка авто запуска утилиты при рестарте ОС
  4. Настройка файла параметров (о нём я напишу ниже)
  5. Установка локального web-сервера и PHP

Реализация вывода списка занимаемых лицензий


  1. Создание .sh файла с содержимым приведённым ниже:
    	#! /bin/bash
    	/opt/flexnetserver/lmutil lmstat -a -c [путь к файлу .lic]> "/var/www/html/log.txt"
    	

    Он размещается в удобной директории, и настраивается как исполняемый файл.

    С помощью данной команды выгружается статус диспетчера лицензирования в файл log.txt

  2. Использовал команду
    watch -n 5 [путь к созданному в п№1 файлу .sh]

    Это позволяет каждый 5 секунд вызывать ранее созданный bash скрипт.
  3. В директории log.txt из п№1, размещается файл index.php со следующим содержимым
    
    
    
    
    License server AutoCAD
    
    
    
    

    Список лицензий сервера лицензирования autoCAD


    "; $i = 18; while($i<=37){ //var $a = $i-17; $data = explode(" ", $arraystr[$i]); $time = str_replace('".$a." "; echo "".$data[4]." "; echo "".$data[12]." "; echo "".$data[11]." "; echo "".$time.""; echo "
    "; $i++; } ?>

    Прошу не осуждать за PHP код, более профессиональные специалисты сделают качественнее, а я сделал в меру своих знаний.

    Суть работы index.php:

    1. Получаю текст файла log.txt, сформированный ранее скриптом, и обновляемый каждые 5с.
    2. Заменяю тэги переноса на html тэги.
    3. Разбиваю текст в массив по строкам.
    4. Форматирую порядок и содержимое строк.

Итог реализации всех требований


Как выглядит GUI сервера:

image

Как выглядит веб-страница:

image

Файл параметров .opt


В нём указал

TIMEOUTALL 14400  — время простоя программы ограничено 4 часами
MAX_BORROW_HOURS [CODE] 48  — максимальный срок заимствования ограничен 2 днями.

Доп. информация


Т.к. в организации используются корректные именные доменные уч. записи сотрудников, по логину очень легко определить специалиста занявшего лицензию.

Общий результат усилий:


  1. Пользователь самостоятельно видит занимаемую лицензию и соответственно снижена нагрузка службы технической поддержки.
  2. Внутри коллектива специалистов работающих в ПО без участия тех. поддержки решается вопрос «Кому достанется лицензия?», и в зависимости от приоритета работ освобождается или занимается лицензия.
  3. Экономия на лицензировании Windows.

© Habrahabr.ru