컨텐트 라이프싸이클 관리

콘텐츠 라이프사이클 관리는 프로덕션 클라이언트를 업데이트하기 전에 패키지를 사용자 정의하고 테스트할 수 있게 해줍니다. 이는 제한된 유지 관리 기간 동안 업데이트를 적용해야 할 경우 특히 유용합니다.

컨텐트 라이프싸이클 관리를 통해 소프트웨어 채널을 소스로 선택하고 환경에 맞게 조정하며 철저히 테스트를 수행한 후에 프로덕션 클라이언트에 설치할 수 있습니다.

벤더 채널을 직접 수정할 수는 없지만, 이를 복제한 후 패키지와 사용자 정의 패치를 추가하거나 제거하여 수정할 수 있습니다. 이 복제된 채널을 테스트 클라이언트에 할당하여 예상대로 작동하는지 확인할 수 있습니다.

기본적으로 복제된 벤더 채널은 원래 벤더 채널과 일치하며 종속성을 자동으로 선택합니다. 복제된 채널에 대한 자동 선택을 비활성화하려면 `/etc/rhn/rhn.conf`에 다음 옵션을 추가하십시오:

java.cloned_channel_auto_selection = false

그런 다음 모든 테스트가 통과되면 복제된 채널을 운영 서버로 승격할 수 있습니다.

이는 소프트웨어 채널이 라이프사이클 동안 이동할 수 있는 일련의 환경을 통해 달성됩니다. 대부분의 환경 라이프사이클에는 최소한 테스트 및 프로덕션 환경이 포함되지만, 필요한 만큼 많은 환경을 가질 수 있습니다.

이 섹션에서는 기본 콘텐츠 라이프사이클 절차와 사용 가능한 필터를 다룹니다. 더 구체적인 예는 컨텐트 라이프싸이클 관리 예제를 참조하십시오.

1. 컨텐트 라이프싸이클 프로젝트 생성

콘텐츠 라이프사이클을 설정하려면 프로젝트로 시작해야 합니다. 프로젝트는 소프트웨어 채널 소스, 패키지를 찾기 위해 사용되는 필터 및 빌드 환경을 정의합니다.

절차 콘텐츠 라이프사이클 프로젝트 생성
  1. SUSE Multi-Linux Manager Web UI에서 콘텐츠 라이프사이클  프로젝트로 이동하고 프로젝트 생성을 클릭합니다.

  2. Label 필드에 프로젝트의 레이블을 입력합니다. Label 필드에는 소문자, 숫자, 마침표, 하이픈 및 밑줄만 사용할 수 있습니다.

  3. Name 필드에 프로젝트를 설명하는 이름을 입력합니다.

  4. 생성 버튼을 클릭하여 프로젝트를 생성하고 프로젝트 페이지로 돌아갑니다.

  5. 소스 연결/해제를 클릭합니다.

  6. Sources 대화 상자에서 소스 유형을 선택하고 프로젝트의 기본 채널을 선택합니다. 선택한 기본 채널에 사용 가능한 하위 채널과 채널이 필수인지 권장인지에 대한 정보 등이 표시됩니다.

  7. 필요한 하위 채널을 확인하고 저장을 클릭하여 프로젝트 페이지로 돌아갑니다. 이제 선택한 소프트웨어 채널이 표시되어야 합니다.

  8. 필터 연결/해제를 클릭합니다.

  9. Filters 대화 상자에서 프로젝트에 첨부할 필터를 선택합니다. 새 필터를 생성하려면 새 필터 생성을 클릭합니다.

  10. 환경 추가를 클릭합니다.

  11. Environment Lifecycle 대화 상자에서 첫 번째 환경에 이름, 레이블 및 설명을 지정하고 저장을 클릭합니다. Label 필드에는 소문자, 숫자, 마침표, 하이픈 및 밑줄만 사용할 수 있습니다.

  12. 라이프사이클에 대한 모든 환경이 완료될 때까지 환경을 계속 생성합니다. 생성할 때 Insert before 필드에서 환경을 선택하여 라이프사이클에서 환경의 순서를 선택할 수 있습니다.

2. 필터 유형

SUSE Multi-Linux Manager은 프로젝트 빌드에 사용되는 콘텐츠를 제어하기 위해 다양한 유형의 필터를 생성할 수 있게 해줍니다. 필터를 사용하면 빌드에 포함되거나 제외될 패키지를 선택할 수 있습니다. 예를 들어, 모든 커널 패키지를 제외하거나 특정 패키지의 특정 릴리스만 포함할 수 있습니다.

