gitlabの導入方法のメモ

こんにちは。小宮です。先輩から要望されていそうな気がしたのでgitlab導入時のメモです。。

やたらめったら長いし手順が複雑でこのとおりやって再現できるかはお使いの環境に依存する可能性があり保障できかねます。
この手順で再現した環境はOSはCentOS6.5でした。
postgresを許容できるのであれば自動的に入れられるオムニバス版があるのでそちらをお使いいただくのがよろしいかと。
個人的にpostgresの運用の知見が心もとなかったのと、RDSに逃げられなくなるのがアレだったのでmysqlで頑張りました。

自分で自動化する時は、passengerとgitlab:setup時の対話処理をなんとか自動化するオプションを付けるとこがキモかと思いました。
この手順自体は部分的にchefがでてきますがほぼ手動です。自動化オプションは最後のほうにちょろっと書いときます。

1.このへんからmysqlをなんとかして入れとく

2.rbenv等でrubyをなんとかして入れておく

(chefでなにもせずにやるとchefgemに寄るので注意がひつよう)
rubyのバージョンが低いとGemfileのシンタックスチェックでエラー出てmysql2とかが入らないことも。

3.Gitのインストール

4.redisのインストール

5.ユーザ作成

8.gitlabインストール

9.DB設定

ローカル等てきとうなところ(database.ymlに指定したところ)にDBをなんとかしていれる

 MySQL-develとshared-compatもひつようかもしれない
    rubyのバージョンが1.8とか1.9とかだとGemfileのシンタックスがどうとかで入らなくて直にmysql2をいれてたけどたぶんbundleで普通にはいるはず
    # gem install mysql2 -v '0.3.11'

10.Gemパッケージインストール

11.データベース初期化&セットアップ

ここはdbのテーブルが新規に作成される処理なので、間違って既存のデータ消さないように対話になってたりします。

12.起動スクリプト、ログローテ設定コピー

13.Passengerのインストール&Proxy設定

ブラウザからログインしてパスワードを変更
http://123.123.123.123/users/sign_in
admin@local.host
xxxxxxxx

プロジェクトを作成などなど
http://123.123.123.123/root/test

自動化オプションについて
正直、自動化したい処理にchefとかdockerとか適当(ほどよくという意味)につけてググれば
だいたいやってる人がいてわかるとは思いますが念の為書いておきます。

・passenger

・gitlab

自動化するにあたり他にも色々地雷があったわけですが、、
mysql2を入れるにあたり、公式のmysqlだとmysql_libは消してsharedとshared-compatとdevelいれないといけない等々。
あとはssl化したりdbを外出ししたり色々やったような記憶はありますが長くなるので省略します。
あとchefgemに寄ってるレシピは適宜変えたほうがよさそうです。

14.バックアップとリストアについて

mysqlの場合はDBサーバに以下のようなgrantをしないとダメです(user@host等固有の値は適宜ご指定ください)

バックアップはユーザはgitで場所は$HOME/gitlabでやらないとだめみたいな感じです。(cron登録しとくのが良いかと思います)

リストアする場合、
 gitlab.ymlでbackupディレクトリとして指定してる(ext:$HOME/gitlab/tmp/backups)場所にtarアーカイブを設置

こんなかんじでtarアーカイブの先頭に自動でついてる数値文字列をbackupのpathの後ろに指定。

とりあえずこんなところで失礼します。長々みていただいた方はありがとうございました。

おすすめ記事