6.2. 온프레미스 Open VSX 실행


아래 지침에 따라 OpenShift Dev Spaces 및 OpenShift 환경과 완전히 통합된 온프레미스 Eclipse Open VSX 확장 레지스트리를 배포하고 구성합니다. 두 가지 설정 경로 중 하나를 선택합니다. OpenShift Dev Spaces 작업 공간 사용 또는 OpenShift CLI(oc)를 사용하여 보안 내부 Open VSX 인스턴스를 설정할 수 있습니다. 여기에는 필요한 OpenShift 프로젝트 생성, Open VSX 구성 요소 배포, 확장 프로그램 게시 및 OpenShift Dev Spaces 레지스트리 통합이 포함됩니다.

6.2.1. OpenShift Dev Spaces 인스턴스 사용

사전 요구 사항

  • 클러스터 관리자로 로그인해야 합니다.

프로세스

  1. Open VSX 리포지토리를 사용하여 작업 영역을 시작합니다.

    다음 Eclipse Open VSX 리포지토리 를 사용하여 작업 공간을 생성합니다.

    주의

    .devfile.yaml 에는 IBM Power(ppc64le) 또는 IBM Z(s390x) 아키텍처를 지원하지 않는 elasticsearch 구성 요소가 포함되어 있습니다. 이러한 아키텍처에서 작업 공간을 성공적으로 시작하는 유일한 옵션은 devfile에서 이 구성 요소를 제거하는 것입니다. 또는 작업 영역을 시작하지 않고 Open VSX 를 별도로 실행하는 방법을 설명하는 OpenShift CLI 툴 설명서를 참조할 수 있습니다.

    작은 정보

    필요한 모든 명령을 포함한 환경은 .devfile.yaml 파일에 정의됩니다.

  2. Open VSX용 새 OpenShift 프로젝트를 만듭니다.

    2.1을 실행합니다. 작업 공간(Terminal Run Task…​ devfile 2.1에서 OpenVSX 작업의 네임스페이스를 생성합니다. OpenVSX의 네임스페이스 생성. openvsx 라는 새 프로젝트를 클러스터에 생성해야 합니다.

  3. Open VSX를 배포합니다.

    2.4.1을 실행합니다. 작업 공간(Terminal Run Task…​ devfile 2.4.1에 사용자 정의 OpenVSX 작업을 배포합니다. 사용자 지정 OpenVSX를 배포합니다. 이 작업에서는 Open VSX 서버 이미지를 제공하도록 요청합니다. 터미널에 registry.redhat.io/devspaces/openvsx-rhel9:3.23 을 입력합니다. 결과적으로 OpenShift 콘솔에서 PostgreSQL 데이터베이스Open VSX 서버 두 가지 구성 요소가 있는 openvsx 프로젝트를 찾을 수 있습니다. 또한 Open VSX UI는 OpenShift 클러스터의 노출된 경로를 통해 액세스할 수 있어야 합니다.

    작은 정보

    모든 배포 정보는 OVSX_PAT_BASE64 와 같은 몇 가지 기본값이 있는 deploy/openshift/openvsx-deployment-no-es.yml 파일에 설명되어 있습니다.

  4. PAT가 있는 Open VSX 사용자를 데이터베이스에 추가합니다.

    2.5를 실행합니다. PAT를 포함하는 OpenVSX 사용자를 작업 공간(Terminal Run Task…​ devfile 2.5)의 DB 작업에 추가합니다. PAT를 사용하는 OpenVSX 사용자를 DB에 추가합니다. 명령은 Open VSX 사용자 이름 및 사용자 PAT를 요청합니다. Enter를 클릭하면 기본값을 사용할 수 있습니다.

    중요

    사용자 PAT는 배포 파일에 지정된 OVSX_PAT_BASE64 의 디코딩된 값과 일치해야 합니다. OVSX_PAT_BASE64 가 업데이트된 경우 새 토큰의 디코딩된 값을 사용자 PAT로 사용합니다.

  5. 내부 Open VSX를 사용하도록 OpenShift Dev Spaces를 구성합니다.

    2.6을 실행합니다. 작업 공간(Terminal Run Task…​ devfile 2.6에서 내부 Open VSX 레지스트리 작업을 사용하도록 Che를 구성합니다. 내부 OpenVSX 레지스트리를 사용하도록 Che를 구성합니다. CheCluster 사용자 정의 리소스에 패치를 적용하여 확장 레지스트리에 지정된 Open VSX URL을 사용하도록 구성을 업데이트합니다.

  6. .vsix 파일의 확장자를 게시합니다.

    처음에 Open VSX 레지스트리는 확장을 제공하지 않습니다. openvsx-server Pod가 실행 중이고 Ready 상태에서 레지스트리에 확장 기능을 게시할 수 있습니다. 2.8입니다. VSIX 파일의 Visual Studio Code Extension을 게시 명령은 .vsix 파일에서 직접 로컬 Open VSX 레지스트리에 확장자를 게시합니다. 확장 프로그램의 네임스페이스 이름과 .vsix 파일의 경로를 입력하라는 메시지를 표시합니다.

  7. 확장 목록을 게시합니다.

    2.9입니다. Visual Studio Code Extensions 명령의 게시 목록은 내부 Open VSX 레지스트리에 다운로드 URL을 기반으로 사전 정의된 Microsoft Visual Studio Code 확장 목록을 게시하는 프로세스를 자동화합니다.

    작은 정보

    명령은 게시할 각 확장자에 대한 .vsix 파일의 URL을 나열하는 deploy/openshift/extensions.txt 파일에서 읽습니다. 확장 기능을 Open VSX에 게시하려면 필요에 따라 extensions.txt 파일을 업데이트한 다음 2.9를 실행합니다. 작업 공간의 Visual Studio Code Extensions 작업 목록 게시: Terminal Run Task…​ devfile 2.9. Visual Studio Code Extensions의 게시.

  8. OpenShift Dev Spaces에서 내부 Open VSX를 사용하는지 확인합니다.

    모든 작업 영역을 시작하고 OpenVSX OpenShift 프로젝트에서 내부 경로를 열어 작업 공간 IDE의 확장 보기에서 사용 가능한 확장을 확인합니다.

6.2.2. OpenShift CLI(oc) 툴 사용

사전 요구 사항

  • 설치된 oc 툴입니다.
  • OpenShift Dev Spaces가 클러스터 관리자로 배포된 OpenShift 클러스터에 로그인합니다.

    작은 정보

    $ oc login https://<openshift_dev_spaces_fqdn> --username=<my_user>

프로세스

  1. Open VSX용 새 OpenShift 프로젝트를 만듭니다.

    oc new-project openvsx
    Copy to Clipboard Toggle word wrap
  2. Open VSX를 배포합니다.

    openvsx-deployment-no-es.yml 파일을 파일 시스템에 저장한 다음 해당 디렉터리로 이동한 후 명령을 실행하여 Open VSX를 배포합니다.

    oc process -f openvsx-deployment-no-es.yml \
       -p OPENVSX_SERVER_IMAGE=registry.redhat.io/devspaces/openvsx-rhel9:3.23 \
       | oc apply -f -
    Copy to Clipboard Toggle word wrap
  3. openvsx 네임스페이스의 모든 pod가 실행 중이고 준비되었는지 확인합니다. 모든 Pod가 준비되는 데 몇 분이 걸릴 수 있습니다. 다음 명령을 실행합니다.

    oc get pods -n openvsx \
      -o jsonpath='{range .items[*]}{@.metadata.name}{"\t"}{@.status.phase}{"\t"}{.status.containerStatuses[*].ready}{"\n"}{end}'
    Copy to Clipboard Toggle word wrap
  4. PAT가 있는 Open VSX 사용자를 데이터베이스에 추가합니다.

    PostgreSQL 포드 찾기:

    export POSTGRESQL_POD_NAME=$(oc get pods -n openvsx \
       -o jsonpath="{.items[*].metadata.name}" | tr ' ' '\n' | grep '^postgresql' | head -n 1)
    Copy to Clipboard Toggle word wrap

    OpenVSX 데이터베이스에 사용자 이름을 삽입합니다.

    oc exec -n openvsx "$POSTGRESQL_POD_NAME" -- bash -c \
       "psql -d openvsx -c \"INSERT INTO user_data (id, login_name, role) VALUES (1001, 'eclipse-che', 'privileged');\""
    Copy to Clipboard Toggle word wrap

    OpenVSX 데이터베이스에 사용자 PAT를 삽입합니다.

    oc exec -n openvsx "$POSTGRESQL_POD_NAME" -- bash -c \
       "psql -d openvsx -c \"INSERT INTO personal_access_token (id, user_data, value, active, created_timestamp, accessed_timestamp, description) VALUES (1001, 1001, 'eclipse_che_token', true, current_timestamp, current_timestamp, 'extensions publisher');\""
    Copy to Clipboard Toggle word wrap
  5. 내부 Open VSX를 사용하도록 OpenShift Dev Spaces를 구성합니다.

    export CHECLUSTER_NAME="$(oc get checluster --all-namespaces -o json | jq -r '.items[0].metadata.name')" &&
    export CHECLUSTER_NAMESPACE="$(oc get checluster --all-namespaces -o json | jq -r '.items[0].metadata.namespace')" &&
    export OPENVSX_ROUTE_URL="$(oc get route internal -n openvsx -o jsonpath='{.spec.host}')" &&
    export PATCH='{"spec":{"components":{"pluginRegistry":{"openVSXURL":"https://'"$OPENVSX_ROUTE_URL"'"}}}}' &&
    oc patch checluster "${CHECLUSTER_NAME}" --type=merge --patch "${PATCH}" -n "${CHECLUSTER_NAMESPACE}"
    Copy to Clipboard Toggle word wrap
    작은 정보

    OpenShift Dev Spaces에서 Open VSX 레지스트리 URL을 구성하는 방법에 대한 자세한 내용은 6.3절. “VSX 레지스트리 URL 열기” 을 참조하십시오.

  6. ovsx 명령을 사용하여 Visual Studio Code 확장을 게시합니다.

    참고

    처음에 Open VSX 레지스트리는 확장을 제공하지 않습니다.

    모든 항목이 구성되면 다음 단계는 openvsx-server 컨테이너 내부에서 Visual Studio Code 확장을 게시하는 것입니다. 이렇게 하려면 확장 네임스페이스 이름(게시용으로 사용되는)의 두 가지 정보, .vsix 확장 패키지의 다운로드 URL이 필요합니다. 이 정보가 있으면 다음 명령을 실행하여 확장 기능을 게시합니다.

    1. Open VSX 서버를 실행하는 Pod의 이름을 검색합니다.

      export OVSX_POD_NAME=$(oc get pods -n openvsx -o jsonpath="{.items[*].metadata.name}" | tr ' ' '\n' | grep ^openvsx-server)
      Copy to Clipboard Toggle word wrap
    2. .vsix 확장을 다운로드합니다.

      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "wget -O /tmp/extension.vsix EXTENSION_DOWNLOAD_URL "
      Copy to Clipboard Toggle word wrap
    3. 확장 네임스페이스를 생성합니다.

      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "ovsx create-namespace EXTENSION_NAMESPACE_NAME" || true
      Copy to Clipboard Toggle word wrap
    4. 확장을 게시합니다.

      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "ovsx publish /tmp/extension.vsix"
      Copy to Clipboard Toggle word wrap
    5. 다운로드한 확장자 파일을 삭제합니다.

      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "rm /tmp/extension.vsix"
      Copy to Clipboard Toggle word wrap
      작은 정보

      예: redhat.vscode-yaml 확장 버전 1.18.0을 게시합니다.

      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "wget -O /tmp/extension.vsix https://open-vsx.org/api/redhat/vscode-yaml/1.18.0/file/redhat.vscode-yaml-1.18.0.vsix " &&
      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "ovsx create-namespace redhat" || true &&
      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "ovsx publish /tmp/extension.vsix" &&
      oc exec -n openvsx "${OVSX_POD_NAME}" -- bash -c "rm /tmp/extension.vsix"
      Copy to Clipboard Toggle word wrap
  7. Open VSX 확장 레지스트리를 확인합니다.

    OPENVSX_ROUTE_URL 환경 변수에 정의된 URL로 이동하여 게시된 확장 프로그램 목록을 확인합니다.

6.2.3. Open VSX 서비스에 대한 내부 액세스 설정

공개 경로를 사용하여 Open VSX 레지스트리를 참조하는 것 외에도 OpenShift Dev Spaces를 구성하여 내부 클러스터 서비스 라우팅을 설정할 수도 있습니다. 이 방법은 트래픽을 클러스터 내에서 제한하여 공용 노출을 방지하여 향상된 보안을 제공합니다.

프로세스

내부 서비스 라우팅 단계:

  1. 공개 경로를 제거합니다.

    Open VSX 레지스트리와 연결된 공용 경로를 삭제하여 외부 액세스를 제한합니다.

    oc delete route internal -n openvsx
    Copy to Clipboard Toggle word wrap
  2. 내부 Open VSX 서비스 URL을 설정합니다.

    내부 클러스터 서비스 DNS를 사용하도록 CheCluster 사용자 정의 리소스를 업데이트합니다.

    export CHECLUSTER_NAME="$(oc get checluster --all-namespaces -o json | jq -r '.items[0].metadata.name')" &&
    export CHECLUSTER_NAMESPACE="$(oc get checluster --all-namespaces -o json | jq -r '.items[0].metadata.namespace')" &&
    export PATCH='{"spec":{"components":{"pluginRegistry":{"openVSXURL":"http://openvsx-server.openvsx.svc:8080"}}}}' &&
    oc patch checluster "${CHECLUSTER_NAME}" --type=merge --patch "${PATCH}" -n "${CHECLUSTER_NAMESPACE}"
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat