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 在紅帽的工作包括全面的市場、行業和競爭對手分析,以及平台業務部門的產品定位和行銷,其中包括管理從推出到停產的整個產品生命週期。

來源: www.habr.com

添加評論