main

Модуль деплоя в FusionInventory

По состоянию на сегодня - пилится ударными темпами, но пока ещё очень сырое, как и модуль с snmp. Судя по форумам, в каком-то виде работает с января 2011го.

А именно:

Дубль раз

Ставим версию 0.83+1.0. Создаём пакет, определяем задание, ставим на подопытного агента, запускаем задание, ждём. День ждём, два ждём, на клиенте - конь не валялся, как говорится. Лезем в логи - видим ошибку скачки пакета.

Курим ихнее ipc, выясняем следующее: оно пытается скачать пакет с неправильным url'ом, наподобие такого: http://server:80:80/glpi/?query. Сервер, естественно, отвечает 500й ошибкой а-ля "ну и запросы у вас, уважаемый".

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

Дубль два

Обновляемся до 0.83+2.0b

Агент на месте не перенастраиваем, просто пинаем выполнение, чтобы не ждать. Авотхуй! Опять ошибка скачивания. Курим лог, видим, что оно ломится на локалхост. WTF? грепаем по исходникам агента в поисках этого самого локалхоста (дефолт, поди) -- нету! Грепаем по исходникам модулей -- опять нету! WTF?! Откуда ж оно берётся?!

Лезем в настройки, видим строчку "URL для модуля deploy", пустую. Ага, блжад! Прописываем имя сервера, опять пинаем агент -- авотхуй, опять локалхост. Вдумчиво курим исходники модуля, находим интересную функцию getUrlForModule(). Вторично думаем "ага, блжад!", всматриваемся в код и охуеваем:

$query = "SELECT url_base FROM `glpi_configs` LIMIT 1";
$result = $DB->query($query);
$data = $DB->fetch_assoc($result);
return
   $data['url_base'].
   '/plugins/fusinv'.
   strtolower($modulename).
   '/b/'.
   strtolower($modulename);

Для Ъ: оно кладёт болт на найденную нами настройку и выводит URL из $url_base, т.е. имени хоста и пути, по которому висит glpi. Эта опция задаётся при установке, через морду её не поменять.

Лезем в базу, меняем злосчастную настройку, опять пинаем агента -- авотхуй, опять ошибка скачивания. Причём, если вбить этот url руками - файл отдаётся. Идём пить валерьянку.

ИЧСХ, в самом модуле висит небольшой такой баннер, с Леониде и фирменным "This is BETA!!!11". Да, верю, соответствует.

Однако

Впрочем, описанное выше относится только самому fusioninventory. GPLI пилится уже давно и довольно приятна в использовании. Серъёзных багов -- не замечено.