이미지 빌드 및 관리

1. 이미지 빌드 개요

SUSE Manager를 사용하면 시스템 관리자가 컨테이너와 OS 이미지를 빌드하고 결과를 이미지 저장소에 푸시할 수 있습니다. 워크플로는 다음과 같습니다.

절차: 이미지 빌드 및 푸시
  1. 이미지 저장소 정의

  2. 이미지 프로파일을 정의하고 이를 소스(git 리포지토리 또는 디렉토리)와 연결합니다.

  3. 이미지 빌드

  4. 이미지 저장소로 이미지 푸시

SUSE Manager는 Dockerfile과 Kiwi 이미지 시스템의 두 가지 고유한 빌드 유형을 지원합니다.

Kiwi 빌드 유형은 시스템, 가상 및 기타 이미지를 빌드하기 위한 용도로 사용됩니다. Kiwi 빌드 유형에 대한 이미지 저장소는 서버의 /srv/www/os-images에 파일 시스템 디렉토리로 미리 정의되어 있습니다. SUSE Manager는 //<SERVER-FQDN>/os-images/에서 HTTPS를 통해 이미지 저장소를 제공합니다. 이미지 저장소 위치는 고유하며 사용자 정의할 수 없습니다.

이미지는 /srv/www/os-image/ORGANIZATION-ID에 저장됩니다.

2. 컨테이너 이미지

image building

2.1. 요구사항

컨테이너 기능은 SUSE Linux Enterprise Server 12 이상으로 구동되는 Salt 클라이언트에서 사용할 수 있습니다. 시작하기 전, 환경의 다음 요구 사항 충족 여부를 확인합니다.

  • Dockerfile 및 구성 스크립트가 포함된 게시된 git 리포지토리입니다. 리포지토리는 공개 또는 비공개일 수 있으며, GitHub, GitLab 또는 BitBucket에서 호스팅되어야 합니다.

  • Docker 레지스트리와 같이 올바르게 구성된 이미지 저장소입니다.

    컨테이너에 대한 자세한 내용은 https://documentation.suse.com/container/all/html/Container-guide/에서 확인할 수 있습니다.

2.2. 빌드 호스트 생성

SUSE Manager를 사용하여 이미지를 빌드하려면 빌드 호스트를 생성 및 구성해야 합니다. 컨테이너 빌드 호스트는 SUSE Linux Enterprise 12 이상을 실행하는 Salt 클라이언트입니다. 이 섹션에서는 빌드 호스트의 초기 구성에 대한 설명을 제공합니다.

빌드 호스트의 운영 체제는 대상 이미지의 운영 체제와 일치해야 합니다.

예를 들어, SUSE Linux Enterprise Server 15(SP2 이상) OS 버전으로 구동되는 빌드 호스트에서는 SUSE Linux Enterprise Server 15 기반 이미지를 빌드합니다. SUSE Linux Enterprise Server 12 SP4 또는 SUSE Linux Enterprise Server 12 SP4 OS 버전으로 구동되는 빌드 호스트에서는 SUSE Linux Enterprise Server 12 기반 이미지를 빌드합니다.

아키텍처 간 빌드는 지원되지 않습니다.

SUSE Manager Web UI에서 다음 단계를 수행하여 빌드 호스트를 구성합니다.

절차: 호스트 빌드
  1. 시스템  개요 페이지에서 빌드 호스트로 지정할 Salt 클라이언트를 선택합니다.

  2. 선택한 클라이언트의 시스템 세부 사항 페이지에서 컨테이너 모듈을 할당합니다. 소프트웨어  소프트웨어 채널로 이동하여 컨테이너 모듈을 활성화합니다(예: SLE-Module-Containers15-PoolSLE-Module-Containers15-Updates). 구독 변경을 클릭하여 확인합니다.

  3. 시스템 세부 사항  속성 페이지의 추가 기능 시스템 유형 목록에서 컨테이너 빌드 호스트를 활성화합니다. 속성 업데이트를 클릭하여 확인합니다.

  4. Highstate를 적용하여 필요한 모든 패키지를 설치합니다. 시스템 세부 사항 페이지에서 상태  Highstate를 선택하고 Highstate 적용을 클릭합니다. 또는 SUSE Manager 서버 명령 줄에서 Highstate를 적용합니다.

    salt '$your_client' state.highstate