지원되는 필터:

  • 패키지 필터링

    • 이름 기준

    • 이름, 에포크, 버전, 릴리스 및 아키텍처 기준

    • 제공 이름 기준

  • 패치 필터링

    • 권고 이름 기준

    • 권고 유형 기준

    • 시놉시스 기준

    • 키워드 기준

    • 날짜 기준

    • 영향을 받는 패키지 기준

  • 모듈

    • 스트림 기준

컨텐트 필터링 중에는 패키지 종속성이 해결되지 않습니다.

필터와 함께 사용할 수 있는 여러 매처가 있습니다. 어떤 매처가 사용 가능한지는 선택한 필터 유형에 따라 다릅니다.

사용할 수 있는 선택기:

  • 포함

  • 일치(정규식 형식이어야 함)

  • 같음

  • 크거나 같음

  • 작거나 같음

  • 작음

  • 이상

2.1. 필터 rule 매개변수

각 필터에는 Allow 또는 Deny`으로 설정할 수 있는 `rule 매개변수가 있습니다. 필터는 다음과 같이 처리됩니다:

  • 패키지 또는 패치가 Deny 필터를 충족하면 결과에서 제외됩니다.

  • 패키지 또는 패치가 Allow 필터를 충족하면 결과에 포함됩니다(비록 Deny 필터에 의해 제외되었더라도). Allow 필터는 패키지 필터에만 작동하며 Allow 필터는 패치 필터에만 작동합니다. 이것은 패키지 필터를 사용하여 패치 필터를 통해 필터링된 패키지를 다시 추가할 수 없음을 의미합니다. 반대로 패키지 필터를 통해 필터링된 패치에 대해서도 마찬가지입니다.

이 동작은 일반 Deny 필터를 사용하여 많은 수의 패키지 또는 패치를 제외하고 특정 Allow 필터가 적용된 특정 패키지 또는 패치를 "선별"하려는 경우에 유용합니다.

컨텐트 필터는 조직 전체에 적용되며 프로젝트 간에 공유할 수 있습니다.

프로젝트에 이미 빌드된 소스가 포함되어 있는 경우, 환경을 추가하면 기존 콘텐츠로 자동으로 채워집니다. 이전 환경이 있는 경우, 콘텐츠는 해당 환경에서 가져옵니다. 이전 환경이 없으면 프로젝트 소스가 다시 빌드될 때까지 비워 둡니다.

3. 필터 템플릿

일부 일반적인 시나리오에 대한 필터 생성을 돕기 위해, SUSE Multi-Linux Manager은 필터 템플릿을 제공합니다. 적용되면, 이러한 템플릿은 특정 사용 사례에 맞게 미리 필터 세트를 생성하는 데 도움을 줍니다.

이 섹션에서는 사용할 수 있는 템플릿과 그 사용법에 대해 설명합니다.

3.1. SUSE 제품 기반 라이브 패치

라이브 패치가 포함된 프로젝트에서는 정기적인 미래 커널 패키지를 제외해야 클라이언트에게 라이브 패치 패키지만 업데이트로 제공됩니다. 반면에, 이미 설치된 정기 커널 패키지는 시스템 무결성을 유지하기 위해 여전히 포함되어야 합니다.

이 템플릿을 적용하면 이 동작을 수행하기 위해 필요한 필터 세 개가 생성됩니다.

  • 기본 커널 버전과 동일한 kernel-default 패키지를 포함하는 패치 허용

  • reboot_suggested 키워드를 포함하는 패치 거부

  • installhint(reboot-needed) 이름을 제공하는 패키지를 포함하는 패치 거부

라이브 패치 프로젝트 설정 방법에 대한 자세한 내용은 administration:content-lifecycle-examples.adoc#exclude-higher-kernel-version을 참조하십시오.

절차 템플릿 적용
  1. SUSE Multi-Linux Manager Web UI에서 콘텐츠 라이프사이클  필터로 이동한 후 필터 생성을 클릭합니다.

  2. 대화 상자에서 템플릿 사용을 클릭합니다. 입력 값이 그에 따라 변경됩니다.

  3. Prefix 필드에 이름 접두사를 입력합니다. 이 값은 템플릿에 의해 생성된 모든 개별 필터의 이름 앞에 추가됩니다. 템플릿이 프로젝트의 맥락에서 적용되고 있다면, 이 필드는 프로젝트 레이블로 미리 채워집니다.

  4. Template 필드에서 `Live patching based on a SUSE product`을(를) 선택합니다.

  5. Product 필드에서 라이브 패치를 설정할 제품을 선택합니다.

  6. Kernel 필드에서 선택한 제품의 사용 가능한 버전 목록에서 커널 버전을 선택합니다. 나중에 일반 커널 패치를 거부하는 필터는 이 버전을 기반으로 합니다.

  7. 저장을 클릭하여 필터를 생성합니다.

  8. 콘텐츠 라이프사이클  프로젝트로 이동하여 프로젝트를 선택합니다.

  9. 필터 연결/해제를 클릭합니다.

  10. 지정된 접두사가 있는 필터 세 개를 선택하고 저장을 클릭합니다.

