Red Hat Satellite – это решение для управления системой, упрощающее развертывание, масштабирование и управление инфраструктурой Red Hat в физических, виртуальных и облачных средах. Satellite позволяет пользователям настраивать и обновлять системы для обеспечения их эффективной безопасной работы в соответствии с различными стандартами. Автоматизируя большинство задач, связанных с поддержанием работоспособности системы, Satellite помогает организациям повысить эффективность, сократить эксплуатационные расходы, и с большей готовностью отвечать на стратегические запросы бизнеса.
Хотя вы можете выполнять основные административные задачи с помощью служб Red Hat, включенных в подписку Red Hat Enterprise Linux, Red Hat Satellite добавляет широкие возможности управления всем жизненным циклом.
Среди таких возможностей:
- Установка патчей;
- Управление подпиской;
- Инициализация;
- Управление конфигурацией.
С одной консоли вы можете управлять тысячами систем так же легко, как одной, что увеличивает доступность, надежность и предоставляет возможности для аудита системы.
А теперь у нас есть новый Red Hat Satellite 6.5!
Одна из классных вещей, появившихся в Red Hat Satellite 6.5 – это новый движок отчетов.
Satellite Server часто выступает тем центром, куда стекается вся информация о корпоративных системах Red Hat, и этот самый новый движок позволяет создавать и экспортировать отчеты, содержащие сведения о клиентских хостах Satellite, подписках на ПО, а также подлежащих устранению программных дефектах (applicable errata) и т.п. Программируются отчеты на встроенном языке Ruby (ERB).
Satellite 6.5 идет в комплекте с уже готовыми отчетами, а движок дает пользователям возможность кастомизировать эти отчеты или создавать свои собственные. Встроенные отчеты Satellite 6.5 генерируются в формате CSV, однако в этом посте мы покажем, как можно создавать отчеты и в формате HTML.
Встроенные отчеты Satellite 6.5
Satellite 6.5 включает в себя четыре встроенных отчета:
- Applicable errata – перечень программных дефектов (errata), подлежащих устранению на контент-хостах (опционально фильтруется по хостам или дефектам);
- Host statuses – отчет о состоянии хостов Satellite (опционально фильтруется по хостам);
- Registered hosts – сведения о хостах Satellite: IP-адрес, версия ОС, подписки на ПО (опционально фильтруется по хостам);
- Subscriptions – сведения о подписках на ПО: общее число подписок, количество свободных, SKU-коды (опционально фильтруется по параметрам подписок).
Чтобы сформировать отчет, откройте меню Monitor, выберите Report Templates и нажмите кнопку Generate справа от нужного отчета. Оставьте поле фильтрации пустым, чтобы включить в отчет все данные, или введите туда что-нибудь, чтобы ограничить результаты. Например, если в отчете Registered Hosts должны отображаться только хосты RHEL 8, то укажите фильтр os = RedHat and os_major = 8, как показано на скриншоте ниже:
После формирования отчета его можно скачать и открыть в электронной таблице типа LibreOffice Calc, которая импортирует данные из CSV и разнесет их по столбцам, например, как отчет Applicable errata на скрине ниже:
Обратите внимание, что в свойствах встроенных отчетов включена опция По умолчанию (Default), поэтому они автоматически добавляются во все новые организации и участки (locations), которые вы создаете в Satellite.
Кастомизация встроенных отчетов
Разберем кастомизацию на примере встроенного отчета Subscriptions. По умолчанию этот отчет отражает общее число подписок (1), а также количество доступных, то есть свободных подписок (2). Мы добавим в него еще одну колонку с количеством используемых подписок, которое определяется как (1) – (2). Например, если всего у нас 50 подписок RHEL и 10 из них свободны, то тогда используется 40 подписок.
Поскольку редактирование встроенных отчетов заблокировано и изменять их не рекомендуется, придется клонировать встроенный отчет, дать ему новое имя и затем уже модифицировать эту клон-копию.
Итак, если мы хотим модифицировать отчет Subscriptions, то его сначала надо клонировать. Поэтому открываем меню Monitor, выбираем Report Templates и в раскрывающемся меню справа от шаблона Subscriptions выбираем Clone. Затем вводим имя клон-отчета (назовем его Custom Subscriptions) и между строками Available и Quantity добавляем в него строку ‘Used’: pool.quantity — pool.available, – обратите внимание на запятую в конце строки. Вот как это выглядит на скриншоте:
Затем нажимаем кнопку Submit, что возвращает нас страницу Report Templates. Там щелкаем кнопку Generate справа от только что созданного отчета Custom Subscriptions. Поле Subscriptions filter оставляем пустым и щелкаем Submit. После чего создается и загружается отчет, в котором есть добавленный нами столбец Used.
Справка по встроенному языку Ruby находится на вкладке Help в окне редактирования отчета. В ней содержится обзор синтаксиса, а также доступных переменных и методов.
Создание собственного отчета
Теперь рассмотрим создание собственных отчетов на примере отчета по Ansible-ролям, назначенным хостам в Satellite. Открываем меню Monitor, щелкаем Report Templates и затем нажимаем кнопку Create Template. Назовем наш отчет Ansible Roles Report и вставим в него следующий ERB-код:
<%#
name: Ansible Roles Report
snippet: false
template_inputs:
- name: hosts
required: false
input_type: user
description: Limit the report only on hosts found by this search query. Keep empty
for report on all available hosts.
advanced: false
model: ReportTemplate
-%>
<% load_hosts(search: input('hosts'), includes: :ansible_roles).each_record do |host| -%>
<% report_row({
'Name': host.name,
'All Ansible Roles': host.all_ansible_roles
}) -%>
<% end -%>
<%= report_render -%>
Этот код генерирует отчет по хостам, отображая для них атрибут «all_ansible_roles».
Затем переходим на вкладку Inputs и щелкаем кнопку + Add Input. Говорим, что name равен hosts, а description type – Filter by hosts (optional). Затем щелкаем Submit и затем нажимаем кнопку Generate справа от только что созданного отчета. Дальше можно задать фильтр хостов или сразу нажать Submit, чтобы сформировать отчет по всем хостам. Сгенерированный отчет будет выглядеть в LibreOffice Calc примерно так:
Создание HTML-отчетов
Движок отчетов Satellite позволяет генерировать отчеты не только в формате CSV. В качестве примера мы создадим собственный отчет на основе встроенного отчета Host Statuses, но только в виде HTML-таблицы с цветовым кодированием ячеек на основе статуса. Для этого мы клонируем Host Statuses, а затем заменяем его ERB-код на следующий:
<!DOCTYPE html>
<html>
<head>
<title>Host Statuses</title>
<style>
th {
background-color: black;
color: white;
}
td.green {
background-color:#92d400;
color:black;
}
td.yellow {
background-color:#f0ab00;
color:black;
}
td.red {
background-color:#CC0000;
color:black;
}
table,th,td {
border-collapse:collapse;
border: 1px solid black;
}
</style>
</head>
<body>
<table>
<tr>
<th> Hostname </th>
<th> Status </th>
<% load_hosts(search: input('hosts'), includes: :host_statuses).each_record do |host| -%>
<% all_host_statuses_hash(host).each do |key, value| -%>
<th> <%= key %> </th>
<% end -%>
<% break -%>
<% end -%>
</tr>
<%- load_hosts(search: input('hosts'), includes: :host_statuses).each_record do |host| -%>
<tr>
<td> <%= host.name %> </td>
<% if host.global_status == 0 -%>
<td class="green"> OK </td>
<% elsif host.global_status == 1 -%>
<td class="yellow"> Warning </td>
<% else -%>
<td class="red"> Error (<%= host.global_status %>) </td>
<% end -%>
<% all_host_statuses_hash(host).each do |key, value| -%>
<% if value == 0 -%>
<td class="green"> OK </td>
<% elsif value == 1 -%>
<td class="yellow"> Warning </td>
<% else -%>
<td class="red"> Error (<%= value %>) </td>
<% end -%>
<% end -%>
</tr>
<% end -%>
</table>
</body>
</html>
Этот отчет генерирует HTML, который будет выглядеть в браузере примерно так:
Запуск отчетов из командной строки
Для запуска отчета из командной строки используется команда hammer, а утилита cron позволяет автоматизировать этот процесс.
Используйте команду hammer report-template generate —name «», например:
# hammer report-template generate —name "Host statuses HTML"
Содержание отчета будет отражено на консоли. Информацию можно перенаправить в файл, после чего настроить cron так, чтобы он запускал shell-скрипт для формирования отчета и отправлял его по электронной почте. HTML-формат прекрасно отображается в почтовых клиентах, что позволяет организовать регулярную доставку отчетов заинтересованным лицам в удобной для восприятия форме.
Таким образом, движок отчетов в Satellite 6.5 – это мощный инструмент для экспорта важных данных, имеющихся у компаний в Satellite. Он очень гибок и позволяет пользоваться как встроенными отчетами, так и их доработанными версиями. Кроме того, пользователи могут создавать свои собственные отчеты с нуля. Подробности о Satellite Reporting Engine доступны в нашем видео на YouTube.
Наш докладчик – Арам Кананов, менеджер департамента разработки платформ и систем управления Red Hat в Европе, на Ближнем Востоке и в Африке. Работа Арама в Red Hat включает в себя всесторонний анализ рынка, индустрии и конкурентов, а также позиционирование и маркетинг продуктов для бизнес-подразделения платформ, что включает в себя управление всем жизненным циклом всей продукта от внедрения до окончания использования.
Источник: habr.com