Red Hat Satellite๋ ๋ฌผ๋ฆฌ์ , ๊ฐ์, ํด๋ผ์ฐ๋ ํ๊ฒฝ ์ ๋ฐ์ ๊ฑธ์ณ Red Hat ์ธํ๋ผ๋ฅผ ์ฝ๊ฒ ๋ฐฐํฌ, ํ์ฅ, ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ์์คํ ๊ด๋ฆฌ ์๋ฃจ์ ์ ๋๋ค. Satellite๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ์์คํ ์ ์ฌ์ฉ์ ์ ์ํ๊ณ ์ ๋ฐ์ดํธํ์ฌ ๋ค์ํ ํ์ค์ ๋ฐ๋ผ ํจ์จ์ ์ด๊ณ ์์ ํ๊ฒ ์๋ํ ์ ์์ต๋๋ค. ์์คํ ์ํ ์ ์ง์ ๊ด๋ จ๋ ๋๋ถ๋ถ์ ์์ ์ ์๋ํํจ์ผ๋ก์จ Satellite๋ ์กฐ์ง์ด ํจ์จ์ฑ์ ๋์ด๊ณ ์ด์ ๋น์ฉ์ ์ ๊ฐํ๋ฉฐ ์ ๋ต์ ๋น์ฆ๋์ค ์๊ตฌ์ ๋ ์ ๋์ํ ์ ์๋๋ก ๋์ต๋๋ค.
Red Hat Enterprise Linux ์๋ธ์คํฌ๋ฆฝ์
์ ํฌํจ๋ Red Hat ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ๊ด๋ฆฌ ์์
์ ์ํํ ์ ์๋ ๋์์ Red Hat Satellite์๋ ๊ด๋ฒ์ํ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ฉ๋๋ค.
์ด๋ฌํ ๊ฐ๋ฅ์ฑ ์ค:
- ํจ์น ์ค์น
- ๊ตฌ๋ ๊ด๋ฆฌ;
- ์ด๊ธฐํ;
- ๊ตฌ์ฑ ๊ด๋ฆฌ.
ํ๋์ ์ฝ์์์ ์์ฒ ๊ฐ์ ์์คํ ์ ํ๋์ฒ๋ผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ด ๊ฐ์ฉ์ฑ, ์์ ์ฑ ๋ฐ ์์คํ ๊ฐ์ฌ ๊ธฐ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
์ด์ ์๋ก์ด Red Hat Satellite 6.5๊ฐ ์ถ์๋์์ต๋๋ค!
Red Hat Satellite 6.5์ ๋ฉ์ง ๊ธฐ๋ฅ ์ค ํ๋๋ ์๋ก์ด ๋ณด๊ณ ์์ง์ ๋๋ค.
Satellite Server๋ Red Hat ์ํฐํ๋ผ์ด์ฆ ์์คํ ์ ๊ดํ ๋ชจ๋ ์ ๋ณด์ ํ๋ธ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ์ด ์ต์ ์์ง์ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ Satellite ํธ์คํธ, ์ํํธ์จ์ด ์๋ธ์คํฌ๋ฆฝ์ , ํด๋น ์๋ผํ ๋ฑ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๊ณ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค. ๋ณด๊ณ ์๋ ERB(Embedded Ruby)๋ก ํ๋ก๊ทธ๋๋ฐ๋ฉ๋๋ค.
Satellite 6.5๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋ณด๊ณ ์์ ํจ๊ป ์ ๊ณต๋๋ฉฐ, ์์ง์ ์ฌ์ฉ์์๊ฒ ์ด๋ฌํ ๋ณด๊ณ ์๋ฅผ ์ฌ์ฉ์ ์ ์ํ๊ฑฐ๋ ์ง์ ์์ฑํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Satellite 6.5์ ๋ด์ฅ ๋ณด๊ณ ์๋ CSV ํ์์ผ๋ก ์์ฑ๋์ง๋ง, ์ด ๊ฒ์๋ฌผ์์๋ HTML ํ์์ผ๋ก๋ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
Satellite 6.5 ๋ด์ฅ ๋ณด๊ณ ์
Satellite 6.5์๋ XNUMX๊ฐ์ ๊ธฐ๋ณธ ๋ณด๊ณ ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค:
- ํด๋น ์ ์คํ โ ์ฝํ ์ธ ํธ์คํธ์์ ์ ๊ฑฐํด์ผ ํ๋ ์ํํธ์จ์ด ๊ฒฐํจ(์ ์คํ) ๋ชฉ๋ก(์ ํ์ ์ผ๋ก ํธ์คํธ ๋๋ ๊ฒฐํจ์ผ๋ก ํํฐ๋ง)
- ํธ์คํธ ์ํ โ Satellite ํธ์คํธ์ ์ํ์ ๋ํด ๋ณด๊ณ ํฉ๋๋ค(์ ํ์ ์ผ๋ก ํธ์คํธ๋ณ๋ก ํํฐ๋ง๋จ).
- ๋ฑ๋ก๋ ํธ์คํธ โ Satellite ํธ์คํธ์ ๊ดํ ์ ๋ณด: 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 ์ญํ ์ ๋ํ ๋ณด๊ณ ์ ์์ ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ๋ณด๊ณ ์๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ฉ๋ด ์ด๊ธฐ ๋ชจ๋ํฐ, ํด๋ฆญ ๋ณด๊ณ ์ ํ ํ๋ฆฟ ๊ทธ๋ฆฌ๊ณ ๋ฒํผ์ ๋๋ฅด์ธ์ ํ ํ๋ฆฟ ๋ง๋ค๊ธฐ. ์ฐ๋ฆฌ ๋ณด๊ณ ์๋ฅผ ๋ถ๋ฅด์ 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 ๋ณด๊ณ ์ ์์ฑ
Satellite ๋ณด๊ณ ์์ง์ ์ฌ์ฉํ๋ฉด 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 ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค.
ํด๋จธ ๋ณด๊ณ ์ ํ ํ๋ฆฟ ์์ฑ --name "" ๋ช ๋ น์ ์ฌ์ฉํ์ธ์. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
# hammer report-template generate โname "Host statuses HTML"
๋ณด๊ณ ์ ๋ด์ฉ์ด ์ฝ์์ ๋ฐ์๋ฉ๋๋ค. ์ ๋ณด๋ฅผ ํ์ผ๋ก ๋ฆฌ๋๋ ์ ํ ๋ค์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๊ณ ์ด๋ฉ์ผ๋ก ๋ณด๋ด๋๋ก cron์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. HTML ํ์์ ์ด๋ฉ์ผ ํด๋ผ์ด์ธํธ์ ์๋ฒฝํ๊ฒ ํ์๋๋ฏ๋ก ์ฝ๊ธฐ ์ฌ์ด ํ์์ผ๋ก ๊ด์ฌ ์๋ ๋น์ฌ์์๊ฒ ๋ณด๊ณ ์๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ Satellite 6.5์ ๋ณด๊ณ ์์ง์ ๊ธฐ์ ์ด Satellite์ ๋ณด์ ํ๊ณ ์๋ ์ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ๋งค์ฐ ์ ์ฐํ๋ฉฐ ๊ธฐ๋ณธ ์ ๊ณต ๋ณด๊ณ ์์ ์์ ๋ ๋ฒ์ ์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์๋ ์ฒ์๋ถํฐ ์์ ๋ง์ ๋ณด๊ณ ์๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. YouTube ๋์์์์ ์์ฑ ๋ณด๊ณ ์์ง์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
์ฐ๋ฆฌ์ ๋ฐํ์๋ Red Hat์ ์ ๋ฝ, ์ค๋ ๋ฐ ์ํ๋ฆฌ์นด ํ๋ซํผ ๋ฐ ๊ด๋ฆฌ ์์คํ
๊ฐ๋ฐ ๋ถ์ ๊ด๋ฆฌ์์ธ Aram Kananov์
๋๋ค. Red Hat์์ Aram์ ์
๋ฌด์๋ ํฌ๊ด์ ์ธ ์์ฅ, ์ฐ์
๋ฐ ๊ฒฝ์์ฌ ๋ถ์์ ๋ฌผ๋ก ํ๋ซํผ ์ฌ์
๋ถ์ ์ ํ ํฌ์ง์
๋ ๋ฐ ๋ง์ผํ
์ด ํฌํจ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ถ์๋ถํฐ ์๋ช
์ข
๋ฃ๊น์ง ์ ์ฒด ์ ํ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
์ถ์ฒ : habr.com