3.2. 시스템 기반 라이브 패치

등록된 특정 시스템에 설치된 커널 버전을 기반으로 라이브 패치 프로젝트를 설정하려면 "시스템 기반 라이브 패치" 템플릿을 사용할 수 있습니다.

이 템플릿을 적용하면 이 동작을 수행하기 위해 필요한 필터 세 개가 생성됩니다.

  • 기본 커널 버전과 동일한 kernel-default 패키지를 포함하는 패치 허용

  • reboot_suggested 키워드를 포함하는 패치 거부

  • installhint(reboot-needed) 이름을 제공하는 패키지를 포함하는 패치 거부

라이브 패치 프로젝트 설정 방법에 대한 자세한 내용은 administration:content-lifecycle-examples.adoc#exclude-higher-kernel-version을 참조하십시오.

절차 템플릿 적용
  1. SUSE Multi-Linux Manager Web UI에서 콘텐츠 라이프사이클  필터로 이동한 후 필터 생성을 클릭합니다.

  2. 대화 상자에서 템플릿 사용을 클릭합니다. 입력 값이 그에 따라 변경됩니다.

  3. Prefix 필드에 이름 접두사를 입력합니다. 이 값은 템플릿에 의해 생성된 모든 필터의 이름 앞에 추가됩니다. 템플릿이 프로젝트의 맥락에서 적용되고 있다면, 이 필드는 프로젝트 레이블로 미리 채워집니다.

  4. Template 필드에서 `Live patching based on a specific system`을(를) 선택합니다.

  5. System 필드에서 목록에서 시스템을 선택하거나 시스템 이름을 입력하여 옵션 범위를 좁힙니다.

  6. Kernel 필드에서 선택한 시스템에 설치된 버전 목록에서 커널 버전을 선택합니다. 나중에 일반 커널 패치를 거부하는 필터는 이 버전을 기반으로 합니다.

  7. 저장을 클릭하여 필터를 생성합니다.

  8. 콘텐츠 라이프사이클  프로젝트로 이동하여 프로젝트를 선택합니다.

  9. 필터 연결/해제를 클릭합니다.

  10. 지정된 접두사가 있는 필터 세 개를 선택하고 저장을 클릭합니다.

3.3. 기본값이 있는 AppStream 모듈

프로젝트에 포함된 모듈형 리포지토리에서 모든 모듈을 사용할 수 있도록 하려면 이 필터 템플릿을 사용하여 자동으로 추가할 수 있습니다.

적용되면 이 템플릿은 모듈 및 기본 스트림별로 AppStream 필터를 생성합니다.

이 과정이 프로젝트 페이지에서 수행되면, 필터가 프로젝트에 자동으로 추가됩니다. 그렇지 않으면, 생성된 필터는 콘텐츠 라이프사이클  필터에 나열되어 필요에 따라 어떤 프로젝트에도 추가될 수 있습니다.

각 개별 필터를 편집하여 다른 모듈 스트림을 선택하거나 완전히 제거하여 대상 리포지토리에서 해당 모듈을 제외할 수 있습니다.

모든 모듈 스트림이 서로 호환되는 것은 아니므로, 개별 스트림을 변경하면 모듈 종속성의 성공적인 해결을 방해할 수 있습니다. 이런 일이 발생하면, 프로젝트 세부정보 페이지의 필터 창에 문제를 설명하는 오류가 표시되며, 모든 모듈 선택이 호환될 때까지 빌드 버튼이 비활성화됩니다.

Red Hat Enterprise Linux 9부터, 모듈에는 정의된 기본 스트림이 없습니다. 따라서 Red Hat Enterprise Linux 9 소스와 함께 이 템플릿을 사용해도 효과가 없습니다.

콘텐츠 라이프사이클 관리를 통해 AppStream 리포지토리를 설정하는 방법에 대한 자세한 내용은 administration:content-lifecycle-examples.adoc#appstream-filters을 참조하십시오.

