GitLab を Amazon Linux にインストールする

オープンソースの Git リポジトリ管理システム GitLab を Amazon Linux にインストールしたので、手順をメモ。
といっても、ほとんど以下の URL を参考にしたので、ここではインストール時に引っかかった注意点など
Amazon Linux 2013.09 に GitLab6.1 をインストール – OTメモ帳

ところで digitalcube って会社では、様々なプロダクトがインストール済みの AMI を AWS Marketplace で公開してるんだけど、ここでも GitLab が公開されてるから、インストールが面倒な人はそこから起動した方が良いと思うよ(ステマ)。
AWS Marketplace: Search Results

GitLab も、今日公開されたし – GitLab on AWS Marketplace
Marketplace 版の GitLab は、初期アカウントは admin@local.host でパスワードは起動したインスタンスのインスタンスIDになってます。
GitLab の起動に時間がかかるので、最初 503 ステータスが返ってくるかもだけど、ちょっと待ってから再試行すれば GitLab のログイン画面が表示されるので、試してみてください。

インストール時に引っかかったところ等々

メモリ不足で Unicorn 起動せず

t1.micro でやってたんですが、メモリ不足で Unicorn が起動しませんでした。
そんなわけで、以下の手順で swap を 2GB 作成。

dd if=/dev/zero of=/swapfile bs=1024 count=2097152
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap defaults 0 0' >> /etc/fstab

あっ、/etc/sysctl.conf に vm.swappiness = 0 が書いてないとカーネルが気軽に swap を使い始めるので、追記するのを忘れずに
とりあえず、これで無事動いたけど本格的に運用するなら m1.small 以上が良いですね。

Unicorn 動いたけど、タイムアウトしちゃった

Unicorn が無事に動いたので、アクセスしたら 502 が返ってきてました
GitLab 502

Unicorn のログ(logs/unicorn-stderr.log)見ると、以下のようなエラーが

/home/gitlog/gitlog/log/unicorn.stderr.log

I, [2014-03-18T19:30:44.454863 #4806]  INFO -- : worker=0 ready
E, [2014-03-18T19:31:44.357351 #4652] ERROR -- : worker=1 PID:4693 timeout (31s > 30s), killing
E, [2014-03-18T19:31:44.380381 #4652] ERROR -- : reaped #<Process::Status: pid 4693 SIGKILL (signal 9)> worker=1
I, [2014-03-18T19:31:44.563039 #4809]  INFO -- : worker=1 ready
E, [2014-03-18T19:32:19.439897 #4652] ERROR -- : worker=0 PID:4806 timeout (31s > 30s), killing
E, [2014-03-18T19:32:19.466585 #4652] ERROR -- : reaped #<Process::Status: pid 4806 SIGKILL (signal 9)> worker=0

結局プリコンパイルしておかないと、これの処理に時間がかかって GitLab がタイムアウトしちゃうみたいなので、以下の手順でプリコンパイルしました。

$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

再起動したらサービス動かず

よっしゃ、これでおっけと思って、試しにインスタンスを再起動したら chkconfig gitlab on してたのに gitlab が起動していない
これは、gitlab の起動スクリプト中で sudo 使ってるからでした。
https://github.com/gitlabhq/gitlabhq/blob/master/lib/support/init.d/gitlab#L43
これを解決するために visudo 使って root ユーザの requiretty を解除しました。

# visudo
---
# これを追記
Defaults:root    !requiretty
---

まとめ

最後に作業メモを載せておきます。

それでは、よい GitLab を!

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください