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

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

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


Количество пользователей программного продукта 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 со следующим содержимым

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="/jq.js"></script>
    <title>License server AutoCAD</title>
    <style>
    </style>
    </head>
    <body>
    <h1>Список лицензий сервера лицензирования 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 "На данный момент занято: ".$busy[12]." лицензий<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>
    	

    Прошу не осуждать за 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.

Комментарии (2)


  1. trir
    16.09.2019 11:51

    AutoCAD 2011 показатель, с появлением комплектов там всё усложнилось — человек занимает пару комплект/продукт(ы)


    1. DruchininIvanS Автор
      16.09.2019 13:34

      Всё верно. Но это форматируется, притом вполне сносно. У меня имеется сервер с подпиской, там и Arch и Electro, много продуктов, тем не менее опытным путём я смог вывести итоговый результат максимально приемлемый. даже если для пользователей данный вывод инф-ии сложноват — для себя точно пойдёт. Это быстрее чем обращаться к утилите в командном режиме.