6.2. Open VSX をオンプレミスで実行


OpenShift Dev Spaces および OpenShift 環境と完全に統合されたオンプレミスの Eclipse Open VSX 拡張レジストリーをデプロイおよび設定するには、以下の手順に従います。セキュアな内部 Open VSX インスタンスをセットアップするには、OpenShift Dev Spaces ワークスペースまたは OpenShift CLI (oc) を使用する 2 つのセットアップパスのいずれかを選択します。これには、必要な 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.Create Namespace for OpenVSX タスクをワークスペースで実行します (Terminal Run Task… devfile 2.1.Create Namespace for OpenVSX)。クラスター上に openvsx という名前の新しいプロジェクトを作成する必要があります。

  3. Open VSX をデプロイします。

    2.4.1.Deploy Custom OpenVSX タスクをワークスペースで実行します (Terminal Run Task… devfile 2.4.1Deploy Custom OpenVSX)。このタスクは、Open VSX サーバーイメージを提供するように要求します。端末に registry.redhat.io/devspaces/openvsx-rhel9:3.23 と入力します。その結果、OpenShift コンソールには、PostgreSQL データベースOpen VSX サーバー の 2 つのコンポーネントを含む openvsx プロジェクトが表示されます。さらに、Open VSX UI には、OpenShift クラスターの公開されているルート経由でアクセスできる必要があります。

    ヒント

    すべてのデプロイメント情報は、OVSX_PAT_BASE64 などの一部のデフォルト値を持つ deploy/openshift/openvsx-deployment-no-es.yml ファイルで説明されています。

  4. PAT を使用する Open VSX ユーザーをデータベースに追加します。

    2.5.Add OpenVSX user with PAT to the DB タスクをワークスペースで実行します (Terminal Run Task… devfile 2.5.Add OpenVSX user with PAT to the DB)。このコマンドは、Open VSX ユーザー名とユーザー PAT を要求します。Enter をクリックしてデフォルト値を使用できます。

    重要

    ユーザー PAT は、デプロイメントファイルで指定された OVSX_PAT_BASE64 のデコードされた値と一致する必要があります。OVSX_PAT_BASE64 が更新されている場合は、新しいトークンのデコードされた値をユーザー PAT として使用します。

  5. 内部 Open VSX を使用するように OpenShift Dev Spaces を設定します。

    2.6.Configure Che to use the internal Open VSX registry タスクをワークスペースで実行します (Terminal Run Task… devfile 2.6。Configure Che to use the internal OpenVSX registry)。CheCluster カスタムリソースにパッチを適用し、拡張レジストリーに指定された Open VSX URL を使用するように設定を更新します。

  6. .vsix ファイルから拡張を公開します。

    最初は、Open VSX レジストリーは拡張機能を提供しません。openvsx-server Pod が実行され、Ready 状態になると、拡張機能をレジストリーに公開できます。2.8Publish a Visual Studio Code Extension from a VSIX file コマンドは、.vsix ファイルからローカルの Open VSX レジストリーに拡張機能を直接公開します。拡張の名前 namespace 名と .vsix ファイルへのパスを指定するように求められます。

  7. エクステンションの一覧を公開します。

    2.9.Publish list of Visual Studio Code Extensions コマンドは、ダウンロード URL に基づいて、Microsoft Visual Studio Code 拡張機能の定義済みリストを内部 Open VSX レジストリーに公開するプロセスを自動化します。

    ヒント

    このコマンドは、公開される各拡張機能の .vsix ファイルの URL をリストする deploy/openshift/extensions.txt ファイルから読み取ります。拡張機能を Open VSX に公開するには、必要に応じて extensions.txt ファイルを更新してから、2.9.Publish list of Visual Studio Code Extensions タスクをワークスペースから実行します (Terminal Run Task… devfile 2.9.Publish list of Visual Studio Code Extensions)。

  8. OpenShift Dev Spaces が内部 Open VSX を使用していることを確認します。

    任意のワークスペースを起動し、ワークスペース IDE の拡張機能ビューで、または OpenVSX OpenShift プロジェクトで internal ルートを開いて、使用可能な拡張機能を確認します。

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 Pod を見つけます。

    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

    ユーザー PAT を OpenVSX データベースに挿入します。

    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 の設定に関する詳細な手順は、「Open VSX レジストリー URL」 を参照してください。

  6. ovsx コマンドで Visual Studio Code 拡張機能を公開します。

    注記

    最初は、Open VSX レジストリーは拡張機能を提供しません。

    すべての設定が完了したら、次のステップとして openvsx-server コンテナー内から Visual Studio Code 拡張機能を公開します。これを行うには、拡張機能の namespace 名 (公開に使用) と .vsix 拡張機能パッケージのダウンロード URL の 2 つの情報が必要です。この情報を取得したら、次のコマンドを実行してエクステンションを公開します。

    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. 拡張機能 namespace を作成します。

      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 では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat