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