2.3. 컨테이너에 대한 활성화 키 생성

SUSE Manager를 사용하여 빌드한 컨테이너는 이미지를 빌드할 때 활성화 키와 연결된 채널을 리포지토리로 사용합니다. 이 섹션에서는 이러한 목적을 위해 임시 활성화 키를 생성하는 과정을 설명합니다.

컨테이너를 빌드하기 위해서는 SUSE 관리자 기본값 이외의 채널과 연결된 활성화 키가 필요합니다.

systems create activation key
절차: 활성 키 생성
  1. 시스템  활성화 키를 선택합니다.

  2. 키 생성을 클릭합니다.

  3. 설명 이름을 입력합니다. 드롭다운 메뉴를 사용하여 이 키와 연결할 기본 채널을 선택합니다.

  4. 활성화 키 생성으로 확인합니다.

자세한 내용은 활성화 키에서 확인할 수 있습니다.

2.4. 이미지 저장소 생성

빌드된 모든 이미지는 이미지 저장소로 푸시됩니다. 이 섹션에는 이미지 저장소 생성에 대한 정보가 포함되어 있습니다.

images image stores
절차: 이미지 저장소 생성
  1. 이미지  저장소를 선택합니다.

  2. 생성을 클릭하여 새 저장소를 생성합니다.

    images image stores create
  3. 레이블 필드에 이미지 저장소의 이름을 정의합니다.

  4. 컨테이너 레지스트리 호스트(내부 또는 외부)의 FQDN(정규화된 도메인 이름)으로 URI 필드를 입력하여 이미지 레지스트리 경로를 입력합니다.

    registry.example.com
  5. 레지스트리 URI를 사용하여 이미 사용 중인 레지스트리의 이미지 저장소를 지정할 수도 있습니다.

    registry.example.com:5000/myregistry/myproject
  6. 생성을 클릭하여 새 이미지 저장소를 추가합니다.

2.5. 이미지 프로파일 생성

모든 컨테이너 이미지는 빌드 지침이 포함된 이미지 프로파일을 사용하여 빌드됩니다. 이 섹션에는 SUSE Manager Web UI를 사용하여 이미지 프로파일을 생성하는 방법에 대한 정보가 포함되어 있습니다.

images image profiles
절차: 이미지 프로파일 생성
  1. 이미지 프로파일을 생성하려면 이미지  프로파일을 선택하고 생성을 클릭합니다.

    images image create profile
  2. 레이블 필드를 작성하여 이미지 프로파일의 이름을 입력합니다.

    컨테이너 이미지 태그의 형식이 myproject/myimage와 같은 경우 이미지 저장소 레지스트리 URI에 /myproject 접미사가 포함되어 있는지 확인합니다.

  3. Dockerfile을 `이미지 유형`으로 사용합니다.

  4. 드롭다운 메뉴를 사용하여 대상 이미지 저장소 필드에서 레지스트리를 선택합니다.

  5. 경로 필드에 GitHub, GitLab 또는 BitBucket 리포지토리 URL을 입력합니다. URL은 http, https 또는 토큰 인증 URL이어야 합니다. 다음 형식 중 한 개를 사용:

    GitHub 경로 옵션
    • GitHub 단일 사용자 프로젝트 리포지토리

      https://github.com/USER/project.git#branchname:folder
    • GitHub 조직 프로젝트 리포지토리

      https://github.com/ORG/project.git#branchname:folder
    • GitHub 토큰 인증

      git 리포지토리가 비공개인 경우 인증을 포함하도록 프로파일의 URL을 수정합니다. 다음 URL 형식을 사용하여 GitHub 토큰으로 인증합니다.

      https://USER:<AUTHENTICATION_TOKEN>@github.com/USER/project.git#master:/container/
    • GitLab 단일 사용자 프로젝트 리포지토리

      https://gitlab.example.com/USER/project.git#master:/container/
    • GitLab 그룹 프로젝트 리포지토리

      https://gitlab.example.com/GROUP/project.git#master:/container/
    • GitLab 토큰 인증

      git 리포지토리가 비공개이고 공개적으로 액세스할 수 없는 경우 인증을 포함하도록 프로파일의 git URL을 수정해야 합니다. 다음 URL 형식을 사용하여 GitLab 토큰으로 인증:

      https://gitlab-ci-token:<AUTHENTICATION_TOKEN>@gitlab.example.com/USER/project.git#master:/container/

      git 분기를 지정하지 않으면 기본적으로 마스터 분기가 사용됩니다. 폴더가 지정되지 않은 경우 이미지 소스(Dockerfile 소스)는 GitHub 또는 GitLab 체크아웃의 루트 디렉토리에 있어야 합니다.

  6. 활성화 키를 선택합니다. 활성화 키를 통해 프로파일을 사용하는 이미지를 올바른 채널 및 패키지에 할당할 수 있습니다.

    활성화 키를 이미지 프로파일과 연결하면 프로파일을 사용하는 모든 이미지가 올바른 소프트웨어 채널과 채널의 모든 패키지를 사용하도록 할 수 있습니다.

  7. 생성 버튼을 클릭합니다.

