メインコンテンツ

Polyspace Access ETL サービスと Web Server サービスが開始しない

問題

Polyspace® Access™ サービスを開始してしばらくすると、[ETL] サービスと [Web Server] サービスが停止する。Polyspace Access への接続を試行すると、Web ブラウザーに HTTP 403 エラー メッセージが表示されることがあります。

考えられる原因: Hyper-V ネットワーク構成でローカル ホスト名を解決できない

Windows® で Polyspace Access をバーチャル マシン (VM) 内部にインストールしている場合、その VM は Hyper-V により管理されます。ネットワーク構成によっては、Hyper-V がローカル ホスト名を解決できないことがあります。[Polyspace Access ETL] サービスと [Polyspace Access Web Server] サービスは、これらのホスト名を使用して指定したホストに接続できません。

インターネットに接続しているマシンで Hyper-V がホスト名 myHostname を解決できるかどうかをテストするには、コマンド ラインで以下を入力します。

docker run --rm -it alpine ping myHostname
Hyper-V がホスト名を解決できない場合にはエラー メッセージが表示されます。

解決法

--hostname オプションを使用せずに admin-docker-agent バイナリを停止してから再始動します。

  • 信頼できるネットワークに接続している場合、または HTTPS プロトコルを使用しない場合は、次のようにします。

    1. コマンド ラインに以下を入力します。

      docker stop admin
      
      admin-docker-agent --restart-gateway

    2. [Cluster Admin] Web インターフェイスで [Restart Apps] をクリックします。

  • HTTPS プロトコルを使用する場合は、サービスが実行されているクラスター オペレーター ノードの IP アドレスを含むサブジェクト代替名 (SAN) を使用して証明書を生成します。

    1. この構成ファイルをテキスト エディターにコピーし、openssl.cnf という名前でマシンに保存します。

       構成ファイル

      hostName は、Polyspace Access をホストするサーバーのホスト名です。fullyQualifiedDomainName は、対応する完全修飾ドメイン名です。nodeIPAddress は、admin-docker-agent バイナリを実行するノードの IP アドレスです。

      openssl.cnf [ req_distinguished_name ] セクション内の他のフィールドの値を編集する必要はありません。これらのフィールドの値を更新しても、構成には影響しません。

    2. [Cluster Dashboard][Configure Nodes] をクリックします。[Hostname] フィールドにリストされている IP アドレスは、openssl.cnf ファイルの nodeIPAddress に対応しています。複数のノードがリストされている場合は、openssl.cnf[ alt_names ] セクションに IP アドレスごとに行を追加します。以下に例を示します。

      [ alt_names ]
      DNS.1 = hostName
      DNS.2 = fullyQualifiedDomainName
      IP.1 = nodeIPAddress
      IP.2 = additionalNodeIPAddress

    3. openssl.cnf 構成ファイルを使用して証明書署名要求 (CSR) を生成します。コマンド ラインで、以下を入力します。

      openssl req -new -out myReqest.csr -newkey rsa:4096 \
      -keyout myKey.key -nodes -config openssl.cnf
      このコマンドにより、秘密鍵ファイル myKey.key とファイル myRequest.csr が出力されます。

    4. 署名付き証明書を生成するには、次のようにします。

      • 組織の認証機関を使用している場合は、myRequest.csr を認証機関に送信します。認証機関はこのファイルを使用して、署名付きサーバー証明書を生成します。たとえば、server_cert.cer です。

      • 自己署名証明書を使用している場合は、コマンド ラインで以下を入力します。

        openssl x509 -req -days 365 -in myRequest.csr -signkey myKey.key \
        -out self-cert.pem -extensions v3_req -extfile openssl.cnf
        このコマンドにより、自己署名証明書 self-cert.pem が出力されます。

    5. 以下のコマンドで admin-docker-agent バイナリを停止してから再始動します。

      Windows PowerShell
      ./admin-docker-agent --restart-gateway `
      --ssl-cert-file certFile1 `
      --ssl-key-file keyFile `
      --ssl-ca-file  trustedStoreFile
      Linux®
      ./admin-docker-agent --restart-gateway \
      --ssl-cert-file certFile1 \
      --ssl-key-file keyFile \
      --ssl-ca-file  trustedStoreFile

      certFile1 は、手順 4 で取得したファイルの絶対パスです。keyFile は、手順 3 で生成したファイルです。trustedStoreFile は、自己署名証明書を使用していた場合に手順 4 で生成したファイルです。それ以外の場合は HTTPS の構成に使用するトラスト ストア ファイルです。Polyspace Access で HTTP と HTTPS のどちらの構成を使用するかを選択するを参照してください。変更内容を保存します。

    6. [Cluster Admin] Web インターフェイスで [Restart Apps] をクリックします。