Satellite 6.5 中的报告引擎:它是什么以及为什么

红帽卫星是一种系统管理解决方案,可以轻松跨物理、虚拟和云环境部署、扩展和管理红帽基础设施。 卫星允许用户定制和更新系统,以确保它们按照各种标准高效、安全地运行。 通过自动化大多数与维护系统健康相关的任务,Satellite 可以帮助组织提高效率、降低运营成本并更好地响应战略业务需求。

Satellite 6.5 中的报告引擎:它是什么以及为什么

虽然您可以使用红帽企业 Linux 订阅中包含的红帽服务执行基本管理任务,但红帽卫星还添加了广泛的生命周期管理功能。

这些可能性包括:

  • 安装补丁;
  • 订阅管理;
  • 初始化;
  • 配置管理。

通过一个控制台,您可以像管理一个系统一样轻松地管理数千个系统,从而提高可用性、可靠性和系统审核功能。

现在我们有了新的红帽卫星 6.5!

红帽卫星 6.5 带来的最酷的功能之一是新的报告引擎。

Satellite Server 通常是有关红帽企业系统的所有信息的中心,这个最新的引擎允许您创建和导出包含有关客户端 Satellite 主机、软件订阅、适用勘误表等信息的报告。 报告使用嵌入式 Ruby (ERB) 进行编程。

Satellite 6.5 附带现成的报告,该引擎使用户能够自定义这些报告或创建自己的报告。 Satellite 6.5 的内置报告以 CSV 格式生成,但在这篇文章中我们将展示如何生成 HTML 格式的报告。

卫星 6.5 内置报告

Satellite 6.5 包括四个内置报告:

  • 适用勘误表 – 内容主机上必须消除的软件缺陷列表(勘误表)(可选地按主机或缺陷进行过滤);
  • 主机状态 – 报告卫星主机的状态(可选地按主机过滤);
  • 注册主机 – 有关卫星主机的信息:IP 地址、操作系统版本、软件订阅(可选地按主机过滤);
  • 会员充值 – 有关软件订阅的信息:订阅总数、免费数量、SKU 代码(可选地按订阅参数过滤)。

要生成报告,请打开菜单 显示器选择 报告模板 并单击所需报告右侧的“生成”按钮。 将过滤器字段留空以包含报告中的所有数据,或在其中输入某些内容以限制结果。 例如,如果您希望“已注册主机”报告仅显示 RHEL 8 主机,则指定一个过滤器 os = RedHat 且 os_major = 8,如下图所示:

Satellite 6.5 中的报告引擎:它是什么以及为什么

生成报告后,您可以下载它并在 LibreOffice Calc 等电子表格中打开它,该电子表格将从 CSV 导入数据并将其组织成列,例如作为报告 适用勘误表 在下面的屏幕上:

Satellite 6.5 中的报告引擎:它是什么以及为什么

请注意,在内置报告的属性中,该选项已启用 默认情况下, (默认),因此它们会自动添加到您在 Satellite 中创建的所有新组织和位置。

自定义内置报告

让我们看看使用内置报告示例的自定义 会员充值。 默认情况下,此报告显示订阅总数 (1) 以及可用(即免费)订阅数 (2)。 我们将向其中添加另一列,其中包含所使用的订阅数量,定义为 (1) – (2)。 例如,如果我们总共有 50 个 RHEL 订阅,其中 10 个是免费的,则使用 40 个订阅。

由于编辑内置报告已被锁定,并且不建议更改它们,因此您必须克隆内置报告,为其指定新名称,然后修改此克隆副本。

所以,如果我们想修改报告 会员充值,那么它必须首先被克隆。 那么我们打开菜单 显示器,选择 报告模板 并在模板右侧的下拉菜单中 会员充值 选择 克隆。 然后输入克隆报告的名称(我们称之为 自定义订阅)和两行之间 可提供 и 数量 添加该行 '已使用': pool.quantity - pool.available, – 注意行尾的逗号。 这是屏幕截图中的样子:

Satellite 6.5 中的报告引擎:它是什么以及为什么

然后我们按下按钮 提交这让我们回到了页面 报告模板。 我们点击按钮 产生 在新创建的报告的右侧 自定义订阅。 将订阅过滤器字段留空并单击 提交。 之后创建并加载一个报告,其中包含我们添加的列 .

Satellite 6.5 中的报告引擎:它是什么以及为什么

内置 Ruby 语言的帮助位于选项卡上 政策和帮助 在报告编辑窗口中。 它提供了语法以及可用变量和方法的概述。

创建您自己的报告

现在,让我们看看使用分配给 Satellite 中主机的 Ansible 角色的报告示例来创建我们自己的报告。 打开菜单 显示器, 点击 报告模板 然后按下按钮 建立范本。 让我们打电话给我们的报告 Ansible 角色报告 并将以下 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”属性。

然后转到选项卡 输入 然后单击按钮 + 添加输入。 我们说名字等于 为了和描述类型 – 按主机过滤(可选)。 然后点击 提交 然后按下按钮 产生 在新创建的报告的右侧。 接下来,您可以设置主机过滤器或立即单击 提交生成有关所有主机的报告。 生成的报告在 LibreOffice Calc 中将如下所示:

Satellite 6.5 中的报告引擎:它是什么以及为什么

生成 HTML 报告

卫星报告引擎不仅允许您生成 CSV 格式的报告。 例如,我们将根据内置主机报告创建自定义报告 状态,但仅作为 HTML 表格,其中单元格根据状态进行颜色编码。 为此,我们克隆 主机状态,然后将其 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 在浏览器中看起来如下所示:

Satellite 6.5 中的报告引擎:它是什么以及为什么

从命令行运行报告

要从命令行运行报告,请使用以下命令 ,并且 cron 实用程序允许您自动执行此过程。

使用hammerreport-templategenerate--name“”命令,例如:

# hammer report-template generate —name "Host statuses HTML"

报告的内容将反映在控制台上。 可以将信息重定向到文件,然后配置 cron 运行 shell 脚本来生成报告并通过电子邮件发送。 HTML 格式在电子邮件客户端中完美显示,使您能够以易于阅读的形式定期向感兴趣的各方发送报告。

因此,Satellite 6.5 中的报告引擎是导出公司在 Satellite 中拥有的重要数据的强大工具。 它非常灵活,允许您使用内置报告及其修改版本。 此外,用户可以从头开始创建自己的报告。 在我们的 YouTube 视频中了解有关卫星报告引擎的更多信息。

莫斯科时间 9 月 11 日 00:8,不要错过有关红帽企业 Linux XNUMX 新版本的网络研讨会

我们的演讲者是红帽欧洲、中东和非洲平台和管理系统开发部门经理 Aram Kananov。 Aram 在红帽的工作包括全面的市场、行业和竞争对手分析,以及平台业务部门的产品定位和营销,其中包括管理从推出到停产的整个产品生命周期。

来源: habr.com

添加评论