RHEL 고급 #6 Subscription, Satellite, Insights — 운영 인프라

8 분 소요

#5 보안 강화까지가 한 머신 단위의 운영이었다면, 이번 글은 여러 머신을 한 번에 운영하는 시점 에 만나는 도구들입니다. RHEL 한 대를 그냥 깔아 써도 동작은 하지만, 수십,수백 대 단위로 가면 패치 관리, 콘텐츠 일관성, 취약점 모니터링이 도구 없이는 불가능해집니다. 그 공백을 채우는 Red Hat의 세 도구 — subscription-manager (구독 등록), Satellite (온프레미스 통합 플랫폼), Insights (SaaS 분석)를 한 사이클로 다루겠습니다.

RHEL 고급 시리즈에서 이번 글의 위치:

세 도구의 관계 #

규모와 도구의 매핑
1대 ~ 10대        : subscription-manager + Insights (충분)
10대 ~ 50대       : 같음 + Ansible / 자동화 스크립트
50대 ~ 수백대 +   : Satellite (온프레미스 단일 진입점)
+ 격리 환경      : Satellite + Capsule (지점/DMZ)
도구어디서 도나무엇을 하나
subscription-manager각 RHEL 머신Red Hat 구독에 머신 등록, repository 활성화
Satellite온프레미스 단일 서버 (또는 클러스터)콘텐츠 미러, 라이프사이클 관리, 호스트 통합 운영
InsightsRed Hat SaaS (cloud.redhat.com)등록된 머신을 분석해 취약점,안정성,성능 권고

subscription-manager는 모든 RHEL 머신이 가진 기본 도구. Satellite는 그 위에서 동작하는 온프레미스 통합 플랫폼이고, Insights는 별도의 SaaS 분석 서비스입니다.

subscription-manager #

RHEL 9를 설치하고 가장 먼저 만나는 명령. dnf가 Red Hat repository를 보려면 머신이 Red Hat 구독에 등록돼 있어야 합니다.

등록
$ sudo subscription-manager register --username <user> --password <pass>
The system has been registered with ID: 12345678-1234-...

등록 상태와 구독 #

확인
# 등록 상태
$ sudo subscription-manager status
+-------------------------------------------+
   System Status Details
+-------------------------------------------+
Overall Status: Current

# 활성 구독
$ sudo subscription-manager list --consumed

# 등록 해제
$ sudo subscription-manager unregister

Repository 활성화 #

기본 BaseOS / AppStream 외에 추가 repository (CodeReady Builder, Supplementary 등)를 켜야 할 때:

repo 관리
# 사용 가능한 repo 목록
$ sudo subscription-manager repos --list

# 활성화
$ sudo subscription-manager repos \
    --enable=codeready-builder-for-rhel-9-x86_64-rpms

# 비활성화
$ sudo subscription-manager repos \
    --disable=rhel-9-for-x86_64-supplementary-rpms

활성화하면 /etc/yum.repos.d/redhat.repo가 자동 갱신되고 dnf가 그 repo의 패키지를 보게 됩니다.

구독 종류 #

운영 환경에서 자주 만나는 구독 유형:

종류용도
Standard일반 운영 RHEL (8x5 또는 24x7 지원)
Premium운영 + 24x7 지원
Developer Subscription for Individuals개인 개발자 무료 (최대 16대 등록 가능)
Developer Subscription for Teams팀 개발자 무료
BYOS (Bring Your Own Subscription)AWS/Azure/GCP의 RHEL 인스턴스에 자기 구독을 사용
PAYG (Pay As You Go)클라우드 marketplace에서 시간당 과금

개인 학습/개발이라면 Red Hat Developer 무료 가입으로 RHEL 9를 합법적으로 깔 수 있습니다.

Simple Content Access (SCA) #

전통적으로 RHEL 구독은 머신 한 대당 한 entitlement가 필요했습니다 (entitlement = 구독 슬롯). 머신 수가 늘어나면 자기 entitlement를 관리하는 게 일이 됐습니다. Simple Content Access 는 그 모델을 단순화 — 조직 단위로 한 번 활성화하면 머신마다 entitlement를 추적하지 않아도 되고, 등록만 하면 콘텐츠 접근이 열립니다.

SCA 활성 시 등록 흐름
$ sudo subscription-manager register --username <u> --password <p>
# attach 명령 불필요

RHEL 9 시점부터는 SCA가 사실상 표준입니다. 대형 조직에서는 Red Hat Hybrid Cloud Console에서 활성화돼 있는지 확인.

Activation Key #

자동화 환경에서 사용자명/비밀번호를 두지 않고 등록하는 방법.

activation key 사용
$ sudo subscription-manager register \
    --org=<org-name> \
    --activationkey=<key-name>

키는 Red Hat Hybrid Cloud Console → Activation Keys에서 생성. Kickstart 나 cloud-init의 user-data에 박아두면 부팅 시점에 자동 등록됩니다.

Red Hat Satellite — 온프레미스 통합 플랫폼 #

