2016年12月27日火曜日

AWS EC2 に GitLab をインストールする

オフィス狛 技術部です。

弊社は、今まで Git へのアクセス制御は Gitolite を使用していました。
それでも特に困ってはいなかったのですが、
Pull Request(Merge Request) による管理をしたい、というのと、
Slack との連携を簡単にしたい、という事で、
Amazon EC2(OS は Amazon Linux)に GitLab をインストールして、
今ある Git リポジトリを移行する事にしました。

以降がインストールの方法です・・・と言いたいところですが、
本家サイトに、丁寧にインストール方法が記載されているので、
本家サイトの補足を記載していこうと思います。

※本家サイトには Amazon Linux 用の説明が無く、
一番近いのが CentOS なので、その辺の違いも書いていきます。

1)必要な依存ライブラリのインストールと設定

(本家サイト: Install and configure the necessary dependencies)

本家サイトでは
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
となっていますが、
Amazon Linux は既に該当プラグインが設定されているので、この手順はスルーします。

続いて、GitLab からのメール送信する為の設定になります。
本家サイトの通り、以下のコマンドでインストールを行います。
$ sudo yum install postfix

続いて、postfix を有効にします。
本家サイトでは、
sudo systemctl enable postfix
sudo systemctl start postfix
となっていますが、
Amazon Linux には既に sendmail がインストールされているので、
sendmail を無効にする必要があります。
$ sudo /etc/init.d/postfix stop
$ sudo /etc/init.d/sendmail stop
sm-client を停止中:                                        [  OK  ]
sendmail を停止中:                                         [  OK  ]
$ sudo /etc/init.d/postfix start
postfix を起動中:                                          [  OK  ]

ついでに、メールの自動起動設定を変更しておきます。
$ sudo chkconfig postfix on
$ sudo chkconfig sendmail off

続いて、MTAも切り替えます。
$ sudo alternatives --config mta

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

念の為、設定の確認をしておきます。
$ alternatives --display mta
mta - ステータスは手動です。
リンクは現在 /usr/sbin/sendmail.postfix を指しています。

2)GitLab のインストール

(本家サイト: Add the GitLab package server and install the package)

ようやくGitLab のインストールです。ここは本家サイト通り進めます。
$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
$ sudo yum install gitlab-ce

3)GitLab の設定と開始

(本家サイト: Configure and start GitLab)

後は、「gitlab-ctl reconfigure」して完了なのですが、
その前に、メールの設定を行っておきます。

※ ここからは、Amazon SES の設定が完了している事を前提とします。

以下のコマンドで、設定ファイルを開きます。
$ sudo vi /etc/gitlab/gitlab.rb
設定箇所は、本家サイトの SMTP setting - Amazon SES に詳しく書いてあります。

★その他、変更した箇所
SMTPの設定以外でも、external_url は自サイトのドメインへ、
gitlab_rails['time_zone'] はデフォルトが UTC になっているので、 Asia/Tokyo に変えました。

ここまでで、設定は完了したので、以下のコマンドで変更内容を反映させます。
$ sudo gitlab-ctl reconfigure

4)GitLab へログイン

(本家サイト: Browse to the hostname and login)

いざ、external_url に設定したURLに接続すると・・・


画面が表示されました。
デフォルトのユーザーが「root」で作られているので、
初めはそのユーザーでログインすることになります。
(まずはパスワード設定)

パスワードを設定してログインすると・・・・


おっと 502 エラーに。

調べて見ると、どうやらサーバーのメモリが足りないようです。

GitLab の構築には、1GBのメモリが推奨されているようなので、
EC2 インスタンスは「t2.small」にしたのですが・・・

とりあえず、「t2.medium」に変更した後、再度ログインしたところ上手くいきました。
(こういうスケールアップが簡単に出来るのが、AWS の良いところですね。)

ここまでで、インストール・設定・起動が完了したので、次回は、Git リポジトリの移行を行いたいと思います。

次回:AWS EC2 の GitLab へリポジトリを移行する


, , ,

0 件のコメント:

コメントを投稿