4.6. Satellite 서버를 레지스트리로 사용
Red Hat Satellite 6는 레지스트리 동기화 기능을 제공합니다. 이를 통해 여러 이미지를 Satellite 서버로 가져와 애플리케이션 라이프사이클의 일부로 관리할 수 있습니다. Satellite는 다른 컨테이너 활성화 시스템이 사용할 레지스트리 역할도 합니다. 컨테이너 이미지 관리 방법에 대한 자세한 내용은 Red Hat Satellite 6 Content Management Guide의 "Managing Container Images"를 참조하십시오.
다음 절차의 예제에서는 Red Hat Satellite 6용 hammer 명령행 툴과 ACME라는 조직을 사용합니다. 이 조직을 실제로 사용하는 Satellite 6 조직으로 대체하십시오.
절차
로컬 레지스트리로 이미지를 가져올 템플릿을 생성합니다.
$ source ~/stackrc (undercloud) $ openstack overcloud container image prepare \ --namespace=rhosp13 \ --prefix=openstack- \ --output-images-file /home/stack/satellite_images-
선택적 서비스에 대한 환경 파일을 포함하려면
-e옵션을 사용합니다. -
r
옵션을사용하여 사용자 지정 역할 파일을 포함합니다. -
Ceph Storage를 사용하는 경우 Ceph Storage 컨테이너 이미지 위치를 정의하는 추가 매개변수를 포함합니다.
--set ceph_namespace,--set ceph_image,--set ceph_tag.
참고openstack overcloud container image prepare명령의 이 버전은registry.redhat.io의 레지스트리를 대상으로 이미지 목록을 생성합니다. 이후 단계에서 사용한openstack overcloud container image prepare명령과 다른 값이 사용됩니다.-
선택적 서비스에 대한 환경 파일을 포함하려면
-
이렇게 하면 컨테이너 이미지 정보가 포함된
satellite_images라는 파일이 생성됩니다. 이 파일을 사용하여 컨테이너 이미지를 Satellite 6 서버에 동기화합니다. satellite_images파일에서 YAML 관련 정보를 제거하고 이미지 목록만 포함하는 플랫 파일로 변환합니다. 다음sed명령은 다음을 수행합니다.(undercloud) $ awk -F ':' '{if (NR!=1) {gsub("[[:space:]]", ""); print $2}}' ~/satellite_images > ~/satellite_images_names그러면 Satellite 서버로 가져온 이미지 목록이 제공됩니다.
-
satellite_images_names파일을 Satellite 6hammer툴이 포함된 시스템으로 복사합니다. 또는 Hammer CLI 가이드의 지침에 따라hammer툴을 언더클라우드에 설치합니다. 다음
hammer명령을 실행하여 Satellite 조직에 새 제품(OSP13 Containers)을 생성합니다.$ hammer product create \ --organization "ACME" \ --name "OSP13 Containers"이 사용자 지정 제품에 이미지를 저장합니다.
제품에 기본 컨테이너 이미지를 추가합니다.
$ hammer repository create \ --organization "ACME" \ --product "OSP13 Containers" \ --content-type docker \ --url https://registry.redhat.io \ --docker-upstream-name rhosp13/openstack-base \ --name basesatellite_images파일에서 오버클라우드 컨테이너 이미지를 추가합니다.$ while read IMAGE; do \ IMAGENAME=$(echo $IMAGE | cut -d"/" -f2 | sed "s/openstack-//g" | sed "s/:.*//g") ; \ hammer repository create \ --organization "ACME" \ --product "OSP13 Containers" \ --content-type docker \ --url https://registry.redhat.io \ --docker-upstream-name $IMAGE \ --name $IMAGENAME ; done < satellite_images_names컨테이너 이미지를 동기화합니다.
$ hammer product synchronize \ --organization "ACME" \ --name "OSP13 Containers"Satellite 서버가 동기화를 완료할 때까지 기다립니다.
참고설정에 따라
hammer에서 Satellite 서버 사용자 이름과 암호가 필요할 수 있습니다.hammer를 구성한 후 구성 파일을 사용하여 자동으로 로그인할 수 있습니다. Hammer CLI Guide의 "Authentication" 섹션을 참조하십시오.- Satellite 6 서버에서 콘텐츠 뷰를 사용하는 경우 새 콘텐츠 뷰 버전을 생성하여 이미지를 통합할 수 있습니다.
base이미지에 사용할 수 있는 태그를 확인합니다.$ hammer docker tag list --repository "base" \ --organization "ACME" \ --product "OSP13 Containers"OpenStack Platform 컨테이너 이미지에 대한 태그가 표시됩니다.
언더클라우드로 돌아가서 Satellite 서버에서 이미지에 대한 환경 파일을 생성합니다. 다음은 환경 파일을 생성하기 위한 예제 명령입니다.
(undercloud) $ openstack overcloud container image prepare \ --namespace=satellite6.example.com:5000 \ --prefix=acme-osp13_containers- \ --tag-from-label {version}-{release} \ --output-env-file=/home/stack/templates/overcloud_images.yaml참고이 버전의
openstack overcloud container prepare명령은 Satellite 서버를 대상으로 합니다. 이전 단계에서 사용한openstack overcloud container image prepare명령과 다른 값을 사용합니다.이 명령을 실행할 때 다음 데이터를 포함합니다.
--namespace- Satellite 서버에 있는 레지스트리의 URL 및 포트입니다. Red Hat Satellite의 레지스트리 포트는 5000입니다. 예를 들면--namespace=satellite6.example.com:5000입니다.참고Red Hat Satellite 버전 6.10을 사용하는 경우 포트를 지정할 필요가 없습니다. 기본 포트
443이 사용됩니다. 자세한 내용은 " RHOSP13 배포를 Red Hat Satellite 6.10에 어떻게 적용할 수 있습니까?"에서 참조하십시오.--prefix=- 접두사는 소문자를 사용하고 밑줄에 공백을 대체하는 라벨의 Satellite 6 규칙을 기반으로 합니다. 접두사는 콘텐츠 뷰 사용 여부에 따라 달라집니다.-
콘텐츠 뷰를 사용하는 경우 구조는
[org]-[environment]-[content view]-[product]-입니다. 예를 들면acme-production-myosp13-osp13_containers-입니다. -
콘텐츠 뷰를 사용하지 않는 경우 구조는
[org]-[product]-입니다. 예를 들면acme-osp13_containers-입니다.
-
콘텐츠 뷰를 사용하는 경우 구조는
-
--tag-from-label {version}-{release}- 각 이미지의 최신 태그를 식별합니다. -
-e- 옵션 서비스의 환경 파일을 포함합니다. -
-R -사용자 지정 역할 파일을 포함합니다. --set ceph_namespace,--set ceph_image,--set ceph_tag- Ceph Storage를 사용하는 경우 추가 매개 변수를 포함하여 Ceph Storage 컨테이너 이미지 위치를 정의합니다. 이제ceph_image에는 Satellite별 접두사가 포함됩니다. 이 접두사는--prefix옵션과 동일한 값입니다. 예를 들면 다음과 같습니다.--set ceph_image=acme-osp13_containers-rhceph-3-rhel7이렇게 하면 오버클라우드에서 Satellite 명명 규칙을 사용하여 Ceph 컨테이너 이미지를 사용합니다.
-
overcloud_images.yaml파일에는 Satellite 서버에 이미지 위치가 포함되어 있습니다. 배포를 통해 이 파일을 포함합니다.
레지스트리 구성이 준비되었습니다.