wolfmasa's blog

フロンターレとプログラミング関係の話題を、気が向いたときにつぶやくブログです。

GitLabメモ

GitLabについて、まだまだ情報が少ない気がしたので、ざっとメモを残しておきます。

設定に困ったら、まずはgitlab.rbを見るべし

GitLab、特にomnibusの場合には、いろいろなモジュールが含まれており、それぞれの設定を管理する必要があります。

そのためにまず覚えるべきは、gitlab.rbの存在です。基本的には/etc/gitlab/gitlab.rbとかにあるはずなので、開いて設定しましょう。

gitlab.rbは様々なGitLabに含まれる設定項目を1まとめにしたものですが、変更するだけでは反映されないので、コマンドを実行し、各モジュールに反映させてあげる必要があります。

sudo gitlab-ctl recofigure
sudo gitlab-ctl restart

注意としては、gitlab.rbを使わずに直接モジュールの設定を変更している場合には、その設定が上書きされて消えてしまう可能性があります。以前、コード中に固定値で格納されていたあるMax値を直接変更していた際に、recofigureをした瞬間に上書きされて消えたということがありました。

GitLabはRailsである

忘れがちですが、GitLabはRailsアプリです。そのため、基本的にはRailsの知識がほぼ同じように使えます。

例えば、rake routesは、GitLabコマンドに置き換えられていて

sudo gitlab-rake routes

になるだけです。サーバ全体のコントロールはgitlab-ctlですし、rakeを使う場合にはgitlab-rakeです。

デバッグしたい時

うまく動かなくてデバッグしたい時もあるでしょう。(普通ないかな?)

その際には、rails consoleではなく、

sudo gitlab-rails console

をすればirbが起動して、サーバの中で動いているコードをデバッグすることができます。

ちなみに、起動後の問題であればirbで良いのですが、何かのエラーで起動しない場合には

sudo gitlab-ctl tail

を実行することで、ログを見ることができます。もし対象のモジュールが分かっている場合には、

sudo gitlab-ctl tail unicorn

などとすることで、フィルタリングできるようです。

バックアップ・リストアをマスターすべし

サーバとして運用する上で、バックアップとリストアの機能は必要不可欠です。

定常的にバックアップを保存するのであれば、gitlab.rbのバックアップの項目を設定するべきです。

何かの事情で、手動でバックアップを実行する場合には、

sudo gitlab-rake gitlab:backup:create

とすれば、保存されたフォルダにバックアップ作ることができます。その場合でも、出力フォルダをgitlab.rbを参照して確認するべきでしょう。もちろん、編集したらrecofigureを忘れずに。

SKIPオプションを設定すれば、db以外とか設定も可能ですが、通常の用途ではあまり使わないような気がします。

リストアするときは、バックアップしたtarファイルを保存先フォルダに格納しておきます。

その上で、ファイル名ではなく、ファイル名中のタグを使って、リストア対象を指定します。

sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186_2014_02_27

困ったら、だいたいここに書いてあります。 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/backup_restore.md

インストール、アップデートは簡単

2、3年前は、非常に手間のかかる作業だったものが、最近は一発でインストール、アップデートできるようになりました。

# install GitLab Community Edition
sudo apt-get install gitlab-ce

# update
sudo apt-get update

これじゃ、何も言うことはありません。素晴らしい。