VM イメージのビルド

このページは、パートナー プロダクトを Compute Engine で実行するための公開マシンイメージの作成について説明します。

イメージには、インスタンスの起動に必要な、ブートローダー、オペレーティング システム、ルートファイル システムが含まれます。ソリューション用の一連のアプリとサービスを使用してイメージを構成できます。このイメージは、仮想マシン(VM)のインスタンスをクラウド上で起動するためにお客様によって使用されます。

最初は開発プロジェクトでイメージを作成し、担当の Google パートナー エンジニアによる確認が済んでからパブリック プロジェクトに移すことをおすすめします。

始める前に

  1. Google Cloud SDK をダウンロードします。

ベース ソリューション VM の作成

Google Cloud Marketplace 用のカスタム マシンイメージを作成するには、次の手順を完了する必要があります(以降のセクションで説明します)。

ライセンスが適用された VM イメージの作成

  1. gcloud を使用して、Cloud SDK のデフォルトを設定します。

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. ソフトウェアのインストールに使用するプライマリ インスタンスを作成します。これはその後、Google Cloud Marketplace で使用するイメージに変換されます。インスタンスの作成の詳細については、インスタンスの作成と起動をご覧ください。

    gcloud compute instances create ${INSTANCE} --scopes
    https://www.googleapis.com/auth/cloud-platform 
  3. ソフトウェアをインストールしてカスタマイズします。承認認証情報を作成するスクリプトなど、必要な起動スクリプトを含めます。

    安全なランダム パスワードを使用して承認認証情報を作成するには、このページの承認認証情報の作成の手順に従ってください。

  4. オープンソース コンポーネントのライセンス テキスト ファイルとソースコードを VM に追加します(該当する場合)。 要件については、オープンソース コンプライアンス ドキュメントをご覧ください。

    プライマリ インスタンスを作成してカスタマイズしたら、VM イメージの作成に必要なディスクを準備します。

  5. 作業ディスクをクリーンアップします。作業中の VM から直接 VM イメージを作成すると、ユーザー ディレクトリと SSH キーも顧客の VM に転送されるため、VM イメージの作成時に入力ディスクとして使用されているディスクをクリーンアップする必要があります。ディスクをクリーンアップする手順は次のとおりです。

    1. Compute Engine の [VM インスタンス] メニューで、クリーンアップするインスタンスの名前をクリックし、[編集] をクリックします。

    2. 下にスクロールして [インスタンスを削除する際にブートディスクを削除する] チェックボックスをオフにし、[保存] をクリックします。イメージを作成するにはこのディスクが必要です。

    3. ディスクを保持したまま VM を削除します。削除の確認を求めるメッセージが表示されます。[ブートディスクの削除も行います] は選択しないでください。

    4. 次に、新しい VM インスタンスを作成する必要があります。[管理ディスクネットワーキングSSH 認証鍵] のオプションを展開します。

    5. [ディスク] で、前のインスタンスのディスクを追加のデータディスクとして接続します。[インスタンスを削除したときの動作] で [ディスクを維持] が選択されていることを確認します。

      これで、インスタンスに SSH 接続して、ソフトウェアのインストール プロセスで作成されたホーム ディレクトリやその他の一時ファイルを削除できるようになりました。 データディスクにアクセスするには先にマウントする必要があります。 ディスクのマウントの詳細については、永続ディスクの追加またはサイズ変更をご覧ください。

    6. 完了したら、更新したデータディスクを保持したまま、インスタンスをシャットダウンして削除します。これで、次の手順に沿って VM イメージを作成できるようになりました。

  6. 次の手順に従って、パートナー ポータルでソリューションのライセンス名を取得します。

    1. ソリューションを編集するには、ソリューション ID をクリックします。

    2. ソリューションのメタデータを編集します。

    3. ソリューションのメタデータで、[Licensing & Pricing] セクションの [ライセンス名] に表示されているライセンス名をメモします。 このライセンス名は、gcloud を使用してイメージを作成するときに後で使用します。

  7. 次の gcloud コマンドを実行して、ライセンスが適用されたイメージを作成します。

    gcloud compute images create CREATE_IMAGE_NAME \
     --project PUBLIC_PROJECT_NAME \
     --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \
     --licenses projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
     --description ADD_DESCRIPTION
    

承認認証情報の作成

ソリューションが基本的なファイアウォール ルールを備えた単一の VM インスタンスのシンプルなデプロイである場合、パートナー ポータルでデプロイ パッケージを直接構成するときに、安全なランダム パスワードを自動的に含めることができます。

ほとんどのユースケースで推奨されているオープンソース mpdev ツールを使用してデプロイ パッケージを作成する場合は、mpdev を使用して自動的に複数の安全なランダム パスワードを追加できます。

ソリューションがデプロイされた後で、作成したパスワードの値を取得するには、VM インスタンス内から次のコマンドを使用します。

curl -H "Metadata-Flavor: Google" \
http://metadata/computeMetadata/v1/instance/attributes/PASSWORD_NAME

VM イメージをテストする

新しく作成したイメージを使用して VM インスタンスを作成し、機能を確認します。

また、ライセンス ID を確認するために、インスタンスに SSH 接続して、有効なライセンスが添付されていることを確認します。

curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/licenses/?recursive=true

Python 2.6 以上がインストールされていることを確認します。

python -V

次のパッケージがインストールされていることを確認します。

gcloud --version
gsutil --version
ssh -V
ps aux | grep sshd
curl -V
ps aux | grep dhcp

独自のインスタンスを除いて、インスタンスに他のユーザー ディレクトリがインストールされていないこと、および独自のもの以外のユーザー ディレクトリと認証情報が残っていないことを確認してください。