예시 Dockerfile 소스

재사용할 수 있는 이미지 프로파일은 https://github.com/SUSE/manager-build-profiles에 게시됩니다.

ARG 파라미터를 사용하면 빌드된 이미지를 SUSE Manager에서 제공하는 원하는 리포지토리와 연결할 수 있습니다. ARG 파라미터를 사용하면 SUSE Linux Enterprise Server의 이미지 버전을 빌드할 수도 있으며, 이 버전은 빌드 호스트 자체에서 사용하는 SUSE Linux Enterprise Server 버전과 다를 수 있습니다.

예를 들어 ARG repo 파라미터와 리포지토리 파일을 가리키는 echo 명령은 원하는 채널 버전에 대한 리포지토리 파일에 올바른 경로를 생성한 후 삽입합니다.

리포지토리는 이미지 프로파일에 할당한 활성화 키로 결정됩니다.

FROM registry.example.com/sles12sp2
MAINTAINER Tux Administrator "tux@example.com"

### 시작: 이 라인은 {productname}와 함께 사용하기 위해 필요합니다.

ARG repo
ARG cert

# 올바른 인증서 추가
RUN echo "$cert" > /etc/pki/trust/anchors/RHN-ORG-TRUSTED-SSL-CERT.pem

# 인증서 신뢰 저장소 업데이트
RUN update-ca-certificates

# 이미지에 리포지토리 경로 추가
RUN echo "$repo" > /etc/zypp/repos.d/susemanager:dockerbuild.repo

### 끝: 이 라인은 {productname}와 함께 사용하기 위해 필요합니다.

# 패키지 스크립트 추가
ADD add_packages.sh /root/add_packages.sh

# 패키지 스크립트 실행
RUN /root/add_packages.sh

# 빌드 후 이미지에서 리포지토리 경로 제거
RUN rm -f /etc/zypp/repos.d/susemanager:dockerbuild.repo

2.5.1. 사용자 정의 정보 키-값 쌍을 Docker Buildargs로 사용

사용자 정의 정보 키-값 쌍을 할당하여 이미지 프로파일에 정보를 첨부할 수 있습니다. 또한, 이러한 키-값 쌍은 buildargs로 Docker 빌드 명령에 전달됩니다.

사용 가능한 사용자 정보 키 및 추가 키 생성에 대한 자세한 내용은 사용자 정의 시스템 정보에서 확인할 수 있습니다.

2.6. 이미지 빌드

이미지를 구축하는 방법은 두 가지입니다. 왼쪽 탐색 모음에서 이미지  빌드를 선택하거나 이미지  프로파일 목록에서 빌드 아이콘을 클릭할 수 있습니다.

images image build
절차: 이미지 빌드
  1. 이미지  빌드를 선택합니다.

  2. 기본 최신이 아닌 다른 버전을 원하는 경우 다른 태그 이름을 추가하십시오(컨테이너에만 해당).

  3. 빌드 프로파일빌드 호스트를 선택합니다.

    빌드 필드 오른쪽의 프로파일 요약을 확인합니다. 빌드 프로파일을 선택하면 선택한 프로파일에 대한 자세한 정보가 이 영역에 표시됩니다.

  4. 빌드를 예약하려면 빌드 버튼을 클릭합니다.

