GitLab 運用して起こったエラー対処法
の後日録です。
あと、今日ちょうど GitLab の新バージョンが出たようです。
GitLab 8.13 Released with Multiple Issue Boards and Merge Conflict Editor | GitLab
同時に git push した場合のエラー
自宅サーバをジョブで一斉に yum check-update; yum upgrade -y
*1
した後、GitLab の Activity を見てみると設定が push されていないノードがあった。
その際の出力には下記のようなエラーが出ていた。
GitLab: Failed to authorize your Git request: internal API unreachable fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
同時に push されるとよく起こるっぽい。 現在6台のノードを管理していて、その内3台の git push が失敗していた。
ということで冒頭のチケット通りに /etc/gitlab/gitlab.rb
を以下のように変更して対処した。
unicorn['worker_processes'] = 2
/etc/gitlab/gitlab.rb
を変更した後は gitlab-ctl reconfigure
を忘れずに(Omnibus package 版の場合)。
バックアップスクリプトがエラーになる問題
これは結構以前からエラーになっていた。 チケットの以前の締切は 9/22 だったけど、それが 10/22 (今日)に変更された。 私は上記チケットにもコメントした通り対処したので今でも起きるかは確認してないけど、 チケットがクローズされていないので直ってないはず。
このエラーが起きる条件として、バックアップ先を WebDAV でマウントしたパスに設定したことだった。
gitlab_rails['backup_path'] = "<WebDAV(davfs2) mounted path>"
これを初期値のパスに戻して(変更した後は gitlab-ctl reconfigure
を(ry)、
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
rsync で転送するようにした。
# root で実行 sudo -u git -H gitlab-rake gitlab:backup:create rsync -rlv -delete /var/opt/gitlab/backups/ /path/to/remote/backup/path/
転送先のディスク容量が溢れないよう --delete
を付けているけど、
安全のために転送先のファイルサーバには1か月前までのバックアップを残すとかしてもいいかも。
ただ GitLab を動かしてる VM にあまり容量がないので、ローカルには7日間しか残していない。
# root で実行 sudo -u git -H gitlab-rake gitlab:backup:create rsync -rlv /var/opt/gitlab/backups/ /path/to/remote/backup/path/ find /path/to/remote/backup/path/ -type f -name '*.tar' -mtime +30 -delete
むしろ転送したらローカルには何も残さない方がいい気がする?(ファイルサーバには30日間残す)
# root で実行 sudo -u git -H gitlab-rake gitlab:backup:create rsync -rlv /var/opt/gitlab/backups/ /path/to/remote/backup/path/ && rm -f /var/opt/gitlab/backups/*.tar find /path/to/remote/backup/path/ -type f -name '*.tar' -mtime +30 -delete
*1:ちゃんと運用するなら検証環境をアップグレードした後、一定期間問題が無ければ本番環境をアップグレードした方がいいんだろうけど