수십 ~ 수백 대 이상을 운영하는 시점에 등장합니다. 핵심 역할:

  1. 콘텐츠 미러 — Red Hat repository를 사내에 미러링. 인터넷 격리 환경에서 RHEL 운영 가능
  2. 라이프사이클 관리 — Dev → QA → Prod 환경별로 콘텐츠 버전 분리
  3. 호스트 통합 운영 — 모든 RHEL 머신을 한 콘솔에서 관리 (패치, 프로비저닝, 구성)
  4. Capsule — 지점/DMZ의 프록시 역할

핵심 개념 #

구조
                      ┌─────────────────────────┐
                      │   Red Hat CDN           │
                      │   (cdn.redhat.com)      │
                      └────────────┬────────────┘
                                   │ sync
                      ┌────────────▼────────────┐
                      │   Satellite Server      │
                      │   (HQ)                  │
                      │  - Content Sync         │
                      │  - Lifecycle Env        │
                      │  - Content Views        │
                      │  - Host Inventory       │
                      └────┬────────────────┬───┘
                           │                │
                  ┌────────▼─────┐  ┌───────▼──────┐
                  │ Capsule (A)  │  │ Capsule (B)  │
                  │ (지점 1)     │  │ (DMZ)        │
                  └──────┬───────┘  └──────┬───────┘
                         │                 │
                    [content host]    [content host]
                    [content host]    [content host]

라이프사이클 환경 #

콘텐츠 흐름
Library (모든 동기화 콘텐츠) → Dev → QA → Prod

각 환경에 Content View (사용할 repository와 패키지 묶음)를 발행 (publish) 하고 다음 환경으로 promote 합니다. Dev에서 며칠 검증한 패치 묶음을 QA로, QA에서 또 검증한 뒤 Prod로 — 이 흐름이 표준.

콘텐츠 뷰 (Content View) #

여러 repository를 묶고 필터링한 단위. 같은 이름이라도 환경별로 다른 버전을 가질 수 있습니다.

예시
Content View: rhel9-base
  - rhel-9-for-x86_64-baseos-rpms
  - rhel-9-for-x86_64-appstream-rpms
  - rhel-9-for-x86_64-supplementary-rpms

Lifecycle:
  Dev:  Version 5  (오늘 발행)
  QA:   Version 4  (1주일 전 발행)
  Prod: Version 3  (한 달 전 발행)

문제가 발견되면 promote를 멈추거나 이전 버전으로 롤백합니다.

호스트 등록과 운영 #

콘텐츠 호스트가 Satellite에 등록되면 다음을 한 콘솔에서 관리할 수 있습니다.

영역무엇을
Errata보안/버그/기능 패치 — 환경별로 적용 가능한 errata 자동 식별
Patchdnf update를 호스트별/그룹별로 일괄 실행
Provisioning베어메탈/VM 부팅 → Kickstart → 자동 설치
ConfigurationAnsible/Puppet 통합으로 구성 관리
Subscriptions구독 통합 관리 (SCA 시 단순화)
Reports호스트별 패치 현황, 컴플라이언스

Capsule #

Satellite Server의 자식 노드. 지점이나 DMZ처럼 메인 서버에 직접 접근하지 않는 위치에서 콘텐츠 캐싱과 호스트 관리를 대신합니다. 콘텐츠는 메인에서 Capsule로 동기화되고, 그 지역의 콘텐츠 호스트는 Capsule만 본다 — 네트워크 효율과 보안 격리를 동시에.

설치 — 스케일 #

기준권장
호스트 수~ 5,000 대 / Satellite 1 대, 그 이상은 Capsule 분산
사양CPU 8+, RAM 32GB+, 디스크 200GB+ (콘텐츠 동기화에 큰 디스크)
OSRHEL 9
라이센스별도 구독 필요

설치는 satellite-installer로 한 번에. 자세한 절차는 별개 글의 분량입니다 — 여기서는 개요까지만.

Red Hat Insights — SaaS 분석 #

별도 설치 인프라 없이, 등록된 RHEL 머신의 데이터를 Red Hat 클라우드로 보내고 분석 결과를 받는 서비스입니다. RHEL 구독에 기본으로 포함됩니다.

활성화 #

insights-client 설치와 등록
$ sudo dnf install -y insights-client
$ sudo insights-client --register

# 등록 상태
$ sudo insights-client --status
$ sudo insights-client --display-name "web-prod-01"

등록되면 매일 자동으로 머신의 시스템 정보,구성,로그 일부를 분석 서버로 보냅니다 (어떤 데이터를 보내는지는 insights-client --offline --output-file=으로 미리 확인 가능).

무엇을 받나 #

console.redhat.com/insights에서 다음 카테고리의 권고를 받습니다.

카테고리무엇을
Vulnerability알려진 CVE와 영향받는 머신, errata 매핑
Advisor안정성,성능,보안 베스트프랙티스 위반
ComplianceOpenSCAP 점검 결과 통합 (CIS, PCI-DSS 등)
Patch적용 가능한 errata와 영향 패키지
Drift머신 간 구성 차이 추적
Policies사용자 정의 정책 위반 알림
Subscriptions구독 사용 현황
Inventory등록된 모든 머신의 통합 인벤토리