2.7. 이미지 임포트

임의의 이미지를 임포트한 후 검사할 수 있습니다. 왼쪽 탐색 모음에서 이미지  이미지 목록를 선택합니다. 임포트 대화 상자의 텍스트 상자를 입력합니다. 처리가 완료되면 임포트한 이미지가 이미지 목록 페이지에 나열됩니다.

절차: 이미지 임포트
  1. 이미지  이미지 목록에서 임포트를 클릭하여 이미지 임포트 대화 상자를 엽니다.

  2. 이미지 임포트 대화 상자에서 다음 필드를 입력합니다.

    이미지 저장소

    검사를 위해 이미지를 끌어오는 레지스트리입니다.

    이미지 이름

    레지스트리에 있는 이미지의 이름입니다.

    이미지 버전

    레지스트리에 있는 이미지의 버전입니다.

    빌드 호스트

    이미지를 끌어오고 검사하는 빌드 호스트입니다.

    활성화 키

    이미지를 검사하는 소프트웨어 채널에 대한 경로를 제공하는 활성화 키입니다.

  3. 확인하려면 임포트를 클릭합니다.

이미지 항목이 데이터베이스에 생성되고 SUSE Manager에 대한 이미지 검사 작업이 예약됩니다.

처리가 완료되면 이미지 목록에서 임포트한 이미지를 찾을 수 있습니다. 이미지를 임포트했음을 나타내기 위해 빌드 열에 다른 아이콘이 표시됩니다. 임포트한 이미지의 상태 아이콘은 이미지의 개요 탭에서도 확인할 수 있습니다.

2.8. 문제 해결

이미지 작업과 관련하여 알려진 몇 가지 문제는 다음과 같습니다.

  • 레지스트리 또는 git 리포지토리에 액세스하기 위한 HTTPS 인증서는 사용자 정의 상태 파일을 사용하여 클라이언트에 배포해야 합니다.

  • 현재 Docker를 사용한 SSH git 액세스는 지원되지 않습니다.

3. OS 이미지

OS 이미지는 Kiwi 이미지 시스템에 의해 빌드됩니다. 출력 이미지는 사용자 정의가 가능하며 PXE, QCOW2, LiveCD 또는 기타 유형의 이미지일 수 있습니다.

Kiwi 빌드 시스템에 대한 자세한 내용은 Kiwi documentation에서 확인할 수 있습니다.

3.1. 요구사항

Kiwi 이미지 빌드 기능은 SUSE Linux Enterprise Server 12 및 SUSE Linux Enterprise Server 11이 실행되는 Salt 클라이언트에서 사용할 수 있습니다.

Kiwi 이미지 구성 파일 및 구성 스크립트는 다음 위치 중 한 곳에서 액세스할 수 있어야 합니다.

  • Git 리포지토리

  • HTTP 호스팅 tarball

  • 로컬 빌드 호스트 디렉토리

git에서 제공하는 전체 Kiwi 리포지토리의 예는 https://github.com/SUSE/manager-build-profiles/tree/master/OSImage에서 확인할 수 있습니다.

Kiwi로 빌드된 OS 이미지를 실행하는 호스트에는 사용할 수 있는 1 GB 이상 RAM이 필요합니다. 디스크 공간은 이미지의 실제 크기에 따라 다릅니다. 자세한 내용은 기본 시스템 설명서에서 확인할 수 있습니다.

빌드 호스트는 Salt 클라이언트여야 합니다. 빌드 호스트를 기존 클라이언트로 설치하지 마십시오.

3.2. 빌드 호스트 생성

SUSE Manager로 모든 종류의 이미지를 빌드하려면 빌드 호스트를 생성 및 구성합니다. OS 이미지 빌드 호스트는 SUSE Linux Enterprise Server 15(SP2 이상) 또는 SUSE Linux Enterprise Server 12(SP4 이상)에서 실행되는 Salt 클라이언트입니다.

이 절차는 빌드 호스트의 초기 구성을 설명합니다.

