Red Hat Satellite ã¯ãç©çãä»®æ³ãã¯ã©ãŠãç°å¢å šäœã§ Red Hat ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãããã€ãæ¡åŒµã管çã容æã«ããã·ã¹ãã 管çãœãªã¥ãŒã·ã§ã³ã§ãã ãµãã©ã€ãã䜿çšãããšããŠãŒã¶ãŒã¯ã·ã¹ãã ãã«ã¹ã¿ãã€ãºããã³æŽæ°ããŠãããŸããŸãªæšæºã«åãããŠå¹ççãã€å®å šã«åäœããããã«ã§ããŸãã Satellite ã¯ãã·ã¹ãã ã®å¥å šæ§ã®ç¶æã«é¢é£ããã¿ã¹ã¯ã®ã»ãšãã©ãèªååããããšã§ãçµç¹ãå¹çãåäžãããéçšã³ã¹ããåæžããæŠç¥çãªããžãã¹ ããŒãºã«é©åã«å¯Ÿå¿ã§ããããã«æ¯æŽããŸãã
Red Hat Enterprise Linux ãµãã¹ã¯ãªãã·ã§ã³ã«å«ãŸãã Red Hat ãµãŒãã¹ã䜿çšããŠåºæ¬çãªç®¡çã¿ã¹ã¯ãå®è¡ã§ããŸãããRed Hat Satellite ã«ã¯åºç¯ãªã©ã€ããµã€ã¯ã«ç®¡çæ©èœãè¿œå ãããŠããŸãã
ãããã®å¯èœæ§ã®äžã«ã¯ã次ã®ãããªãã®ããããŸãã
- ãããã®ã€ã³ã¹ããŒã«;
- ãµãã¹ã¯ãªãã·ã§ã³ç®¡ç;
- åæå;
- æ§æ管çã
XNUMX ã€ã®ã³ã³ãœãŒã«ããæ°åã®ã·ã¹ãã ã XNUMX ã€ãšåããããç°¡åã«ç®¡çã§ãããããå¯çšæ§ãä¿¡é Œæ§ãã·ã¹ãã ç£æ»æ©èœãåäžããŸãã
ãããŠä»ãæ°ãã Red Hat Satellite 6.5 ãç»å ŽããŠããŸãã
Red Hat Satellite 6.5 ã«æèŒãããŠããåªããç¹ã® XNUMX ã€ã¯ãæ°ããã¬ããŒããšã³ãžã³ã§ãã
Satellite Server ã¯ãRed Hat ãšã³ã¿ãŒãã©ã€ãº ã·ã¹ãã ã«é¢ãããã¹ãŠã®æ å ±ã®ãããšãªãããšãå€ãããã®ææ°ã®ãšã³ãžã³ã䜿çšãããšãã¯ã©ã€ã¢ã³ã Satellite ãã¹ãããœãããŠã§ã¢ ãµãã¹ã¯ãªãã·ã§ã³ã該åœãããšã©ãŒã¿ãªã©ã«é¢ããæ å ±ãå«ãã¬ããŒããäœæããã³ãšã¯ã¹ããŒãã§ããŸãã ã¬ããŒã㯠Embedded Ruby (ERB) ã§ããã°ã©ã ãããŠããŸãã
Satellite 6.5 ã«ã¯æ¢è£œã®ã¬ããŒããä»å±ããŠããããã®ãšã³ãžã³ã䜿çšãããšããŠãŒã¶ãŒã¯ãããã®ã¬ããŒããã«ã¹ã¿ãã€ãºããããç¬èªã®ã¬ããŒããäœæãããã§ããŸãã Satellite 6.5 ã®çµã¿èŸŒã¿ã¬ããŒã㯠CSV 圢åŒã§çæãããŸããããã®æçš¿ã§ã¯ HTML 圢åŒã§ãã¬ããŒããçæããæ¹æ³ã瀺ããŸãã
Satellite 6.5 çµã¿èŸŒã¿ã¬ããŒã
Satellite 6.5 ã«ã¯ã次㮠XNUMX ã€ã®çµã¿èŸŒã¿ã¬ããŒããå«ãŸããŠããŸãã
- 該åœããæ£èª€è¡š â ã³ã³ãã³ããã¹ãäžã§åé€ããå¿ èŠããããœãããŠã§ã¢æ¬ é¥ïŒãšã©ãã¿ïŒã®ãªã¹ãïŒãªãã·ã§ã³ã§ãã¹ããŸãã¯æ¬ é¥ã«ãã£ãŠãã£ã«ã¿ãªã³ã°ïŒã
- ãã¹ãã®ã¹ããŒã¿ã¹ â ãµãã©ã€ããã¹ãã®ã¹ããŒã¿ã¹ã«é¢ããã¬ããŒã (ãªãã·ã§ã³ã§ãã¹ãããšã«ãã£ã«ã¿ãªã³ã°)ã
- ç»é²æžã¿ãã¹ã â ãµãã©ã€ã ãã¹ãã«é¢ããæ å ±: IP ã¢ãã¬ã¹ãOS ããŒãžã§ã³ããœãããŠã§ã¢ ãµãã¹ã¯ãªãã·ã§ã³ (ãªãã·ã§ã³ã§ãã¹ãã«ãã£ãŠãã£ã«ã¿ãªã³ã°)ã
- ãã©ã³å¥çŽç¢ºèª â ãœãããŠã§ã¢ã®ãµãã¹ã¯ãªãã·ã§ã³ã«é¢ããæ å ±: ãµãã¹ã¯ãªãã·ã§ã³ã®ç·æ°ãç¡æã®ãµãã¹ã¯ãªãã·ã§ã³ã®æ°ãSKU ã³ãŒã (ãªãã·ã§ã³ã§ãµãã¹ã¯ãªãã·ã§ã³ ãã©ã¡ãŒã¿ã«ãã£ãŠãã£ã«ã¿ãªã³ã°)ã
ã¬ããŒããçæããã«ã¯ãã¡ãã¥ãŒãéããŸã ã¢ãã¿ãŒéžæ ã¬ããŒããã³ãã¬ãŒã ãã¯ãªãã¯ããç®çã®ã¬ããŒãã®å³åŽã«ãããçæããã¿ã³ãã¯ãªãã¯ããŸãã ã¬ããŒãã«ãã¹ãŠã®ããŒã¿ãå«ããã«ã¯ãã£ã«ã¿ãŒ ãã£ãŒã«ãã空çœã®ãŸãŸã«ããããããã«äœããå ¥åããŠçµæãå¶éããŸãã ããšãã°ãç»é²æžã¿ãã¹ã ã¬ããŒãã« RHEL 8 ãã¹ãã®ã¿ã衚瀺ããå Žåã¯ããã£ã«ã¿ãŒãæå®ããŸãã os = RedHat ããã³ os_major = 8以äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºãããã«ã
ã¬ããŒããçæãããããããŠã³ããŒãã㊠LibreOffice Calc ãªã©ã®ã¹ãã¬ããã·ãŒãã§éãããšãã§ããŸããããã«ãããCSV ããããŒã¿ãã€ã³ããŒããããããšãã°ã¬ããŒããšããŠåã«ç·šæãããŸãã 該åœããæ£èª€è¡š 以äžã®ç»é¢ã§ïŒ
çµã¿èŸŒã¿ã¬ããŒãã®ããããã£ã§ãªãã·ã§ã³ãæå¹ã«ãªã£ãŠããããšã«æ³šæããŠãã ããã ÐПÑЌПлÑÐ°ÐœÐžÑ (ããã©ã«ã)ãSatellite ã§äœæãããã¹ãŠã®æ°ããçµç¹ãšå Žæã«èªåçã«è¿œå ãããŸãã
çµã¿èŸŒã¿ã¬ããŒãã®ã«ã¹ã¿ãã€ãº
çµã¿èŸŒã¿ã¬ããŒãã®äŸã䜿çšããŠã«ã¹ã¿ãã€ãºãèŠãŠã¿ãŸããã ãã©ã³å¥çŽç¢ºèªã ããã©ã«ãã§ã¯ããã®ã¬ããŒãã«ã¯ãµãã¹ã¯ãªãã·ã§ã³ã®ç·æ° (1) ãšãå©çšå¯èœãªãã€ãŸãç¡æã®ãµãã¹ã¯ãªãã·ã§ã³ã®æ° (2) ã衚瀺ãããŸãã 䜿çšãããŠãããµãã¹ã¯ãªãã·ã§ã³ã®æ°ã瀺ãå¥ã®åãè¿œå ããŸãããã㯠(1) ïœ (2) ãšããŠå®çŸ©ãããŸãã ããšãã°ãåèš 50 ã® RHEL ãµãã¹ã¯ãªãã·ã§ã³ãããããã®ãã¡ 10 ãç¡æã®å Žåã40 ã®ãµãã¹ã¯ãªãã·ã§ã³ã䜿çšãããŸãã
çµã¿èŸŒã¿ã¬ããŒãã®ç·šéã¯ããã¯ãããŠãããå€æŽããããšã¯ãå§ãã§ããªããããçµã¿èŸŒã¿ã¬ããŒããè€è£œããæ°ããååãä»ããŠããã®è€è£œã³ããŒãå€æŽããå¿ èŠããããŸãã
ãããã£ãŠãã¬ããŒããå€æŽãããå Žåã¯ã ãã©ã³å¥çŽç¢ºèªå Žåã¯ããŸãã¯ããŒã³ãäœæããå¿ èŠããããŸãã ããã§ã¯ã¡ãã¥ãŒãéããŠã¿ãŸããã ã¢ãã¿ãŒéžã¶ ã¬ããŒããã³ãã¬ãŒã ãã³ãã¬ãŒãã®å³åŽã«ããããããããŠã³ ã¡ãã¥ãŒã§ ãã©ã³å¥çŽç¢ºèª éžæ ã¯ããŒã³ã 次ã«ãã¯ããŒã³ ã¬ããŒãã®ååãå ¥åããŸã (ååãä»ããŸã) ã«ã¹ã¿ã ãµãã¹ã¯ãªãã·ã§ã³)ãšè¡é å©çšã§ããŸã О æ°é ããã«è¡ãè¿œå ããŸã ã䜿çšæžã¿ã: pool.quantity - pool.availableã â è¡æ«ã®ã«ã³ãã«æ³šæããŠãã ããã ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯æ¬¡ã®ããã«ãªããŸãã
次ã«ããã¿ã³ãæŒããŸã éä¿¡ããŒãžã«æ»ããŸã ã¬ããŒããã³ãã¬ãŒãã ããã§ãã¿ã³ãã¯ãªãã¯ããŸã çæãã æ°ããäœæãããã¬ããŒãã®å³åŽ ã«ã¹ã¿ã ãµãã¹ã¯ãªãã·ã§ã³ã [ãµãã¹ã¯ãªãã·ã§ã³ ãã£ã«ã¿ãŒ] ãã£ãŒã«ãã空ã®ãŸãŸã«ããŠã ãã¯ãªãã¯ããŸãã éä¿¡ã ãã®åŸãè¿œå ããåãå«ãã¬ããŒããäœæãããŠããŒããããŸãã äžå€.
çµã¿èŸŒã¿ã® Ruby èšèªã®ãã«ãã¯ã¿ãã«ãããŸã ã«ã¹ã¿ããŒãµãŒãã¹ ã¬ããŒãç·šéãŠã£ã³ããŠã§ã æ§æã®æŠèŠãšã䜿çšå¯èœãªå€æ°ãšã¡ãœããã瀺ããŸãã
ç¬èªã®ã¬ããŒããäœæãã
次ã«ãSatellite ã®ãã¹ãã«å²ãåœãŠããã Ansible ããŒã«ã«é¢ããã¬ããŒãã®äŸã䜿çšããŠãç¬èªã®ã¬ããŒãã®äœæãèŠãŠã¿ãŸãããã ã¡ãã¥ãŒãéã ã¢ãã¿ãŒã ã¯ãªã㯠ã¬ããŒããã³ãã¬ãŒã ãããŠãã¿ã³ãæŒããŠãã ãã Create Templateã ã¬ããŒããåŒã³åºããŸããã 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 ã§ã¯æ¬¡ã®ããã«ãªããŸãã
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 ãçæããŸãã
ã³ãã³ãã©ã€ã³ããã¬ããŒããå®è¡ãã
ã³ãã³ãã©ã€ã³ããã¬ããŒããå®è¡ããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã ãã³ããŒcron ãŠãŒãã£ãªãã£ã䜿çšãããšããã®ããã»ã¹ãèªååã§ããŸãã
ããšãã°ãhammer report-templategenerate --name "" ã³ãã³ãã䜿çšããŸãã
# hammer report-template generate âname "Host statuses HTML"
ã¬ããŒãã®å 容ãã³ã³ãœãŒã«ã«åæ ãããŸãã æ å ±ããã¡ã€ã«ã«ãªãã€ã¬ã¯ãããã·ã§ã« ã¹ã¯ãªãããå®è¡ããŠã¬ããŒããçæããé»åã¡ãŒã«ã§éä¿¡ããããã« cron ãèšå®ã§ããŸãã HTML 圢åŒã¯é»åã¡ãŒã« ã¯ã©ã€ã¢ã³ãã§å®å šã«è¡šç€ºããããããèªã¿ããã圢åŒã§é¢ä¿è ã«ã¬ããŒããå®æçã«é ä¿¡ããããšãã§ããŸãã
ãããã£ãŠãSatellite 6.5 ã®ã¬ããŒã ãšã³ãžã³ã¯ãäŒæ¥ã Satellite ã«ä¿æããŠããéèŠãªããŒã¿ããšã¯ã¹ããŒãããããã®åŒ·åãªããŒã«ã§ãã éåžžã«æè»ã§ãçµã¿èŸŒã¿ã¬ããŒããšãã®ä¿®æ£ããŒãžã§ã³ã®äž¡æ¹ã䜿çšã§ããŸãã ããã«ããŠãŒã¶ãŒã¯ç¬èªã®ã¬ããŒããæåããäœæã§ããŸãã Satellite Reporting Engine ã®è©³çŽ°ã«ã€ããŠã¯ãYouTube ãããªãã芧ãã ããã
ç§ãã¡ã®è¬æŒè
ã¯ããšãŒããããäžæ±ãã¢ããªã«ã® Red Hat ã§ãã©ãããã©ãŒã ããã³ç®¡çã·ã¹ãã éçºéšéã®ãããŒãžã£ãŒãåããã¢ã©ã ã«ãããã§ãã Red Hat ã§ã® Aram ã®ä»äºã«ã¯ãå
æ¬çãªåžå Žãæ¥çã競åä»ç€Ÿã®åæã®ã»ãããã©ãããã©ãŒã ããžãã¹ ãŠãããã®è£œåã®ããžã·ã§ãã³ã°ãšããŒã±ãã£ã³ã°ãå«ãŸããŸããããã«ã¯ãå°å
¥ãã補å寿åœãŸã§ã®è£œåã©ã€ããµã€ã¯ã«å
šäœã®ç®¡çãå«ãŸããŸãã
åºæïŒ habr.com