この記事は『CRESCO Advent Calendar 2021』 1日目の記事です。

 

わたくし、金融業界にてフルリモートでアジャイル開発にチャレンジしてみました。

アジャイル開発といえば「タスクの見える化」、「タスクの見える化」といえば「かんばんボード」です!(多分)

さらに、フルリモートでの開発なのでwebで利用できるJiraやTrelloなどの「かんばんボード」のツールが使いたい!!!!

ただ、金融業界特有の様々な制約があり、JiraやTrelloなどの「かんばんボード」ツールが利用出来なかったので、代わりにGitLabをAWS上にホスティングして利用しました。

今回はホスティングの手順や、GitLabでのかんばんボードの利用方法などを書いていきます。

GitLabを利用するまでの流れは下記の通りです。

1.Cloud9を作成します。

2.EC2を作成します。

3.EIPを作成します。

4.cloud9とEC2のNW設定をします。

5.GitLabをインストールします。

6.GitLabを試しにさわってみる。

それでは早速やってみましょう!!!

1.Cloud9を作成します。

GitLabをインストールする環境(踏み台サーバ)として、今回はCloud9を使用します。

1-1.Cloud9のサービスコンソールから[Create enviroment]をクリックします。

1-2.Nameを記入したら[Next step]をクリックします。

1-3.Platformで[Ubuntu Server]を選択する。選択出来たら同一画面の下部にスクロールします。

1-4.ネットワークの設定で後ほど作るEC2インスタンスと同一VPC、同一サブネットを選択する。今回はデフォルトVPCの東京リージョンの1aを選択しました。その他の設定は今回はデフォルトで設定しましたが、必要に応じて設定してください。選択出来たら[Next step]をクリックします。

1-5.review画面から設定項目を確認したら、[Create environment]をクリックします。

1-6.下記のような画面に遷移したらCloud9の出来上がりです。

2.EC2を作成します。

GitLabのホスティング先としてEC2を使用します。

2-1.EC2のサービスコンソールから[インスタンスを起動]をクリックします。

2-2.debianを検索して[Devian 10]を見つけたら[選択]をクリックします。

2-3.GitLabは少々重いのでインスタンスタイプは「t2.large」を選択し、[次のステップ:インスタンスの詳細の設定]をクリックします。

2-4.ネットワークとサブネットには先ほどCloud9と同一のVPCとサブネットを選択します。自動割り当てパブリックIPは今回は[無効化]を選択し、[次のステップ:ストレージの追加]をクリックします。

2-5.今回はストレージ追加はしません。そのまま[次のステップ:タグの追加]をクリックします。

2-6.キーに[Name]、値にEC2の名前、今回は[sample-girlab]を追加し、[次のステップ:セキュリティグループの設定]をクリックします。

2-7.セキュリティグループ名と説明にEC2の名前を記入してください。SSHのソースに[マイIP]を指定します。[ルールの追加]をクリックし、HTTPと80番ポートを設定し、設定ができたら[確認と作成]をクリックします。

※当HTTPの設定をするとEC2がオープンになるので設定の際はご注意ください。

2-8.設定内容を確認したら[起動]クリックします。

2-9.キーペアの作成ダイアログが出てくるので、[新しいキーペアの作成]を選択し、RSAのキーペア名を記入したら[キーペアのダウンロード]をクリックします。

2-10.キーペアがダウンロード出来たら、[インスタンスの作成]ボタンがアクティブになるのでクリックします。

2-11.[インスタンスの表示]をクリックします。

2-12.インスタンスの状態が[実行中]になって、無事インスタンスが作成できました。

3.EIPを作成します。

EC2は起動停止するたびにIPアドレスが変化するので、EIPで固定のパブリックIPアドレスを作成します。

3-1.VPCのサービスコンソールから[Elastic IP]を選択し、[Elastic IP アドレスを割り当てる]をクリックします。

3-2.キーに[Name]、値にEIPの名前、今回は[gitlab-instanse-eip]を追加し、[割り当て]をクリックします。

3-3.インスタンスに作成したEC2インスタンスを選択し、[関連付ける]をクリックします。