빌드 호스트의 운영 체제는 대상 이미지의 운영 체제와 일치해야 합니다.

예를 들어, SUSE Linux Enterprise Server 15(SP2 이상) OS 버전으로 구동되는 빌드 호스트에서는 SUSE Linux Enterprise Server 15 기반 이미지를 빌드합니다. SUSE Linux Enterprise Server 12 SP4 또는 SUSE Linux Enterprise Server 12 SP4 OS 버전으로 구동되는 빌드 호스트에서는 SUSE Linux Enterprise Server 12 기반 이미지를 빌드합니다.

아키텍처 간에는 빌드할 수 없습니다. 예를 들어, SUSE Linux Enterprise Server 15 SP3가 실행 중인 Raspberry PI(aarch64 아키텍처) 빌드 호스트에서는 Raspberry PI SUSE Linux Enterprise Server 15 SP3 이미지를 빌드해야 합니다.

절차: SUSE Manager Web UI에서 빌드 호스트 구성
  1. 시스템  개요 페이지에서 빌드 호스트로 지정할 클라이언트를 선택합니다.

  2. 시스템 세부 사항  속성 탭으로 이동하여 추가 기능 시스템 유형 OS 이미지 빌드 호스트를 활성화합니다. 속성 업데이트로 확인합니다.

    os image build host
  3. 시스템 세부 사항  소프트웨어  소프트웨어 채널로 이동하고 빌드 호스트 버전에 따라 필요한 소프트웨어 채널을 활성화합니다.

    • SUSE Linux Enterprise Server 12 빌드 호스트에는 SUSE Manager 클라이언트 도구(SLE-Manager-Tools12-PoolSLE-Manager-Tools12-Updates)가 필요합니다.

    • SUSE Linux Enterprise Server 15 빌드 호스트에는 SUSE Linux Enterprise Server 모듈 SLE-Module-DevTools15-SP4-PoolSLE-Module-DevTools15-SP4-Updates가 필요합니다. 예약한 후 확인을 클릭합니다.

  4. Highstate를 적용하여 Kiwi 및 모든 필수 패키지를 설치합니다. 시스템 세부 사항 페이지에서 상태  Highstate를 선택하고 Highstate 적용을 클릭합니다. 또는 SUSE Manager 서버 명령줄에서 Highstate를 적용합니다.

    salt '$your_client' state.highstate

3.2.1. SUSE Manager 웹 서버 공인 인증서 RPM

빌드 호스트 프로비저닝은 SUSE Manager 인증서 RPM을 빌드 호스트에 복사합니다. 이 인증서는 SUSE Manager에서 제공하는 리포지토리에 액세스하기 위한 용도로 사용됩니다.

인증서는 mgr-package-rpm-certificate-osimage 패키지 스크립트에 의해 RPM으로 패키징됩니다. 패키지 스크립트는 새 SUSE Manager 설치 중에 자동으로 호출됩니다.

spacewalk-certs-tools 패키지를 업그레이드하는 경우 업그레이드 시나리오는 기본값을 사용하여 패키지 스크립트를 호출합니다. 그러나 인증서 경로가 변경되었거나 사용할 수 없는 경우 업그레이드 절차가 완료된 후 --ca-cert-full-path <path_to_certificate>를 사용하여 패키지 스크립트를 수동으로 호출하십시오.

3.2.2. 패키지 스크립트 호출 예

/usr/sbin/mgr-package-rpm-certificate-osimage --ca-cert-full-path /root/ssl-build/RHN-ORG-TRUSTED-SSL-CERT

인증서가 포함된 RPM 패키지는 다음과 같이 Salt가 액세스할 수 있는 디렉토리에 저장됩니다.

/usr/share/susemanager/salt/images/rhn-org-trusted-ssl-cert-osimage-1.0-1.noarch.rpm

인증서가 포함된 RPM 패키지는 다음 로컬 빌드 호스트 리포지토리에 제공됩니다.

/var/lib/Kiwi/repo

빌드 소스에 SUSE Manager SSL 인증서가 포함된 RPM 패키지를 지정하고 Kiwi 구성에 부트스트랩 섹션의 필수 패키지로 rhn-org-trusted-ssl-cert-osimage가 포함되어 있는지 확인합니다.

