Добрий день, шановні читачі.
Буду гранично стислим і розіб'ю статтю на пункти.
Проблеми організаційного характеру
Кількість користувачів програмного продукту AutoCAD перевищує кількість локальних мережних ліцензій.
- Кількість фахівців, що працюють у ПЗ AutoCAD, не нормується жодним внутрішнім документом.
- Виходячи з пункту №1 відмовити в установці програми майже неможливо.
- Неправильна організація робіт веде до браку ліцензій, що призводить до заявок і дзвінків абонентів у службу інформаційних технологій з цією проблемою.
Проблеми технічні
- Відсутність коштів на перегляд списку займаних ліцензій.
Варіанти розв'язання
- Готове рішення підтримуване виробником ПЗ, що дозволяє користувачам самостійно переглядати список ліцензій, що займаються.
- Розробка будь-якого відповідного рішення для виведення звіту роботи диспетчера ліцензування у вигляді веб-сторінки.
Прийняте рішення та реалізація
Технічне завдання
- Можливість заощадити на ліцензії ОС
- Виведення списку користувачів, які займають ліцензії
Реалізація роботи диспетчера ліцензування
Ухвалено рішення самостійно реалізувати необхідну функцію. Порядок виконання:
- Встановлення та налаштування CentOS 7 на сервер віртуалізації
- Встановлення та запуск Autodesk Network License Manager для Linux
- Налаштування авто запуску утиліти при рестарті ОС
- Налаштування файлу параметрів (про нього я напишу нижче)
- Встановлення локального web-сервера та PHP
Реалізація виведення списку займаних ліцензій
- Створення .sh файлу з вмістом, наведеним нижче:
#! /bin/bash /opt/flexnetserver/lmutil lmstat -a -c [путь к файлу .lic]> "/var/www/html/log.txt"
Він розміщується в зручній директорії, і налаштовується як файл, що виконується.
За допомогою цієї команди вивантажується статус диспетчера ліцензування у файл log.txt
- Використав команду
watch -n 5 [путь к созданному в п№1 файлу .sh]
Це дозволяє кожен 5 секунд викликати раніше створений bash скрипт.
- У директорії 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:
- Отримую текст файлу log.txt, сформований раніше скриптом, і кожні 5с, що оновлюється.
- Замінюю теги переносу на html теги.
- Розбиваю текст у масив рядками.
- Форматую порядок та вміст рядків.
Підсумок реалізації всіх вимог
Як виглядає GUI сервера:
Як виглядає веб-сторінка:
Файл параметрів .opt
У ньому вказав
TIMEOUTALL 14400
- час простою програми обмежено 4 годинами
MAX_BORROW_HOURS [CODE] 48
- Максимальний термін запозичення обмежений 2 днями.
Доп. інформація
Т.к. в організації використовуються коректні іменні доменні уч. записи співробітників, за логіном дуже легко визначити фахівця, який зайняв ліцензію.
Загальний результат зусиль:
- Користувач самостійно бачить ліцензію і відповідно знижено навантаження служби технічної підтримки.
- Усередині колективу фахівців, які працюють у ПЗ без участі тих. Підтримкою вирішується питання «Кому дістанеться ліцензія?», і залежно від пріоритету робіт звільняється або займається ліцензія.
- Економія на ліцензуванні Windows.
Джерело: habr.com