3-4.下記のような緑の画面が出てきたら完了です。

4.Cloud9とEC2のNW設定をします。

Cloud9をEC2の踏み台サーバとして使用するための設定をします。

4-1.2-12の画面の[セキュリティタブ]から[セキュリティグループ]をクリックします。

4-2.[インバウンドルールを編集]をクリックします。

4-3.[ルールの追加]をクリックし、SSHで1.の手順で作成したcloud9のセキュリティグループを追加したら、[ルールを保存]をクリックします。

4-4.下記のような緑の画面が出てきたらセキュリティグループの設定ができました。

ここまで出来たら、いよいよGitLabのインストールです。

5.GitLabをインストールします。

いよいよ本命のGitLabを入れていきます。

5-1.Cloud9のenvironmentフォルダ直下にダウンロードした.pemファイルを配置して、下記コマンドを実行します。

sudo chmod 0600 <.pemファイル名>

5-2.下記コマンドの.pemファイル名とプライベートIPv4アドレスを書き換えて実行します。

ssh -i <.pemファイル名> admin@<プライベートIPv4アドレス>

プライベートIPv4アドレスは作成したEC2インスタンスの下記画面から確認出来ます。

5-3.下記コマンドを実行し、Ubuntuのデフォルトロケールを日本に変更します。

sudo -i
apt install -yq locales
sed -i 's/# \(ja_JP.UTF-8.*\)/\1/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

5-4.下記コマンドを実行し、GitLabをインストールします。

※GitLab最新バージョンは下記サイトに記載されています。

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
sudo apt-get install -y postfix

※mail送信の設定です。下記公式サイトより引用します。

「別の方法でメールを送信する場合はこのステップを飛ばし、GitLabのインストール後に 外部のSMTPサーバーを設定  してください。

Postfixのインストール中に設定画面が表示されます。その時は’Internet Site’を選択してEnterを押し、’mail name’にはサーバーの外部DNS名を入力してEnterを押してください。もしも追加の画面が表示される場合は、デフォルトのままEnterを押して続けてください。」

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee

※上記コマンドの完了には10分ほどかかります。

5-5.下記画面がターミナルに出てきたらインストール完了です。

5-6.デフォルトで作成されるrootユーザのパスワードファイルがありますが、こちらは24時間経過すると自動削除されてしまうので、下記コマンドを実行してrootファイル直下にinitial_root_passwordファイルのバックアップを取っておきます。

cp /etc/gitlab/initial_root_password /root/

ようやくGitLabがインストールできました!

次にGitLabにアクセスしてログインしてみましょう!

6.GitLabを試しにさわってみる。

試しにタスクとかも出してみましょう。

6-1.EC2インスタンスのサービスコンソールから、GitLabをインストールしたインスタンスを選択し、パブリックIPv4アドレスをコピーしてください。コピーしたIPに[http://]を付けてGitLabにアクセスします。

6-2.アクセス出来たらログインを求められるので、4-6の手順でバックアップしたファイルからrootユーザのパスワードを確認し、ログイン試行してみます。

6-3.ログイン出来たら早速プロジェクトを作ってみます。[New project]をクリックします。

6-4.今回は[Create blank project]を選択します。

6-5.プロジェクト名を記入したら、[Create project]をクリックします。

6-6.プロジェクトが出来たら、[Issues]から[Boards]を選択します。

6-7.タスクボードが出てきたら[+]ボタンを押してタスクを作ってみます。

6-8.タスクのタイトルを記入したら、[Create issue]をクリックします。

6-9.タスクが出来たらタスクタイトルをクリックすると、タスク詳細を書き込むこともできます。下記コマンドを記入し[Comment]をクリックすることで見積もり時間や、タスクの割当、経過時間などの設定も出来ます。

/estimate xxdxxhxxm : タスクの見積もり時間
/assign @member name : タスクの割当
/spend xxdxxhxxm : タスクの経過時間

私は主にタスク管理やwikiとしてGitLabを利用していますが、CI/CD環境などもGitLabを使って構築できるみたいで、まだまだできる事がたくさんありそうです。

それでは、皆さんも快適なアジャイル開発を!!!!