Red Hat Satellite is a management solution that simplifies the deployment, scaling, and management of Red Hat infrastructure across physical, virtual, and cloud environments. Satellite enables users to configure and update systems to ensure their efficient and secure operation in accordance with various standards. By automating most tasks related to system maintenance, Satellite assists organizations in increasing efficiency, reducing operational costs, and responding more readily to strategic business demands.

While you can perform basic administrative tasks with the Red Hat services included in the Red Hat Enterprise Linux subscription, Red Hat Satellite adds extensive lifecycle management capabilities.
These capabilities include:
- Patch installation;
- Subscription management;
- Initialization;
- Configuration management.
From a single console, you can manage thousands of systems as easily as one, which increases availability, reliability, and provides auditing capabilities for the system.
And now we have the new Red Hat Satellite 6.5!
One of the cool features introduced in Red Hat Satellite 6.5 is the new reporting engine.
The Satellite Server often acts as the hub where all information about corporate Red Hat systems converges, and this latest engine allows you to create and export reports containing details about client Satellite hosts, software subscriptions, and applicable errata, etc. Reports are programmed in the built-in Ruby language (ERB).
Satellite 6.5 comes with ready-made reports, and the engine gives users the ability to customize these reports or create their own. The built-in Satellite 6.5 reports are generated in CSV format, however, in this post, we will show how to create reports in HTML format as well.
Built-in reports of Satellite 6.5
Satellite 6.5 includes four built-in reports:
- Applicable errata – a list of software defects (errata) to be addressed on content hosts (optionally filtered by hosts or defects);
- Host statuses – a report on the statuses of Satellite hosts (optionally filtered by hosts);
- Registered hosts – information about Satellite hosts: IP address, OS version, software subscriptions (optionally filtered by hosts);
- Abonnementen – informatie over software-abonnementen: totaal aantal abonnementen, aantal beschikbare, SKU-codes (optioneel gefilterd op abonnementsparameters).
Om een rapport te genereren, opent u het menu Monitor, selecteert u Rapport sjablonen en klikt u op de knop Genereren rechts van het gewenste rapport. Laat het filterveld leeg om alle gegevens in het rapport op te nemen, of voer iets in om de resultaten te beperken. Bijvoorbeeld, als in het rapport Geregistreerde Hosts alleen hosts RHEL 8 moeten worden weergegeven, geef dan de filter os = RedHat en os_major = 8, zoals weergegeven in de onderstaande screenshot:

Na het genereren van het rapport kan het worden gedownload en geopend in een spreadsheetprogramma zoals LibreOffice Calc, dat gegevens uit CSV importeert en deze in kolommen verspreidt, bijvoorbeeld zoals het rapport Applicable errata op de onderstaande screenshot:

Let op dat in de eigenschappen van de ingebouwde rapporten de optie Standaard (Standaard) is ingeschakeld, waardoor ze automatisch worden toegevoegd aan alle nieuwe organisaties en locaties (locations) die u in Satellite aanmaakt.
Customisatie van ingebouwde rapporten
Laten we de customisatie bekijken aan de hand van het voorbeeld van het ingebouwde rapport Abonnementen. Standaard weerspiegelt dit rapport het totale aantal abonnementen (1), evenals het aantal beschikbare, dat wil zeggen beschikbare abonnementen (2). We voegen er nog een kolom aan toe met het aantal gebruikte abonnementen, dat wordt gedefinieerd als (1) – (2). Bijvoorbeeld, als we in totaal 50 RHEL-abonnementen hebben en 10 daarvan vrij zijn, dan worden er 40 abonnementen gebruikt.
Aangezien het bewerken van ingebouwde rapporten is geblokkeerd en het niet aanbevolen is om ze te wijzigen, moet u het ingebouwde rapport klonen, het een nieuwe naam geven en vervolgens deze kloon aanpassen.
Dus als we het rapport willen aanpassen Abonnementen, moet het eerst worden gekloond. Daarom openen we het menu Monitor, selecteren we Rapport sjablonen en in het dropdownmenu rechts van de sjabloon Abonnementen we kiezen Klonen. Vervolgens voeren we de naam van het kloonrapport in (laten we het noemen Aangepaste abonnementen) en tussen de regels Beschikbaar en Aantal voegen we de regel toe ‘Used’: pool.quantity — pool.available, – let op de komma aan het einde van de regel. Zo ziet het eruit op de screenshot:

