openstack_16.1_offline_registry_구성

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
openstack_16.1_offline_registry_구성 [2021/07/12 13:14] – 만듦 koovopenstack_16.1_offline_registry_구성 [2023/05/08 06:06] (현재) – [Shell Script] koov
줄 340: 줄 340:
 </code> </code>
 </WRAP> </WRAP>
 +
 +===== Shell Script =====
 +
 +위와같은 방법으로 로컬 레지스트리 구성 후 컨테이너 이미지를 자동으로 땡겨와서 로컬 레지스트리에 탑재 하는 스크립트 이다.
 +이 스크립트는 스토리지 엔진 컨테이너까지 포함시키므로 필요시 수정하여 사용하면 된다.
 +
 +<WRAP prewrap>
 +<code bash container_image_sync.sh>
 +#!/bin/bash
 +USERNAME="USERNAME"
 +PASSWORD="PASSWORD"
 +REGISTRY="registry.redhat.io"
 +REGISTRY_STORAGE="registry.connect.redhat.com"
 +NAMESPACE="rhosp-rhel8"
 +TAG="16.2"
 +LOCAL="registry:5000"
 +NAMEPREFIX="openstack-"
 +MODE=$1
 +
 +if [[ -z "${MODE}" ]]; then
 + echo "Usage: $0 <all|openstack|ceph|storage>";
 + exit;
 +fi
 +
 +# login
 +podman login --username ${USERNAME} --password ${PASSWORD} ${REGISTRY}
 +
 +# openstack image
 +if [[ "${MODE}" == "openstack" || "${MODE}" == "all" ]]; then
 + echo -e "\e[1;32m### Openstack container image\e[0m";
 + LIST=`podman search --limit 1000 "${REGISTRY}/${NAMESPACE}" | awk '{ print $2 }' | grep ${NAMEPREFIX} | grep -v beta | grep -v preview | sed "s/${REGISTRY}\///g" | grep -v NAME`
 +
 + ### 이미지 pull
 + for i in ${LIST[@]}; do echo -e "\e[1;32m${i}\e[0m"; podman pull ${REGISTRY}/${i}:${TAG} ; done
 + ### 이미지 로컬 레지스트리로 tag
 + for i in ${LIST[@]}; do echo -e "\e[1;32m${i}\e[0m"; podman tag ${REGISTRY}/${i}:${TAG} ${LOCAL}/${i}:${TAG} ; done
 + ### 이미지 로컬 레지스트리로 push
 + for i in ${LIST[@]}; do echo -e "\e[1;32m${i}\e[0m"; podman push ${LOCAL}/${i}:${TAG} --remove-signatures; done
 +fi
 +
 +### ceph image
 +if [[ "${MODE}" == "ceph" || "${MODE}" == "all" ]]; then
 + echo -e "\e[1;32m### Ceph Storage container image\e[0m";
 + podman pull ${REGISTRY}/openshift4/ose-prometheus-alertmanager:v4.6
 + podman pull ${REGISTRY}/rhceph/rhceph-4-dashboard-rhel8:4
 + podman pull ${REGISTRY}/rhceph/rhceph-4-rhel8
 + podman pull ${REGISTRY}/openshift4/ose-prometheus-node-exporter:v4.6
 + podman pull ${REGISTRY}/openshift4/ose-prometheus:v4.6
 +
 + podman tag ${REGISTRY}/openshift4/ose-prometheus-alertmanager:v4.6 ${LOCAL}/openshift4/ose-prometheus-alertmanager:v4.6
 + podman tag ${REGISTRY}/rhceph/rhceph-4-dashboard-rhel8:4 ${LOCAL}/rhceph/rhceph-4-dashboard-rhel8:4
 + podman tag ${REGISTRY}/rhceph/rhceph-4-rhel8 ${LOCAL}/rhceph/rhceph-4-rhel8
 + podman tag ${REGISTRY}/openshift4/ose-prometheus-node-exporter:v4.6 ${LOCAL}/openshift4/ose-prometheus-node-exporter:v4.6
 + podman tag ${REGISTRY}/openshift4/ose-prometheus:v4.6 ${LOCAL}/openshift4/ose-prometheus:v4.6
 +
 + podman push ${LOCAL}/openshift4/ose-prometheus-alertmanager:v4.6 --remove-signatures
 + podman push ${LOCAL}/rhceph/rhceph-4-dashboard-rhel8:4 --remove-signatures
 + podman push ${LOCAL}/rhceph/rhceph-4-rhel8 --remove-signatures
 + podman push ${LOCAL}/openshift4/ose-prometheus-node-exporter:v4.6 --remove-signatures
 + podman push ${LOCAL}/openshift4/ose-prometheus:v4.6 --remove-signatures
 +fi
 +
 +### purestorage image
 +if [[ "${MODE}" == "storage" || "${MODE}" == "all" ]]; then
 + echo -e "\e[1;32m### Openstack Storage container image\e[0m";
 + # login
 + podman login --username ${USERNAME} --password ${PASSWORD} ${REGISTRY_STORAGE}
 +
 + #podman pull registry.connect.redhat.com/purestorage/openstack-cinder-volume-pure-rhosp-16-2:latest
 + #podman tag registry.connect.redhat.com/purestorage/openstack-cinder-volume-pure-rhosp-16-2:latest ${LOCAL}/purestorage/openstack-cinder-volume-pure-rhosp-16-2:latest
 + podman pull ${REGISTRY_STORAGE}/purestorage/openstack-cinder-volume-pure-rhosp-16-2:latest
 + podman tag ${REGISTRY_STORAGE}/purestorage/openstack-cinder-volume-pure-rhosp-16-2:latest ${LOCAL}/purestorage/openstack-cinder-volume-pure-rhosp-16-2:latest
 + podman push ${LOCAL}/purestorage/openstack-cinder-volume-pure-rhosp-16-2:latest --remove-signatures
 +fi
 +
 +</code>
 +</WRAP>
 +
  
 ===== 참조링크 ===== ===== 참조링크 =====
  • openstack_16.1_offline_registry_구성.1626095688.txt.gz
  • 마지막으로 수정됨: 2021/07/12 13:14
  • 저자 koov