각 권고에는 why this matters (왜 중요한지), how to fix (구체적 조치, Ansible playbook 다운로드 가능), affected systems (영향받는 머신 목록)이 함께 옵니다. 권고 페이지에서 한 번에 Ansible playbook으로 묶어 다운받아 적용할 수 있습니다 — Remediation Plans 기능.

Insights와 Satellite의 관계 #

Satellite가 있다면 Insights의 데이터를 Satellite와 통합해서 한 화면에서 볼 수 있습니다. Satellite가 인프라를 운영하고, Insights가 인프라를 분석한다 가 한 줄 정리.

데이터 프라이버시 #

업로드되는 데이터에 민감 정보가 들어 있을 수 있어, /etc/insights-client/file-content-redaction.yaml/etc/insights-client/file-redaction.yaml에서 redaction 규칙을 정의할 수 있습니다. 정부,금융 환경에서는 등록 전에 반드시 검토.

/etc/insights-client/file-content-redaction.yaml 예
patterns:
    regex:
        - "password\\s*=\\s*\\S+"
        - "api[_-]?key\\s*[:=]\\s*\\S+"
keywords:
    - secret
    - credential

셋을 묶은 운영 흐름 #

시점도구
머신 1대 띄움subscription-manager register + insights-client --register
10대 이상 자동화activation key로 Kickstart/cloud-init 자동 등록
50대 이상 통합Satellite도입, 콘텐츠 뷰 + 라이프사이클 환경 설계
격리 환경Capsule 추가 (지점/DMZ)
정기 운영Insights 권고 → Remediation Plan → Ansible 적용
패치 정기Satellite의 errata → Dev 환경 promote → QA → Prod

흔한 함정 #

  • Developer Subscription을 운영에 사용 — 라이센스 위반. 운영은 반드시 Standard/Premium 또는 BYOS/PAYG.
  • subscription-manager attach --auto를 SCA 환경에서 — SCA 환경에서는 attach가 무의미하고 가끔 경고를 띄웁니다. SCA가 켜졌으면 register만.
  • Satellite를 단일 머신에서 한 번에 너무 많은 호스트 — 5,000 대를 넘기 전에 Capsule 분산 계획.
  • Content View를 Library 그대로 Prod에 직결 — 라이프사이클 환경의 의미가 사라짐. Library에서 콘텐츠 동기화, Content View 발행 후 Dev → QA → Prod로 promote.
  • Insights에 redaction 없이 운영 데이터/etc/insights-client/*-redaction.yaml 미설정으로 비밀번호/API 키가 업로드될 수 있습니다. 등록 전 검토 필수.
  • Insights 권고를 무조건 적용 — 권고가 자기 환경에 안 맞을 수 있습니다 (예: 의도적으로 비활성화한 서비스). 적용 전 검토는 OpenSCAP --remediate와 같은 원칙.
  • Capsule 디스크 부족 — 콘텐츠 동기화 양이 무겁습니다. RHEL 9 BaseOS + AppStream만 해도 100GB+. 디스크 모니터링 필수.

기억해 둘 명령 #

작업명령
머신 등록sudo subscription-manager register --username <u>
activation key 등록sudo subscription-manager register --org <o> --activationkey <k>
등록 상태sudo subscription-manager status
repo 목록/변경sudo subscription-manager repos --list / --enable=<id>
등록 해제sudo subscription-manager unregister && sudo subscription-manager clean
Insights 등록sudo dnf install -y insights-client && sudo insights-client --register
Insights 데이터 미리보기sudo insights-client --offline --output-file=/tmp/insights.tar.gz
Satellite host 등록curl <satellite>/register | sudo bash (공식 한 줄 등록 스크립트)

정리 #

  • subscription-manager — 모든 RHEL 머신의 기본 도구. SCA 시대에는 register만. 자동화는 activation key.
  • Satellite — 50 ~ 100 대 이상 운영 시점의 온프레미스 통합 플랫폼. Library → Content View → Dev/QA/Prod 라이프사이클로 콘텐츠 흐름 통제. Capsule로 지점/DMZ 분산.
  • Insights — 별도 인프라 없이 등록만 하면 받는 SaaS 분석. 취약점,안정성,성능,컴플라이언스 권고 + Ansible Remediation Plan. redaction 설정 반드시 검토.
  • 셋의 쓰임 — 한 대 운영(subscription-manager + Insights), 다수 운영(추가로 Satellite). 셋이 다 별개 도구지만 같은 콘솔(console.redhat.com)에서 통합.

다음 글은 시리즈의 마지막. 지금까지 모든 내용은 CLI 중심이었지만 — 가벼운 GUI가 필요한 경우도 있습니다. 브라우저로 RHEL을 관리하는 Cockpit 으로 시리즈를 닫겠습니다.

X