절차 템플릿 적용
  1. SUSE Multi-Linux Manager Web UI에서 콘텐츠 라이프사이클  프로젝트로 이동하여 프로젝트를 선택합니다.

  2. Filters 섹션에서 필터 연결/해제를 클릭한 후 새 필터 생성을 클릭합니다.

  3. 대화 상자에서 템플릿 사용을 클릭합니다. 입력 값이 그에 따라 변경됩니다.

  4. Prefix 필드에 이름 접두어를 입력합니다. 이 값은 템플릿에 의해 생성된 모든 필터의 이름 앞에 추가됩니다. 템플릿이 프로젝트의 맥락에서 적용되고 있다면, 이 필드는 프로젝트 레이블로 미리 채워집니다.

  5. Template 필드에서 `AppStream modules with defaults`를 선택합니다.

  6. Channel 필드에서 모듈형 채널을 선택합니다. 이 드롭다운에서는 모듈형 채널만 표시됩니다.

  7. 저장을 클릭하여 필터를 생성합니다.

  8. Filters 섹션으로 스크롤하여 새로 연결된 AppStream 필터들을 확인합니다.

  9. 개별 필터를 편집/제거하여 필요한 대로 프로젝트를 조정할 수 있습니다.

4. 컨텐트 라이프싸이클 프로젝트 빌드

프로젝트를 생성하고 환경을 정의하며 소스와 필터를 첨부하면 처음으로 프로젝트를 빌드할 수 있습니다.

빌드는 연결된 소스에 필터를 적용하고 이를 프로젝트의 첫 번째 환경에 복제합니다.

여러 콘텐츠 프로젝트의 소스로 동일한 공급업체 채널을 사용할 수 있습니다. 이 경우, SUSE Multi-Linux Manager는 각 클론된 채널에 대해 새로운 패치 클론을 생성하지 않습니다. 대신, 모든 클론된 채널 간에 단일 패치 클론이 공유됩니다. 공급업체가 패치를 수정하면 문제가 발생할 수 있습니다. 예를 들어, 패치가 철회되거나 패치 내의 패키지가 변경되는 경우입니다. 콘텐츠 프로젝트 중 하나를 빌드할 때, 클론된 패치를 공유하는 모든 채널은 기본적으로 원본과 동기화됩니다. 채널이 콘텐츠 프로젝트의 다른 환경에 있거나 조직의 다른 콘텐츠 프로젝트 채널에 있더라도 마찬가지입니다. 조직 설정에서 자동 패치 동기화를 비활성화하면 이 동작을 변경할 수 있습니다. 나중에 모든 채널에서 공유되는 패치에 대해 패치를 수동으로 동기화하려면, 소프트웨어  관리  채널로 이동하여 동기화할 채널을 클릭하고 Sync 서브탭으로 이동합니다. 수동 패치 동기화는 패치를 공유하는 모든 조직 채널에 영향을 미칩니다.

절차 콘텐츠 라이프사이클 프로젝트 빌드
  1. SUSE Multi-Linux Manager Web UI에서 콘텐츠 라이프사이클  프로젝트로 이동하여 빌드할 프로젝트를 선택합니다.

    사용 가능한 환경이 있는지 확인한 후 프로젝트를 빌드하십시오.

  2. 첨부된 소스 및 필터를 검토하고 빌드를 클릭합니다.

  3. 이 빌드의 변경 또는 업데이트 사항을 설명하는 버전 메시지를 제공합니다.

  4. Environment Lifecycle 섹션에서 빌드 진행 상황을 모니터링할 수 있습니다.

빌드가 완료되면 환경 버전이 하나씩 증가하고 소프트웨어 채널과 같이 빌드된 소스를 클라이언트에 할당할 수 있습니다.

5. 환경 승격

프로젝트가 빌드되면 빌드된 소스를 순차적으로 환경으로 승격할 수 있습니다.

절차 환경 승격
  1. SUSE Multi-Linux Manager Web UI에서 콘텐츠 라이프사이클  프로젝트로 이동하여 작업할 프로젝트를 선택합니다.

  2. Environment Lifecycle 섹션에서 승격할 환경을 찾아 승격을 클릭합니다.

  3. Environment Lifecycle 섹션에서 빌드 진행 상황을 모니터링할 수 있습니다.

6. 환경에 클라이언트 할당

콘텐츠 라이프사이클 프로젝트를 빌드하고 승격할 때, SUSE Multi-Linux Manager은(는) 소프트웨어 채널의 트리를 생성합니다. 환경에 클라이언트를 추가하려면, 클라이언트의 System Details 페이지에서 소프트웨어  소프트웨어 채널을 사용하여 기본 및 하위 소프트웨어 채널을 할당합니다.

새로 추가된 복제 채널은 클라이언트에 자동으로 할당되지 않습니다. 소스를 추가하거나 승격하는 경우, 채널 할당을 수동으로 확인하고 업데이트해야 합니다.

자동 할당은 향후 버전에서 SUSE Multi-Linux Manager에 추가될 예정입니다.