이미지 빌드 및 관리
1. 이미지 빌드 개요
SUSE Multi-Linux Manager을(를) 사용하면 시스템 관리자가 컨테이너와 OS 이미지를 빌드하고 결과를 이미지 저장소에 푸시할 수 있습니다.
이미지 저장소를 정의합니다.
이미지 프로파일을 정의하고 이를 소스(git 리포지토리 또는 디렉토리)와 연결합니다.
이미지를 빌드합니다.
이미지를 이미지 저장소로 푸시합니다.
SUSE Multi-Linux Manager은(는) 다음 두 가지 빌드 유형을 지원합니다: Dockerfile 및 Kiwi 빌드 유형입니다. Kiwi 빌드 유형은 시스템, 가상 및 기타 이미지를 빌드하는 데 사용됩니다.
Kiwi 빌드 유형의 이미지 저장소는 srv-www 볼륨의 파일 시스템 디렉토리로 미리 정의되어 있습니다.
이미지 파일은 `https://MANAGER-HOST/os-images/ORGANIZATION-ID/FILE-NAME`에서 다운로드할 수 있습니다. 정확한 위치는 이미지 세부 정보 페이지에서 확인할 수 있습니다.
2. 컨테이너 이미지
2.1. 요구사항
컨테이너 기능은 Salt 클라이언트에서 SUSE Linux Enterprise Server 12 이상을 실행할 때 사용할 수 있습니다. 시작하기 전에 환경이 다음 요구 사항을 충족하는지 확인하십시오:
-
Dockerfile 및 구성 스크립트를 포함하는 게시된 git 리포지토리입니다. 리포지토리는 공개 또는 비공개일 수 있으며, GitHub, GitLab 또는 BitBucket에 호스팅되어야 합니다.
-
Docker 레지스트리와 같이 올바르게 구성된 이미지 저장소입니다.
컨테이너에 대한 자세한 내용은 https://documentation.suse.com/container/all/html/Container-guide/.을(를) 참조하십시오.
2.2. 빌드 호스트 생성
SUSE Multi-Linux Manager으로 이미지를 빌드하려면 빌드 호스트를 생성하고 구성해야 합니다. 컨테이너 빌드 호스트는 Salt 클라이언트에서 SUSE Linux Enterprise 12 이상을 실행할 때 사용됩니다. 이 섹션은 빌드 호스트의 초기 구성을 안내합니다.
|
빌드 호스트의 운영 체제는 대상 이미지의 운영 체제와 일치해야 합니다. 예를 들어, SUSE Linux Enterprise Server 15 (SP2 이상) OS 버전을 실행하는 빌드 호스트에서 SUSE Linux Enterprise Server 15 기반 이미지를 빌드합니다. SUSE Linux Enterprise Server 12 SP5 또는 SUSE Linux Enterprise Server 12 SP4 OS 버전을 실행하는 빌드 호스트에서 SUSE Linux Enterprise Server 12 기반 이미지를 빌드합니다. 아키텍처 간 빌드는 지원되지 않습니다. |
SUSE Multi-Linux Manager Web UI에서 다음 단계를 수행하여 빌드 호스트를 구성합니다:
Salt 클라이언트를 개요 페이지에서 빌드 호스트로 지정합니다.
선택한 클라이언트의
System Details페이지에서 컨테이너 모듈을 할당합니다. (으)로 이동하여 컨테이너 모듈을 활성화합니다(예:SLE-Module-Containers15-Pool및SLE-Module-Containers15-Updates). 계속 진행하려면 다음을 클릭합니다.`소프트웨어 채널 변경`을 예약하고 확인을 클릭합니다.
System Details탭에서 속성 페이지를 선택하고Add-on System Types목록에서 `Container Build Host`을(를) 활성화합니다. 속성 업데이트를 클릭하여 확인합니다.`Highstate`을(를) 적용하여 필요한 모든 패키지를 설치합니다. 시스템 세부정보 탭에서 를 선택하고 하이 스테이트 적용을 클릭합니다. 또는 SUSE Multi-Linux Manager 서버 명령줄에서 `Highstate`을(를) 적용합니다:
salt '$your_client' state.highstate
2.3. 컨테이너에 대한 활성화 키 생성
SUSE Multi-Linux Manager으로 빌드된 컨테이너는 이미지를 빌드할 때 활성화 키와 연결된 채널을 리포지토리로 사용합니다. 이 섹션에서는 이 목적을 위한 임시 활성화 키를 만드는 방법을 안내합니다.
|
컨테이너를 빌드하려면 |
를 선택합니다.
키 생성를 클릭합니다.
Description및Key이름을 입력합니다. 드롭다운 메뉴를 사용하여 이 키와 연결할 `Base Channel`을 선택합니다.활성화 키 생성으로 확인합니다.
자세한 내용은 활성화 키을 참조하십시오.
2.4. 이미지 저장소 생성
모든 빌드된 이미지는 이미지 저장소에 푸시됩니다. 이 섹션에는 이미지 저장소 생성에 대한 정보가 포함되어 있습니다. 이미지 저장소는 일반적으로 레지스트리로 참조됩니다.
를 선택합니다.
`Create`을 클릭하여 새 저장소를 생성합니다.
`Store Type`에서 올바른 유형을 선택합니다.
Label필드에 이미지 저장소의 이름을 입력합니다.컨테이너 레지스트리 호스트(내부 또는 외부)의 FQDN(정규화된 도메인 이름)으로
URI필드를 입력하여 이미지 레지스트리 경로를 제공합니다.registry.example.com레지스트리 URI를 사용하여 이미 사용 중인 레지스트리의 이미지 저장소를 지정할 수도 있습니다.
registry.example.com:5000/myregistry/myproject생성을 클릭하여 새 이미지 저장소를 추가합니다.
2.5. 이미지 프로파일 생성
모든 컨테이너 이미지는 빌딩 지침을 포함하는 이미지 프로파일을 사용하여 빌드됩니다. 이 섹션에는 SUSE Multi-Linux Manager Web UI를 사용하여 이미지 프로파일을 생성하는 방법에 대한 정보가 포함되어 있습니다.
이미지 프로파일을 생성하려면 을 선택하고 생성을 클릭합니다.
Label필드를 작성하여 이미지 프로파일의 이름을 입력합니다.
컨테이너 이미지 태그의 형식이
myproject/myimage`과 같은 경우, 이미지 저장소 레지스트리 URI에 `/myproject접미사가 포함되어 있는지 확인합니다.
Dockerfile`을 `Image Type(으)로 사용합니다.드롭다운 메뉴를 사용하여
Target Image Store필드에서 레지스트리를 선택합니다.
Path필드에 GitHub, GitLab 또는 BitBucket 리포지토리 URL을 입력합니다. 경로는 빌드 호스트의 로컬 디렉토리일 수도 있습니다. URL은http,https또는 토큰 인증 URL이어야 합니다. GitHub 또는 GitLab의 경우 다음 형식 중 하나를 사용하십시오:GitHub 경로 옵션
GitHub 단일 사용자 프로젝트 리포지토리
https://github.com/USER/project.git#branchname:folderGitHub 조직 프로젝트 리포지토리
https://github.com/ORG/project.git#branchname:folderGitHub 토큰 인증
git 리포지토리가 비공개인 경우 프로파일의 URL을 수정하여 인증을 포함해야 합니다. GitHub 토큰으로 인증하기 위해 이 URL 형식을 사용하십시오:
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을 수정하여 인증을 포함해야 합니다. GitLab 토큰으로 인증하기 위해 이 URL 형식을 사용하십시오:
https://gitlab-ci-token:<AUTHENTICATION_TOKEN>@gitlab.example.com/USER/project.git#master:/container/
git 브랜치를 지정하지 않으면 기본적으로
master브랜치가 사용됩니다. `folder`가 지정되지 않으면 이미지 소스(Dockerfile 소스)는 GitHub 또는 GitLab 체크아웃의 루트 디렉토리에 있어야 합니다.`Activation Key`을 선택하십시오. 활성화 키는 프로파일을 사용하는 이미지가 올바른 채널 및 패키지에 할당되도록 보장합니다.
활성화 키를 이미지 프로파일과 연결하면 프로파일을 사용하는 모든 이미지가 올바른 소프트웨어 채널과 채널의 모든 패키지를 사용하도록 할 수 있습니다.
생성 버튼을 클릭하십시오.
2.5.1. 예시 Dockerfile 소스
재사용할 수 있는 이미지 프로파일이 https://github.com/SUSE/manager-build-profiles.에 게시됩니다.
|
예: 리포지토리는 이미지 프로파일에 할당한 활성화 키로 결정됩니다. |
FROM registry.example.com/sles12sp2
MAINTAINER Tux Administrator "tux@example.com"
### Begin: These lines are required for use with {productname}
ARG repo
ARG cert
# Add the correct certificate
RUN echo "$cert" > /etc/pki/trust/anchors/RHN-ORG-TRUSTED-SSL-CERT.pem
# Update certificate trust store
RUN update-ca-certificates
# Add the repository path to the image
RUN echo "$repo" > /etc/zypp/repos.d/susemanager:dockerbuild.repo
### End: These lines are required for use with {productname}
# Add the package script
ADD add_packages.sh /root/add_packages.sh
# Run the package script
RUN /root/add_packages.sh
# After building remove the repository path from image
RUN rm -f /etc/zypp/repos.d/susemanager:dockerbuild.repo
2.5.2. 사용자 정의 정보 키-값 쌍을 Docker `buildargs`로 사용
사용자 정의 정보 키-값 쌍을 할당하여 이미지 프로파일에 정보를 첨부할 수 있습니다. 또한, 이러한 키-값 쌍은 `buildargs`으로 Docker 빌드 명령에 전달됩니다.
사용 가능한 사용자 정의 정보 키 및 추가 키 생성에 대한 자세한 정보는 Custom System Information을 참조하십시오.
2.6. 이미지 빌드
이미지를 빌드하는 방법은 두 가지가 있습니다. 첫 번째 방법은 처음부터 만드는 것입니다. 이를 위해 왼쪽 탐색 바에서 를 선택하거나 목록에서 빌드 아이콘을 클릭하고 절차를 따르십시오.
를 선택하십시오.
기본 `latest`이 아닌 다른 버전을 원하는 경우 다른 태그 이름을 추가하십시오(컨테이너에만 해당).
Build Profile및 `Build Host`을(를) 선택하십시오.
빌드 필드 오른쪽에 있는 `Profile Summary`을(를) 확인하십시오. 빌드 프로파일을 선택하면 선택한 프로파일에 대한 자세한 정보가 이 영역에 표시됩니다.
빌드를 예약하려면 빌드 버튼을 클릭하십시오.
2.7. 이미지 임포트
이미지를 얻는 두 번째 방법은 임의의 이미지를 가져오고 검사하는 것입니다.
이를 위해 왼쪽 탐색 바에서 을 선택하십시오.
Import 대화 상자의 텍스트 상자를 작성하십시오.
처리되면 가져온 이미지는 Image List 페이지에 나열됩니다.
에서 임포트를 클릭하여
Import Image대화 상자를 엽니다.
Import Image대화 상자에서 다음 필드를 작성하십시오:
- 이미지 저장소
검사를 위해 이미지를 끌어오는 레지스트리입니다.
- 이미지 이름
레지스트리에 있는 이미지의 이름입니다.
- 이미지 버전
레지스트리에 있는 이미지의 버전입니다.
- 빌드 호스트
이미지를 끌어오고 검사하는 빌드 호스트입니다.
- 활성화 키
이미지를 검사하는 소프트웨어 채널에 대한 경로를 제공하는 활성화 키입니다.
확인을 위해 임포트를 클릭하십시오.
이미지 항목이 데이터베이스에 생성되고 `Inspect Image`에 대한 SUSE Multi-Linux Manager 작업이 예약됩니다.
처리되면 가져온 이미지를 Image List`에서 찾을 수 있습니다.
`Build 열에서 이미지를 가져왔음을 나타내기 위해 다른 아이콘이 있습니다.
가져온 이미지의 상태 아이콘은 이미지의 Overview 탭에서도 볼 수 있습니다.
2.8. 문제 해결
2.8.1. 이미지 검사
기본 컨테이너 이미지(BCI)는 이 이미지를 실행하기 위한 모든 소프트웨어와 함께 제공되지만, BCI는 경량이므로 검사에 필요한 모든 도구와 라이브러리가 제공되지 않을 수 있습니다.
컨테이너 이미지를 검사할 때 다음과 같은 오류 메시지가 표시될 수 있습니다.
libssl.so.1.1: cannot open shared object file: No such file or directory
BCI는 컨테이너 빌드 호스트 및 Salt 번들을 사용한 검사 이외의 다른 상황에서도 사용할 수 있지만, 검사가 작동하려면 모든 필수 소프트웨어를 미리 추가해야 합니다.
이러한 문제를 방지하려면 `libopenssl`을(를) `Dockerfile`와 함께 이미지에 추가하고 이미지를 다시 빌드해야 합니다.
에서도 `libexpat`같은 일이 발생할 수 있습니다.
2.8.2. 일반적인 문제
이미지 작업과 관련하여 알려진 몇 가지 문제는 다음과 같습니다.
-
레지스트리 또는 git 리포지토리에 액세스하기 위한 HTTPS 인증서는 사용자 정의 상태 파일을 사용하여 클라이언트에 배포해야 합니다.
-
현재 Docker를 사용한 SSH git 액세스는 지원되지 않습니다.
3. OS 이미지
OS 이미지는 Kiwi 빌드 시스템에 의해 생성됩니다. 출력 이미지는 사용자 정의가 가능하며 PXE 부팅, QCOW2, LiveCD 또는 기타 유형의 이미지일 수 있습니다.
Kiwi 빌드 시스템에 대한 자세한 정보는 Kiwi 문서를 참조하십시오.
3.1. 요구사항
Kiwi 이미지 빌드 기능은 Salt 클라이언트에서 SUSE Linux Enterprise Server 15 및 SUSE Linux Enterprise Server 12를 실행하는 경우 사용할 수 있습니다.
Kiwi 이미지 구성 파일 및 구성 스크립트는 다음 위치 중 한 곳에서 액세스할 수 있어야 합니다.
-
Git 리포지토리
-
HTTP 또는 HTTPS 호스팅 tar 아카이브
-
빌드 호스트 상의 로컬 디렉토리
git로 제공되는 완전한 Kiwi 리포지토리의 예는 https://github.com/SUSE/manager-build-profiles/tree/master/OSImage.을 참조하십시오.
|
Kiwi로 빌드된 OS 이미지를 실행하는 호스트에는 최소 1 GB의 RAM이 필요합니다. 디스크 공간은 이미지의 실제 크기에 따라 다릅니다. 자세한 내용은 기본 시스템의 문서를 참조하십시오. |
3.2. 이미지를 빌드할 때 HTTP/HTTPS 프록시를 통해 Git 리포지토리에 접근하기
빌드 호스트가 HTTP/HTTPS 프록시를 통해서만 접근할 수 있는 git 저장소에서 소스를 가져와야 할 때, Salt 상태에 의해 호출된 git 클라이언트가 항상 시스템 전체 프록시 설정(예: /etc/sysconfig/proxy 또는 환경 변수)을 인식하지 않기 때문에 빌드 중에 git 타임아웃이 발생할 수 있습니다.
비대화형 빌드를 위해 git이 프록시를 사용하도록 하려면 `/etc/gitconfig`를 http.proxy 항목과 함께 생성하십시오:
# /etc/gitconfig
[http]
proxy = http://proxy.example.com:3128
# or for HTTPS
[http]
proxy = https://proxy.example.com:3128
프록시가 인증을 요구하는 경우, URL에 자격 증명을 포함하는 대신 자격 증명 도우미를 선호하거나 자격 증명 저장소를 사용하십시오.
3.2.1. Salt으로 자동화하기
구성 관리와 같은 방식으로 빌드 호스트에서 `/etc/gitconfig`을 관리할 수 있습니다. Salt 상태 파일을 생성하고 구성 채널을 통해 빌드 호스트에 할당한 다음, SUSE Multi-Linux Manager UI에서 고상태를 적용하십시오.
시스템 사용자 정의 정보 필드에서 프록시 주소를 가져오려면 custom_info: 필러 접두사를 사용하십시오:
/etc/gitconfig:
file.managed:
- user: root
- group: root
- mode: '0644'
- contents: |
[http]
proxy = {{ salt['pillar.get']('custom_info:build_server:git_proxy', 'http://proxy.example.com:3128') }}
3.3. Kiwi 기반 이미지 임포트는 지원되지 않습니다.
기존의 레거시 Kiwi 및 KiwiNG 도구 외에도, SUSE Multi-Linux Manager에 컨테이너화된 Kiwi 이미지 빌드 시스템이 도입되었습니다.
3.3.1. 구성 채널 관리
관리자는 다음 필러 또는 사용자 정의 값을 사용하여 기본 동작을 재정의할 수 있습니다. 이들을 구성하려면 Web UI의 \menu:[시스템>사용자 정의 시스템 정보]로 이동하여 필요한 키를 생성합니다.
사용되는 빌드 시스템은 기본 OS 또는 특정 필러 값에 따라 달라집니다.
-
SLE 11 / SLE 12: 레거시 Kiwi v7
-
SLE 15: KiwiNG (v9 및 컨테이너화된 Kiwi 10)
관리자는 다음 필러 또는 사용자 정의 값을 사용하여 기본 동작을 재정의할 수 있습니다.
-
use_kiwi_ng: Kiwi 9 사용 강제, -
use_kiwi_container: 컨테이너화된 Kiwi 10 사용 강제. 이를 활성화하려면 값을 `1`로 설정합니다. -
use_bundle_build: 추가 KIWI 번들 빌드 아티팩트(PXE 파일이 포함된.install.tar및.raw.xz등)를 서버에 업로드합니다. 이를 활성화하려면 값을true(으)로 설정합니다.
3.3.2. 서버 구성
SLES 15 프로파일에는 Kiwi 9이 사용되는 반면, 기본 컨테이너 동작에는 Kiwi 10이 사용되므로 SUSE Linux Enterprise 15 프로파일용 컨테이너화된 빌드 호스트를 사용할 때는 특정 구성이 필요합니다.
SLES 15 프로파일에 올바른 버전이 사용되도록 하려면 kiwi_image 사용자 정의 정보 키를 다음 값으로 정의해야 합니다:
-
Key: kiwi_image -
Value:registry.suse.com/bci/kiwi:9
이 키가 설정되지 않은 경우 시스템은 최신 버전(예: registry.suse.com/bci/kiwi:10.2)을 기본값으로 사용하며, 이로 인해 SLES 15 프로파일에서 빌드 문제가 발생할 수 있습니다.
3.4. 빌드 호스트 생성
모든 종류의 이미지를 SUSE Multi-Linux Manager로 빌드하려면 빌드 호스트를 생성하고 구성해야 합니다. OS 이미지 빌드 호스트는 Salt 클라이언트가 SUSE Linux Enterprise Server 15 (SP2 이상) 또는 SUSE Linux Enterprise Server 12 (SP4 이상)에서 실행되고 있습니다.
이 절차는 빌드 호스트의 초기 구성을 설명합니다.
|
빌드 호스트의 운영 체제는 대상 이미지의 운영 체제와 일치해야 합니다. 예를 들어, SUSE Linux Enterprise Server 15 (SP2 이상) OS 버전에서 실행되는 빌드 호스트에서 SUSE Linux Enterprise Server 15 기반 이미지를 빌드해야 합니다. SUSE Linux Enterprise Server 12 SP5 또는 SUSE Linux Enterprise Server 12 SP4 OS 버전을 실행하는 빌드 호스트에서 SUSE Linux Enterprise Server 12 기반 이미지를 빌드합니다. 아키텍처 간 빌드는 불가능합니다. 예를 들어, Raspberry PI SUSE Linux Enterprise Server 15 SP3 이미지는 SUSE Linux Enterprise Server 15 SP3을 실행하는 Raspberry PI (aarch64 아키텍처) 빌드 호스트에서 빌드해야 합니다. |
페이지에서 빌드 호스트로 지정할 클라이언트를 선택합니다.
탭으로 이동하여
Add-on System Type>OS Image Build Host상자를 선택합니다.속성 업데이트로 확인합니다.
로 이동하고 빌드 호스트 버전에 따라 필요한 소프트웨어 채널을 활성화합니다.
SUSE Linux Enterprise Server 12 빌드 호스트에는 SUSE Multi-Linux Manager 클라이언트 도구(
SLE-Manager-Tools12-Pool및SLE-Manager-Tools12-Updates)가 필요합니다.SUSE Linux Enterprise Server 15 빌드 호스트에는 SUSE Linux Enterprise Server 모듈
SLE-Module-DevTools15-SP4-Pool및 `SLE-Module-DevTools15-SP4-Updates`이(가) 필요합니다.예약하고 확인을 클릭합니다.
Kiwi 및 모든 필수 패키지를 `Highstate`을 적용하여 설치합니다. 시스템 세부 사항 페이지에서 를 선택하고 고상태 적용을 클릭합니다. 또는 SUSE Multi-Linux Manager 서버 명령줄에서 고상태를 적용합니다:
salt '$your_client' state.highstate
3.4.1. SUSE Multi-Linux Manager 웹 서버 공인 인증서 RPM
빌드 호스트 프로비저닝은 SUSE Multi-Linux Manager 인증서 RPM을 빌드 호스트로 복사합니다. 이 인증서는 SUSE Multi-Linux Manager에서 제공하는 리포지토리에 접근하는 데 사용됩니다.
인증서는 mgr-package-rpm-certificate-osimage 패키지 스크립트에 의해 RPM으로 패키징됩니다.
패키지 스크립트는 새로운 SUSE Multi-Linux Manager 설치 중에 자동으로 호출됩니다.
spacewalk-certs-tools 패키지를 업그레이드할 때, 업그레이드 시나리오는 기본값을 사용하여 패키지 스크립트를 호출합니다.
그러나 인증서 경로가 변경되었거나 사용할 수 없는 경우, 업그레이드 절차가 완료된 후 `--ca-cert-full-path <path_to_certificate>`를 사용하여 패키지 스크립트를 수동으로 호출합니다.
3.4.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 Multi-Linux Manager SSL 인증서가 포함된 RPM 패키지를 지정하고, Kiwi 구성에 Listing 1. config.xml
|
3.5. OS 이미지에 대한 활성화 키 생성
이미지를 빌드할 때 OS 이미지가 리포지토리로 사용할 수 있는 채널과 연결된 활성화 키를 생성합니다.
활성화 키는 OS 이미지 빌드에 필수입니다.
|
OS 이미지를 빌드하려면 |
Web UI에서 를 선택합니다.
`Create Key`을(를) 클릭합니다.
Description,Key이름을 입력하고 드롭다운 상자를 사용하여 키와 연결할 `Base Channel`을(를) 선택합니다.활성화 키 생성으로 확인합니다.
자세한 내용은 활성화 키을 참조하십시오.
3.6. 이미지 저장소 생성
OS 이미지는 상당한 저장 공간을 요구할 수 있습니다.
기본적으로 이미지 저장소는 srv-www 볼륨을 사용하고 있습니다.
|
시스템, 가상 및 기타 이미지를 빌드하기 위해 사용되는 Kiwi 빌드 유형의 이미지 저장소는 아직 지원되지 않습니다. 이미지 파일은 `https://MANAGER-HOST/os-images/ORGANIZATION-ID/FILE-NAME`에서 다운로드할 수 있습니다. 정확한 위치는 이미지 세부 정보 페이지에서 확인할 수 있습니다. |
3.7. 이미지 프로파일 생성
Web UI를 사용하여 이미지 프로파일을 관리합니다.
이미지 프로파일을 생성하려면 에서 선택하고 생성을 클릭합니다.
Label필드에 `Image Profile`의 이름을 입력합니다.
Kiwi`을 `Image Type(으)로 사용합니다.이미지 저장소는 자동으로 선택됩니다.
Kiwi 구성 파일이 포함된 디렉토리에 `Config URL`을(를) 입력하십시오. 예를 들어, https://github.com/SUSE/manager-build-profiles#master:OSImage/SLE-Micro54.와 같은 git URI가 있습니다. 다른 옵션으로는 HTTP 또는 HTTPS로 호스팅되는 Tarball 또는 빌드 호스트의 로컬 디렉토리가 있습니다. 자세한 내용은 이 섹션의 끝에 있는 소스 형식 옵션을 참조하십시오.
필요한 경우 `Kiwi options`을(를) 입력합니다. Kiwi 구성 파일이 여러 프로파일을 지정하는 경우, `--profile <name>`을(를) 사용하여 활성 프로파일을 선택합니다. 다른 옵션에 대해서는 Kiwi 설명서를 참조하십시오.
`Activation Key`을 선택하십시오. 활성화 키는 프로파일을 사용하는 이미지가 올바른 채널 및 패키지에 할당되도록 보장합니다.
이미지 프로파일이 올바른 소프트웨어 채널 및 모든 패키지를 사용하도록 활성화 키를 이미지 프로파일과 연결합니다.
생성 버튼으로 확인합니다.
소스 형식 옵션
리포지토리에 대한 git/HTTP(S) URL
생성할 이미지의 소스가 포함된 공개 또는 비공개 git 리포지토리의 URL입니다. 리포지토리의 레이아웃에 따라 URL은 다음과 같을 수 있습니다:
https://github.com/SUSE/manager-build-profilesURL의
#문자 뒤에 브랜치를 지정할 수 있습니다. 이 예제에서는master브랜치를 사용합니다:https://github.com/SUSE/manager-build-profiles#master
:문자 뒤에 이미지 소스가 포함된 디렉토리를 지정할 수 있습니다. 이 예제에서는 `OSImage/POS_Image-JeOS6`를 사용합니다:https://github.com/SUSE/manager-build-profiles#master:OSImage/POS_Image-JeOS6HTTP(S) URL to the Tarball
웹 서버에서 호스팅되는 tar 아카이브(압축 또는 비압축)의 URL입니다.
https://myimagesourceserver.example.org/MyKiwiImage.tar.gz빌드 호스트 상의 디렉토리 경로
Kiwi 빌드 시스템 소스가 있는 디렉토리의 경로를 입력합니다. 이 디렉토리는 선택한 빌드 호스트에 존재해야 합니다.
/var/lib/Kiwi/MyKiwiImage
3.7.1. Kiwi 소스의 예제
Kiwi 소스는 최소한 config.xml`로 구성됩니다.
보통 `config.sh`와 `images.sh`도 함께 존재합니다.
소스에는 `root 하위 디렉토리 아래에 최종 이미지에 설치할 파일도 포함될 수 있습니다.
Kiwi 빌드 시스템에 대한 정보는 Kiwi 문서를 참조하십시오.
SUSE은 SUSE/manager-build-profiles 공개 GitHub 리포지토리에서 완전한 기능을 갖춘 이미지 소스의 예를 제공합니다.
<?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="venv-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.8. 이미지 빌드
Web UI을 사용하여 이미지를 빌드하거나 가져오는 방법은 두 가지가 있습니다. 를 선택하거나 목록에서 빌드 아이콘을 클릭하십시오.
를 선택하십시오.
기본 `latest`이(가) 아닌 다른 버전을 원하는 경우 다른 태그 이름을 추가합니다(컨테이너에만 적용됨).
Image Profile및 `Build Host`을(를) 선택합니다.
`Profile Summary`이(가) 빌드 필드 오른쪽에 표시됩니다. 빌드 프로파일을 선택하면 선택한 프로파일에 대한 자세한 정보가 여기에 표시됩니다.
빌드를 예약하려면 빌드 버튼을 클릭하십시오.
|
빌드 서버는 이미지 빌드 프로세스 중에 어떤 형태의 자동 마운팅도 실행할 수 없습니다. 해당되는 경우, Gnome 세션이 루트 사용자로 실행되지 않도록 하십시오. 자동 마운팅이 실행 중인 경우, 이미지 빌드는 성공적으로 완료되지만 이미지의 체크섬이 다르며, 이로 인해 오류가 발생합니다. |
이미지가 성공적으로 빌드된 후, 검사 단계가 시작됩니다. 검사 단계 동안 SUSE Multi-Linux Manager은 이미지에 대한 정보를 수집합니다:
-
이미지에 설치된 패키지 목록
-
이미지의 체크섬
-
이미지 유형 및 기타 이미지 세부 사항
|
빌드된 이미지 유형이 `PXE`인 경우, Salt 필라도 생성됩니다. 이미지 필라는 데이터베이스에 저장되며 Salt 서브시스템은 생성된 이미지에 대한 세부정보에 접근할 수 있습니다. 세부정보에는 이미지 파일이 위치한 곳, 제공된 이미지 체크섬, 네트워크 부팅에 필요한 정보 등이 포함됩니다. 생성된 열은 연결된 모든 클라이언트에서 사용할 수 있습니다. |
3.9. 문제 해결
이미지를 빌드하려면 여러 종속 단계가 필요합니다. 빌드가 오류가 발생할 때, Salt 상태 결과와 빌드 로그를 조사하면 오류의 원인을 파악하는 데 도움이 될 수 있습니다. 빌드가 오류가 발생할 때 이러한 점검을 수행할 수 있습니다:
-
빌드 호스트는 빌드 소스에 액세스할 수 있습니다.
-
빌드 호스트와 SUSE Multi-Linux Manager 서버 모두에 이미지를 위한 충분한 디스크 공간이 있습니다.
-
활성화 키에 연결된 올바른 채널이 있습니다.
-
사용된 빌드 소스가 유효합니다.
-
SUSE Multi-Linux Manager 공개 인증서가 포함된 RPM 패키지가 최신 상태이며 `/usr/share/susemanager/salt/images/rhn-org-trusted-ssl-cert-osimage-1.0-1.noarch.rpm`에서 사용할 수 있습니다. 공개 인증서 RPM을 새로 고치는 방법에 대한 자세한 내용은 빌드 호스트 생성을 참조하십시오.
3.10. 제한 사항
이 섹션에는 이미지 관련 작업을 할 때 알려진 몇 가지 문제가 포함되어 있습니다.
-
HTTP 소스 또는 git 리포지토리에 액세스하기 위해 사용되는 HTTPS 인증서는 사용자 정의 상태 파일을 통해 클라이언트에 배포하거나 수동으로 구성해야 합니다.
-
Kiwi 기반 이미지 임포트는 지원되지 않습니다.
4. 빌드 이미지 목록
사용 가능한 빌드 이미지를 나열하려면 을 선택하십시오. 모든 이미지의 목록이 표시됩니다.
이미지에 대해 표시되는 데이터에는 이미지 Name, Version, Revision 및 빌드 `Status`이(가) 포함됩니다.
이미지에 대한 가능한 패치 및 패키지 업데이트 목록과 함께 이미지 업데이트 상태를 확인할 수 있습니다.
OS 이미지의 경우 Name 및 Version 필드는 Kiwi 소스에서 유래하며 성공적인 빌드가 끝날 때 업데이트됩니다.
빌드 중 또는 오류가 발생한 빌드 후에 이 필드는 프로필 이름을 기반으로 한 임시 이름을 표시합니다.
`Revision`은(는) 각 성공적인 빌드 후에 자동으로 증가합니다. OS 이미지의 경우, 여러 수정이 저장소에 공존할 수 있습니다.
컨테이너 이미지의 경우, 저장소는 최신 수정만 보유합니다.
이전 수정(패키지, 패치 등)에 대한 정보는 보존되며, Show obsolete 체크박스를 사용하여 나열할 수 있습니다.
이미지에서 세부정보 버튼을 클릭하면 자세한 보기를 제공합니다. 자세한 보기에는 관련 패치의 정확한 목록, 이미지 내에 설치된 모든 패키지 목록 및 빌드 로그가 포함됩니다.
삭제 버튼을 클릭하면 목록에서 이미지가 삭제됩니다. 또한 관련 필라, OS 이미지 저장소의 파일 및 구식 수정이 삭제됩니다.
|
빌드가 성공한 후 상태를 검사한 경우에만 패치 및 패키지 목록을 사용할 수 있습니다. |