Klik daarna op de knop Verzenden, wat ons terugbrengt naar de pagina Rapport sjablonen. Daar klikken we op de knop Genereren rechts van het zojuist gemaakte rapport Aangepaste abonnementen. Laat het filter voor abonnementen leeg en klik op Verzenden. Daarna wordt het rapport gemaakt en gedownload, waarin onze toegevoegde kolom aanwezig is Gebruikt.

De documentatie voor de ingebouwde Ruby-taal bevindt zich op het tabblad Help in het bewerkingsvenster van het rapport. Dit bevat een overzicht van de syntaxis, evenals de beschikbare variabelen en methoden.
Een eigen rapport maken
Laten we nu de creatie van eigen rapporten bekijken aan de hand van een rapport voor Ansible-rollen die zijn toegewezen aan hosts in Satellite. We openen het menu Monitor, klikken we Rapport sjablonen en klikken dan op de knop Create Template. We noemen ons rapport Ansible Roles Report en voegen de volgende ERB-code toe:
Deze code genereert een rapport voor hosts, waarbij de attribuut 'all_ansible_roles' wordt weergegeven.
Vervolgens gaan we naar het tabblad Inputs en klikken op de knop + Add Input. We zeggen dat de naam gelijk is aan hosts, en het beschrijvingstype is Filter by hosts (optional). Daarna klikken we Verzenden en klikken dan op de knop Genereren aan de rechterkant van het net gemaakte rapport. Vervolgens kan een hostfilter worden ingesteld of je kunt direct op klikken Verzenden, om een rapport voor alle hosts te genereren. Het gegenereerde rapport zal in LibreOffice Calc er ongeveer zo uitzien:

HTML-rapporten genereren
De rapportmotor van Satellite stelt je in staat om rapporten niet alleen in CSV-indeling te genereren. Als voorbeeld maken we een eigen rapport op basis van het ingebouwde rapport Host Statuses, maar dan in de vorm van een HTML-tabel met kleurcodering van cellen op basis van status. Hiervoor klonen we Hoststatus, en vervolgens vervangen we de ERB-code door het volgende:
<!DOCTYPE html>
<html>
<head>
<title>Hoststatus</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"> Waarschuwing </td>
<% else -%>
<td class="red"> Fout (<%= 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"> Waarschuwing </td>
<% else -%>
<td class="red"> Fout (<%= value %>) </td>
<% end -%>
<% end -%>
</tr>
<% end -%>
</table>
</body>
</html>
Dit rapport genereert HTML die in de browser er ongeveer zo uit zal zien:
![]()
Rapporten starten via de opdrachtregel
Voor het starten van een rapport vanaf de opdrachtregel wordt het commando gebruikt hammer, en de cron-tool maakt het mogelijk om dit proces te automatiseren.
Gebruik het commando hammer report-template generate —name «», bijvoorbeeld:
# hammer report-template generate —name "Host statuses HTML"
De inhoud van het rapport zal op de console worden weergegeven. Informatie kan naar een bestand worden omgeleid, waarna cron kan worden ingesteld om een shell-script uit te voeren voor het genereren van het rapport en het verzenden per e-mail. Het HTML-formaat wordt prachtig weergegeven in e-mailcliënten, waardoor regelmatige levering van rapporten aan belanghebbenden in een gemakkelijk te begrijpen formaat kan worden georganiseerd.
De rapportagemotor in Satellite 6.5 is een krachtig hulpmiddel voor het exporteren van belangrijke gegevens die bedrijven in Satellite hebben. Het is zeer flexibel en biedt de mogelijkheid om zowel ingebouwde rapporten als aangepaste versies te gebruiken. Bovendien kunnen gebruikers hun eigen rapporten vanaf nul creëren. Meer informatie over de Satellite Reporting Engine is beschikbaar in onze video op YouTube.
Onze spreker is Aram Kanano, manager van de afdeling platformen en systeembeheer bij Red Hat in Europa, het Midden-Oosten en Afrika. Aram's werk bij Red Hat omvat een grondige analyse van de markt, industrie en concurrenten, evenals de positionering en marketing van producten voor de zakelijke afdeling platformen, die het beheer van de volledige levenscyclus van producten omvat, van implementatie tot het einde van het gebruik.
Bron: habr.com