Listing 1. config.xml
...
  <packages type="bootstrap">
    ...
    <package name="rhn-org-trusted-ssl-cert-osimage" bootinclude="true"/>
  </packages>
...

3.3. OS 이미지에 대한 활성화 키 생성

이미지를 빌드할 때 OS 이미지가 리포지토리로 사용할 수 있는 채널과 연결된 활성화 키를 생성합니다.

활성화 키는 OS 이미지 빌드에 필수입니다.

OS 이미지를 빌드하려면 SUSE 관리자 기본값 이외의 채널과 연결된 활성화 키가 필요합니다.

systems create activation key
절차: 활성 키 생성
  1. Web UI에서 시스템  활성화 키를 선택합니다.

  2. 키 생성을 클릭합니다.

  3. 설명, 이름을 입력하고 드롭다운 상자를 사용하여 키와 연결할 기본 채널을 선택합니다.

  4. 활성화 키 생성으로 확인합니다.

자세한 내용은 활성화 키에서 확인할 수 있습니다.

3.4. 이미지 저장소 생성

OS 이미지에는 상당한 양의 저장 공간이 필요할 수 있습니다. 그러므로 OS 이미지 저장소는 자체 파티션 또는 루트 파티션과 별도의 Btrfs 하위 볼륨에 위치하는 것이 좋습니다. 기본적으로 이미지 저장소의 경로는 /srv/www/os-images입니다.

시스템, 가상 및 기타 이미지를 빌드하기 위해 사용되는 Kiwi 빌드 유형의 이미지 저장소는 아직 지원되지 않습니다.

이미지는 항상 /srv/www/os-images/ORGANIZATION-ID에 저장되며 HTTP/HTTPS https://<susemanager_host>/os-images/ORGANIZATION-ID를 통해 액세스할 수 있습니다.

3.5. 이미지 프로파일 생성

Web UI를 사용하여 이미지 프로파일을 관리합니다.

images image profiles
절차: 이미지 프로파일 생성
  1. 이미지 프로파일을 생성하려면 이미지  프로파일에서 선택하고 생성을 클릭합니다.

    images image create profile kiwi
  2. 레이블 필드에 이미지 프로파일의 이름을 입력합니다.

  3. 이미지 유형으로 Kiwi를 사용합니다.

  4. 이미지 저장소는 자동으로 선택됩니다.

  5. Kiwi 구성 파일이 포함된 디렉토리에 URL 구성을 입력합니다.

    1. git URI

    2. HTTPS tarball

    3. 호스트 로컬 디렉토리를 빌드하는 경로

  6. 필요한 경우, Kiwi 옵션을 입력합니다. Kiwi 구성 파일이 여러 프로파일을 지정하는 경우 --profile <name>을 사용하여 활성 프로파일을 선택합니다. 다른 옵션에 대해서는 Kiwi 설명서를 참조하십시오.

  7. 활성화 키를 선택합니다. 활성화 키를 사용하면 프로파일을 사용하는 이미지가 올바른 채널 및 패키지에 할당할 수 있습니다.

    이미지 프로파일이 올바른 소프트웨어 채널 및 모든 패키지를 사용하도록 활성화 키를 이미지 프로파일과 연결합니다.

  8. 생성 버튼으로 확인합니다.

    소스 형식 옵션
    • 리포지토리에 대한 git/HTTP(S) URL

      빌드할 이미지의 소스가 포함된 git 리포지토리의 URL입니다. 리포지토리의 레이아웃에 따라 가능한 URL은 다음과 같습니다.

      https://github.com/SUSE/manager-build-profiles

      URL에서 # 문자 뒤에 분기를 지정할 수 있습니다. 이 예에서는 다음 master 분기를 사용합니다.

      https://github.com/SUSE/manager-build-profiles#master

      : 문자 뒤에 이미지 소스가 포함된 디렉토리를 지정할 수 있습니다. 이 예에서는 다음 OSImage/POS_Image-JeOS6을 사용합니다.

      https://github.com/SUSE/manager-build-profiles#master:OSImage/POS_Image-JeOS6
    • tarball에 대한 HTTP(S) URL

      웹 서버에서 호스팅되는 tar 아카이브(압축 또는 비압축)의 URL입니다.

      https://myimagesourceserver.example.org/MyKiwiImage.tar.gz
    • 빌드 호스트 상의 디렉토리 경로

      Kiwi 빌드 시스템 소스가 포함된 디렉토리 경로를 입력합니다. 이 디렉토리는 선택한 빌드 호스트에 위치해야 합니다.

      /var/lib/Kiwi/MyKiwiImage

