목차

Redhat Openstack 설치 시 Docker local registry 구성

레지스트리 소프트웨어 설치

# yum install docker-distribution -y

/etc/docker-distribution/registry/config.yml 파일을 편집하고 ASSET_SERVER IP 주소를 사용하도록 레지스트리를 설정하십시오. 예를 들어, ASSET_SERVER가 192.168.24.250 IP 주소에 사용 하는 경우 파일에 다음이 포함됩니다.

http:
    addr: 192.168.24.250:8787

포트를 8787로 그대로두고이 구성 파일을 저장하십시오.

간혹 포트를 5000으로 설정하라고 되어있는 문서가 있는데 5000번 포트는 실제 언더클라우드에서 다른 용도로 사용중인경우가 많으므로 8787포트를 사용하는것을 권장함

레지스트리를 시작하고 활성화하십시오.

# systemctl start docker-distribution
# systemctl enable docker-distribution

필요한 경우 방화벽에서 레지스트리 포트를여십시오 (예 : 방화벽이 사용 된 경우).

# firewall-cmd --add-port=8787/tcp --permanent
# firewall-cmd --reload

Director 명령 행 도구 설치

ASSET_SERVER 든 별도의 다운로드 서버이든 외부 연결이있는 호스트에 디렉터 용 명령 줄 도구를 설치합니다. 서버가 필요한 OpenStack 저장소에 등록되어 있는지 확인하십시오 (이전 섹션 참조).

명령 행 도구를 설치하십시오.

# yum install python-tripleoclient -y

Docker 설치 및 구성

또한 docker외부 연결을 통해 호스트에 설치 및 구성해야 합니다. 이는 director의 명령 줄 도구가 docker일부 기능을 필요로 하기 때문 입니다.

docker패키지를 설치하십시오 :

# yum install docker -y

docker ASSET SERVER를 안전하지 않은 레지스트리로 사용하도록 구성 하십시오.

일반적으로 사전 구성되어있으므로 아래 작업은 필요하지 않을수도 있음. 해당 파일 내용 확인필요.

# echo 'INSECURE_REGISTRY="--insecure-registry 192.168.24.250:8787"' >> /etc/sysconfig/docker

시작 및 활성화 docker:

# systemctl start docker
# systemctl enable docker

이미지 가져오기

이 프로세스를 위해 Red Hat Container Catalog에서 최신 버전의 이미지를 가져 와서 자산 서버로 푸시합니다. 외부 연결이있는 서버에서 다음 명령을 실행하십시오.

최신 버전의 태그를 확인하십시오.

# TAG=$(openstack overcloud container image tag discover \
  --image registry.access.redhat.com/rhosp12/openstack-base:latest \
  --tag-from-label version-release) ; echo $TAG

별다른 작업이 필요하지 않음

최신 버전의 이미지 태그를 다시보고하여에 저장합니다 ''$TAG''

모든 컨테이너 이미지를 가져 와서 레지스트리로 푸시하십시오.

# docker search registry.access.redhat.com/rhosp12 | awk '{print $2}' | grep ^registry.access.redhat.com | while read IMAGE_NAME
do
  docker pull ${IMAGE_NAME}:${TAG}
  IMAGE_PATH=$(echo ${IMAGE_NAME} | cut -f2- -d/)
  docker tag ${IMAGE_NAME}:${TAG} 192.168.24.250:8787/${IMAGE_PATH}:${TAG}
  docker push 192.168.24.250:8787/${IMAGE_PATH}:${TAG}
done

참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.

# ASSET_SERVER=192.168.24.250
# docker search registry.access.redhat.com/rhosp13| awk '{print $2}' | grep ^registry.access.redhat.com | while read IMAGE_NAME
do
  TAG=$(openstack overcloud container image tag discover --image ${IMAGE_NAME} --tag-from-label {version}-{release})
  echo "Pulling ${IMAGE_NAME}:${TAG} ..."
  docker pull ${IMAGE_NAME}:${TAG}
  IMAGE_PATH=$(echo ${IMAGE_NAME} | cut -f2- -d/)
  docker tag ${IMAGE_NAME}:${TAG} ${ASSET_SERVER}:8787/${IMAGE_PATH}:${TAG}
  docker tag ${ASSET_SERVER}:8787/${IMAGE_PATH}:${TAG} ${ASSET_SERVER}:8787/${IMAGE_PATH}:latest
  docker push ${ASSET_SERVER}:8787/${IMAGE_PATH}
done

참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.

Red Hat Ceph Storage를 사용하는 경우 ceph컨테이너 의 이미지를 당겨 레지스트리로 푸시하십시오.

# docker pull registry.access.redhat.com/rhceph/rhceph-2-rhel7:latest
# docker tag registry.access.redhat.com/rhceph/rhceph-2-rhel7:latest 192.168.24.250:8787/rhceph/rhceph-2-rhel7:latest
# docker push 192.168.24.250:8787/rhceph/rhceph-2-rhel7:latest

참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.

# ASSET_SERVER=192.168.24.250
# docker pull registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest
# docker tag registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest ${ASSET_SERVER}:8787/rhceph/rhceph-3-rhel7:latest
# docker push ${ASSET_SERVER}:8787/rhceph/rhceph-3-rhel7:latest

참고 : 192.168.24.250을 자산 서버 IP로 바꾸십시오.

이 명령이 실행을 완료 한 후 자산 서버는 필요한 모든 컨테이너 이미지를 호스팅합니다.

컨테이너 이미지를위한 환경 파일 생성

오버 클라우드 배포 중에 각 노드는 선택한 레지스트리에서 OpenStack Platform 이미지를 가져옵니다. 이 레지스트리 정보를 openstack overcloud container image prepare 다시 사용하여 환경 파일로 작성 하십시오.

언더 클라우드에서 자산 서버의 이미지 위치가 포함 된 환경 파일을 작성하십시오. 예를 들면 다음과 같습니다.

$ source ~/stackrc
(undercloud) $ openstack overcloud container image prepare \
 --namespace=<ASSET_SERVER_IP>:8787/rhosp12 \
 --prefix=openstack- \
 --tag=<TAG> \
 --output-env-file=/home/stack/templates/overcloud_images.yaml
  $ source ~/stackrc
(undercloud) $ openstack overcloud container image prepare \
    --namespace=<ASSET_SERVER_IP>:8787/rhosp13 \
    --prefix=openstack- \
    --tag-from-label {version}-{release} \
    --output-env-file=/home/stack/templates/overcloud_images.yaml

출처