オープンソースの 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 は、初期アカウントは [email protected] でパスワードは起動したインスタンスのインスタンス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 が返ってきてました…
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 を!