3.5.1. Kiwi 소스의 예

Kiwi 소스는 최소한 config.xml로 구성됩니다. 일반적으로 config.shimage.sh도 함께 포함됩니다. 소스에는 root 하위 디렉토리의 최종 이미지에 설치할 파일도 포함될 수도 있습니다.

Kiwi 빌드 시스템에 대한 내용은 Kiwi documentation에서 확인할 수 있습니다.

SUSE는 SUSE/manager-build-profiles 공개 GitHub 리포지토리에서 완전하게 작동하는 이미지 소스의 예를 제공합니다.

Listing 2. JeOS config.xml의 예
<?xml version="1.0" encoding="utf-8"?>

<image schemaversion="6.1" name="POS_Image_JeOS6">
    <description type="system">
        <author>Admin User</author>
        <contact>noemail@example.com</contact>
        <specification>SUSE Linux Enterprise 12 SP3 JeOS</specification>
    </description>
    <preferences>
        <version>6.0.0</version>
        <packagemanager>zypper</packagemanager>
        <bootsplash-theme>SLE</bootsplash-theme>
        <bootloader-theme>SLE</bootloader-theme>

        <locale>en_US</locale>
        <keytable>us.map.gz</keytable>
        <timezone>Europe/Berlin</timezone>
        <hwclock>utc</hwclock>

        <rpm-excludedocs>true</rpm-excludedocs>
        <type boot="saltboot/suse-SLES12" bootloader="grub2" checkprebuilt="true" compressed="false" filesystem="ext3" fsmountoptions="acl" fsnocheck="true" image="pxe" kernelcmdline="quiet"></type>
    </preferences>
    <!--    CUSTOM REPOSITORY
    <repository type="rpm-dir">
      <source path="this://repo"/>
    </repository>
    -->
    <packages type="image">
        <package name="patterns-sles-Minimal"/>
        <package name="aaa_base-extras"/> <!-- wouldn't be SUSE without that ;-) -->
        <package name="kernel-default"/>
        <package name="salt-minion"/>
        ...
    </packages>
    <packages type="bootstrap">
        ...
        <package name="sles-release"/>
        <!-- this certificate package is required to access {productname} repositories
             and is provided by {productname} automatically -->
        <package name="rhn-org-trusted-ssl-cert-osimage" bootinclude="true"/>

    </packages>
    <packages type="delete">
        <package name="mtools"/>
        <package name="initviocons"/>
        ...
    </packages>
</image>

3.6. 이미지 빌드

Web UI를 사용하여 이미지를 빌드하는 방법에는 2가지입니다. 이미지  빌드를 선택하거나 이미지  프로파일 목록에서 빌드 아이콘을 클릭합니다.

images image build
절차: 이미지 빌드
  1. 이미지  빌드를 선택합니다.

  2. 기본 최신이 아닌 다른 버전을 원하는 경우 다른 태그 이름을 추가합니다(컨테이너에만 적용됨).

  3. 이미지 프로파일빌드 호스트를 선택합니다.

    빌드 필드 오른쪽에 프로파일 요약이 표시됩니다. 빌드 프로파일을 선택하면 선택한 프로파일에 대한 자세한 정보가 여기에 표시됩니다.

  4. 빌드를 예약하려면 빌드 버튼을 클릭합니다.

이미지 빌드 프로세스 중에 빌드 서버는 어떤 형태의 자동 마운터도 실행할 수 없습니다. 해당하는 경우, 루트 권한으로 실행 중인 Gnome 세션이 없는지 확인하십시오. 자동 마운터가 실행 중인 경우 이미지 빌드가 완료되지만, 이미지의 체크섬이 달라 실패하게 됩니다.

