Help us understand the problem. What is going on with this article?

Google Cloud Platform の VM を Cloud Source Repositories を使える状態で利用する

More than 1 year has passed since last update.

はじめに

自宅で開発している時に Linux マシンが欲しくなることがあります。使い捨ての VM 環境としては Vagrant など自 PC 上で対応することも可能です。一方でクラウドの利点としては、OS イメージを手元のマシンに配置する必要がないことです。

ここでは Google Cloud Platform の VM インスタンスを使う手順を紹介します。VM を時々起動する程度であれば十分無料で使えます(念の為、公式のGCPの無料枠をご参照の上ご利用ください)。

また、Cloud Source Repositories というリポジトリも利用できます。せっかくなので、ソース類はこちらで管理するようにセットアップします。そうすれば、VM を使い捨てたとしても、ソース類をこちらに残せます。

流れとしては以下の通りです。

  1. Cloud SDK のセットアップ
  2. リポジトリ作成
  3. サービスアカウントを作成
  4. VM を起動
  5. 利用後は VM を削除

Cloud SDK のセットアップ

以降の手順では gcloud コマンドを使います。そのため、手元の PC で Cloud SDK を使える状態にする必要があります。導入手順は公式ドキュメントをご参照ください。

Cloud SDK をインストールして初期化

リポジトリ作成

gcloud コマンドを利用できるようになったら、リポジトリを作成します。

$ gcloud source repos create リポジトリ名

サービスアカウントの作成

サービスアカウントを使う目的は、VM 上から他のサービスを使えるようにすることです。今回のケースでは使いたいのは Cloud Source Repositories です。そのため、次の作業を行います。

  1. サービスアカウントを作成
  2. サービスアカウントに権限付与
  3. VM にサービスアカウントを設定

まず、今後の作業のためにプロジェクトIDを環境変数にセットしておきます。

$ export PROJECT_ID=$(gcloud config get-value project)

サービスアカウントを作成します。

$ gcloud iam service-accounts \
    create gce-service-account \
    --display-name "gce-service-account"

サービスアカウントに source.writer 権限を付与します。

$ gcloud projects add-iam-policy-binding ${PROJECT_ID} \
    --member serviceAccount:gce-service-account@${PROJECT_ID}.iam.gserviceaccount.com \
    --role roles/source.writer

[参考]

VMインスタンスの作成

では、先ほど作ったサービスアカウントを設定しつつ VM を起動します。ここでは CentOS にしています。余談ですが下記のコマンドだと 20 秒かからず起動します。速い!

$ gcloud compute instances create my-centos \
  --image-family centos-7 \
  --image-project centos-cloud \
  --machine-type f1-micro \
  --preemptible \
  --service-account gce-service-account@${PROJECT_ID}.iam.gserviceaccount.com \
  --scopes cloud-source-repos

[参考]

VM インスタンスに接続

VM が起動したらインスタンスに接続します。

$ gcloud compute ssh my-centos

Git インストール

実は今回起動したイメージには Git が含まれていないので、yum でインストールします。

$ sudo yum install -y git

git config

下記コマンドで git config の設定をしておく必要があります。

$ git config --global credential.'https://source.developers.google.com'.helper gcloud.sh

参考:リポジトリをリモートとして追加する

リポジトリのクローン

ここまでの作業により、リポジトリを clone できるようになっていますので、次のコマンドで clone します。

$ gcloud source repos clone リポジトリ名

利用後は VM を削除

作業後は、OS シャットダウン後に、インスタンスを削除します。

$ gcloud compute instances delete my-centos

最後に

上記の流れで使い捨ての VM を利用できます。自分の PC に色々と入れていると、ソフトのバージョン管理などが面倒だったり容量も食います。そんな時にクラウド上の VM は便利です。

追記:実際のところ、Linux ライクな環境で開発したい場合は、Cloud Shell でいいような気もします・・

参考

この記事では単に VM を Cloud Source Repositories を使えるようにしただけですが、Cloud Source Repositories はコード検索などの機能があったり、Cloud Build など GCP 上の他のサービスと連携できる効用もあります。Google Cloud Platform のブログ上で紹介されているため案内させていただきます。

新しくなった Cloud Source Repositories 、ベータ版で提供開始

ao_log
インフラ周りに興味があるエンジニア。ピアノを習い始めました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした