IT 初心者が Google Cloud 上に Jenkins を立ててみる
こんにちは、クラウドエース株式会社 SRE 部新卒の中村です。
本記事では IT 初心者の目線で、Google Cloud 上に Jenkins を立てる際の手順を紹介していきます。
はじめに
本記事を書く直前に Cloud Build を用いて Git のリポジトリと連携し、CI/CD を実装する課題を行いました。
そこで今回は、Cloud Build と同じような機能を持つ Jenkins で CI/CD のセットアップを行う手順を書いていこうと思います。
Jenkins とは?
Jenkins は、CI/CD を実現するためのオープンソースツールです。
概要については Jenkins の公式サイト をご覧ください。
そもそも CI/CD とは?
IT の勉強をしていると頻繁に出てくるこの用語ですが、IT 初心者としては文章で説明されてもその文章の中にまた他の用語が出てくるのでイメージがしづらいです。
しかし、いくつかのポイントを押さえてみると CI/CD がどんなものなのか見えるようになってきます。
- Git
Git は IaC(Infrastructure as Code)で CI/CD を行う上でよく用いられるツールですが、これを理解すると CI/CD のイメージを掴みやすくなります。他にも同じような機能を持ったツールは存在するようですが、もっとも代表的で IT 初心者でもすぐに使えるようになった Git を RPG に例えて説明していきます。
そもそも IaC は手作業で行うインフラストラクチャの構築をコード化したもので、Git で管理するのに適しています。RPG に例えるならこれはゲーム内容です。
基本的に Git は完璧なデータにしたいセーブデータ 1 (これが main ブランチにあたる)を迂闊に変更できないようにするためのものです。
-
branch
セーブデータを分けるようなものです。完璧なデータにしたいセーブデータ 1 を作って、そのコピーをセーブデータ 2 にします。たくさんのセーブデータを作ればたくさんの人が完璧なセーブデータを作るために同時進行できて効率的ですよね! -
push・pull request
セーブデータ 2 で進めた状態をセーブデータ 1 に上書き保存してもいいか?というのを確認する段階です。
Git を使った開発では、同じプロジェクトメンバーや上司などに確認してもらいます。ここは慎重に行うので手順が多いですが本記事での詳細の説明は割愛します。 -
merge
確認してもらったセーブデータ 2 をセーブデータ 1 に上書きします。
- トリガー
これが起きたらこれを実行するという設定です。Git 上で上書きされたセーブデータ 1 はコードを編集しただけに過ぎないので、まだ実行はされていません。
つまり「Git で merge したらコードをビルド/デプロイする」という設定をすればコードの編集内容を自動的に実行してくれる CI/CD の完成です。(厳密に言うとこれは CD)
このトリガーを設定できるのが本記事でセットアップする Jenkins ということになります。
Marketplace
Google Cloud Marketplace は、Google Cloud 上で利用できる様々なソフトウェアやサービスを簡単に見つけて導入できるオンラインストアです。
Google Cloud コンソールから数クリックで導入でき、すぐに使い始めることができます。
ソフトウェアのインストールや設定の手間を省き、導入時間を短縮できるという点が大きなメリットです。
Jenkins をセットアップする
ということで、Google Cloud 上に Jenkins のセットアップを進めていきます。
Marketplace を利用して Jenkins のパッケージをデプロイ
Google Cloud コンソールから project を選択し、検索バーに Marketplace を入力して開きます。
Marketplace の検索バーで Bitnami package for Jenkins と入力します。
検索結果から該当のパッケージを選択するとこのような画面になるので、「運用開始(使ってみる)」をクリック。
必要に応じて遷移した画面で利用規約に同意します。
デプロイする際に必要な API が有効になっていない場合は、自動的に API の有効化状況を確認する画面に遷移するので、無効な API があった場合は有効にします。
API が有効化されるまで数分待ちます。
有効化されたらデプロイされるマシンの設定画面に遷移します。本記事ではデフォルトの設定のまま進めます。
Deployment manager が立ち上げられ、数分待つとデプロイが完了します。
デプロイを確認
ここまでの手順で Jenkins がデプロイされているかを確認します。
Google Cloud コンソールから Compute Engine の VM インスタンスを開きます。先ほど Deployment manager で作成した Jenkins のインスタンスのステータスが実行中であることが確認できます。
SSH をクリックしてインスタンスに接続します。承認画面が出てきたら承認します。以下のコマンドを実行すると Jenkins プロセスが実行中かどうかを確認できます。
ps aux | grep jenkins
Jenkins プロセスが実行中であることを示す "Ssl" の表示や HTTP と HTTPS でアクセスを受け付けていること等が確認できます。
Jenkins で動作確認
本項では、設定したジョブがビルドを完了することを確認していきます。
Deployment manager のデプロイが完了した画面で Admin user と Admin password を確認してから、VISIT THE SITE をクリックします。
ログイン画面になるので、確認したユーザー名とパスワードを入力します。
Jenkins の画面が立ち上がったら、ダッシュボードの新規ジョブ作成をクリック。
ジョブ名と item type で「フリースタイル・プロジェクトのビルド」を選択して OK を選択するとジョブの内容を設定する画面に遷移します。
今回はジョブの動作確認を行いたいので、細かい設定はせずに、下にスクロールして「ビルド手順の追加」から「シェルの実行」を選択します。
シェルスクリプトのフォームが表示されるので以下のように入力します。
echo "これは Jenkins のジョブです"
入力が完了したら一番下の保存をクリックしてジョブの作成が完了します。
ダッシュボードから作成したジョブを選択し、「ビルド実行」をクリックするとビルドが開始されます。ビルド履歴の欄に緑のチェックマークが付いていればビルド実行完了です。失敗した場合は赤のバツマークが付くので、設定を見直してください。
チェックマークをクリックするとビルドの内容を確認できます。
シェルスクリプトで設定した echo コマンドが実行されているのが分かりますね。
まとめ
今回は Google Cloud Marketplace から簡単に Google Cloud 上に Jenkins を立てる手順をご紹介しました。このように Marketplace を利用することで IT 初心者でも簡単にデプロイすることができます。
Discussion