この記事は Google Cloud Platform その1 Advent Calendar 2018 の15日目の記事です。
なんだかんだでQiita初投稿となります(アドベントカレンダーが初って人も珍しい気が…)。
弊社内にてGCP上でAnsibleとTerraformを用いたハンズオンを実施している際、「AnsibleとTerraformをはじめからインストールしている環境が欲しい」という意見をいただきました。(内容については弊社内ブログにて公開しております。)
ハンズオンはCloud Shellを利用していましたので、いつの間にかアルファ版として実装されていたCloud Shell環境を利用してコンテナイメージを作成してみます。
Cloud Shell環境の確認
Cloud Shellを開き、右上にあるアイコン一覧の一番左にあるモニターアイコンをクリックします。
クリックするとCloud Shell環境の画面が新規タブでCloud Shell環境が開きます。
Cloud Shellコンテナの作成
早速コンテナを作成します。
手順は以下の通りです。
- カスタムイメージの作成よりイメージを作成する
- Dockerfileを編集する
- イメージが作成されるので確認する
カスタムイメージの作成よりイメージを作成する
「カスタムイメージの作成」から、「新しいカスタムイメージを作成」をクリックします。
今回は以下のように作成します。
項目名 | 設定値 |
---|---|
イメージストレージ用のプロジェクト | 作成するプロジェクト名 |
イメージ名 | ansible_terraform |
またチェックについては両方にチェックをつけ、「作成」ボタンをクリックします。
※必要なAPIが許可されていない場合、「APIを有効にしてください」と表示されるため、APIを有効化します。
Dockerfileを編集する
作成が終わると、gitリポジトリのクローンを確認されるため、続行をクリックしてリポジトリを作成します。
リポジトリ作成後、Dockerfileが表示されます。
Dockerfile内に以下ソースを追加します。
RUN wget https://releases.hashicorp.com/terraform/0.11.8/terraform_0.11.8_linux_amd64.zip
RUN unzip terraform_0.11.8_linux_amd64.zip -d /usr/local/bin
RUN pip install ansible
作成後、gitリポジトリにaddします。
git add Dockerfile
git commit -m "edit Dockerfile"
git push origin master
pushすると、自動でCloud Buildが走ってDockerイメージを作成してくれます。すごいですね…。
作成は10分程度で終わります。作成終了後、Cloud Shell環境より[編集]をクリックします。
環境の編集にて、「プロジェクトからイメージを選択する」を選択します。
イメージを選択から、先ほど作成したイメージを選択します。
先程作成したイメージを選択して、「保存」をクリックするとベースイメージが変更されます。
Cloud Shellコンソールを開いている場合はセッションを再起動してください表示されるため、再起動します。
再起動するとコンテナに接続しますが、結構長く接続中とでるためのんびり待っていると起動します。
起動後、イメージ内にAnsibleとTerraformがインストールされているか確認します。
これでCloud Shell上にAnsibleとTerraformがインストールされたイメージの作成ができました。
Dockerfileを作成するだけでイメージが簡単に作成できるため、Cloud Shellを利用した研修を行うならかなりいいかもしれないです。