이미지 빌드가 성공하면 검사 단계가 시작됩니다. 검사 단계에서 SUSE Manager는 이미지에 대한 정보를 수집합니다.

  • 이미지에 설치된 패키지 목록

  • 이미지의 체크섬

  • 이미지 유형 및 기타 이미지 세부 사항

빌드된 이미지 유형이 PXE인 경우 Salt 열도 생성됩니다. 이미지 열은 데이터베이스에 저장되며 Salt 하위 시스템은 생성된 이미지에 대한 세부 사항에 액세스할 수 있습니다. 세부 사항에는 이미지 파일의 위치 및 제공 위치, 이미지 체크섬, 네트워크 부팅에 필요한 정보 등이 포함됩니다.

생성된 열은 연결된 모든 클라이언트에서 사용할 수 있습니다.

3.7. 문제 해결

이미지를 빌드하려면 여러 종속 단계가 필요합니다. 빌드가 실패하는 경우 Salt 상태 결과 및 빌드 로그를 조사하면 실패의 원인을 식별하는 데 도움이 될 수 있습니다. 빌드 실패 시 수행할 수 있는 검사:

  • 빌드 호스트는 빌드 소스에 액세스할 수 있습니다.

  • 빌드 호스트 및 SUSE Manager 서버 모두에 이미지를 위한 충분한 디스크 공간이 있습니다.

  • 활성화 키에 연결된 올바른 채널이 있습니다.

  • 사용된 빌드 소스가 유효합니다.

  • SUSE Manager 공용 인증서가 포함된 RPM 패키지는 최신 버전이며 /usr/share/susemanager/salt/images/rhn-org-trusted-ssl-cert-osimage-1.0-1.noarch.rpm에서 사용할 수 있습니다. 공용 인증서 RPM을 새로 고치는 방법에 대한 자세한 내용은 빌드 호스트 생성에서 확인할 수 있습니다.

3.8. 제한 사항

이 섹션에는 이미지 관련 작업을 할 때 알려진 몇 가지 문제가 포함되어 있습니다.

  • HTTP 소스 또는 git 리포지토리에 액세스하기 위해 사용되는 HTTPS 인증서는 사용자 정의 상태 파일을 통해 클라이언트에 배포하거나 수동으로 구성해야 합니다.

  • Kiwi 기반 이미지 임포트는 지원되지 않습니다.

4. 빌드 이미지 목록

사용할 수 있는 빌드 이미지를 나열하려면 이미지  이미지 목록를 선택하십시오. 모든 이미지 목록이 표시됩니다.

images list images

이미지에 대해 표시되는 데이터에는 이미지 이름, 버전, 리비전 및 빌드 상태가 포함됩니다. 이미지에 사용할 수 있는 가능한 패치 및 패키지 업데이트 목록을 통해 이미지 업데이트 상태를 확인할 수도 있습니다.

OS 이미지의 경우 이름버전 필드는 Kiwi 소스에서 제공되며 빌드가 성공적으로 완료되면 업데이트됩니다. 빌드 중 또는 빌드 실패 후, 이 필드에는 프로파일 이름을 기반으로 하는 임시 이름이 표시됩니다.

리비전은 빌드가 성공할 때마다 자동으로 증가합니다. OS 이미지의 경우 저장소에 여러 리비전이 함께 있을 수 있습니다.

컨테이너 이미지의 경우 저장소에는 최신 리비전만 보존됩니다. 이전 버전(패키지, 패치 등)에 대한 정보는 보존되며 구식 표시 확인란을 사용하여 나열할 수 있습니다.

이미지에서 자세히 버튼을 클릭하면 자세한 내용을 확인할 수 있습니다. 상세 보기에는 관련 패치의 정확한 목록, 이미지 내에 설치된 모든 패키지 목록 및 빌드 로그가 포함됩니다.

삭제 버튼을 클릭하면 목록에서 이미지가 삭제됩니다. 또한, 관련 열, OS 이미지 저장소의 파일 및 사용되지 않는 리비전도 삭제됩니다.

빌드가 성공한 후 상태를 검사한 경우에만 패치 및 패키지 목록을 사용할 수 있습니다.