Edited at

マニュアルインストールのGitlabをOmnibus(CE)に移行する

More than 1 year has passed since last update.


この記事は


  • 昔々、Omnibus GitlabなんてものがなかったころマニュアルインストールしたGitlabのOmnibusへの移行メモです

  • バージョン1つずつ上げながらrake db:migrateしたり、手作業でworkhorseコンパイルしたりする地獄運用をやめたい。


前提


  • Ubuntu14

  • 現行のGitlabバージョン:8.11.3(古)


Omnibus Gitlabのインストール


  • 別のマシンに普通にOmmnibus Gitlabをインストールする

  • まずは準備

$ apt-get install curl openssh-server ca-certificates postfix

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh > /tmp/script.deb.sh
$ chmod 777 /tmp/script.deb.sh


  • 移行元と完全に同じバージョンを入れる必要があるのでバージョンを確認してバージョン指定でインストールします

$ apt-cache policy gitlab-ce

(snip)
8.11.3-ce.1 0
500 https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ trusty/main amd64 Packages
(snip)

$ apt-get install gitlab-ce=8.11.3-ce.1
$ gitlab-ctl reconfigure


  • 普通にアクセスできるかブラウザから確認します


マニュアルgitlabのバックアップ実行


  • マニュアルgitlab側で下記コマンドでバックアップを作成します

$ cd /home/git/gitlab

$ /usr/local/rvm/gems/ruby-2.1.8/bin/bundle exec rake gitlab:backup:create RAILS_ENV=production


  • ちなみにバックアップの設定は下記のような感じです(元々S3に飛ばしてたのでその設定が入っていますが必須ではありません)


/home/git/gitlab/config/gitlab.yml

  backup:

path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
keep_time: 1 # default: 0 (forever) (in seconds)
upload:
connection:
provider: AWS
region: ap-northeast-1
aws_access_key_id: XXXXX
aws_secret_access_key: 'XXXXX'
remote_directory: 'xxx-gitlab-backups'


Omnibus Gitlabへバックアップを取り込み


secret情報の復旧


  • 上記で取得したバックアップファイルはDB関連の情報が暗号化されているようで、復号化キーを元の環境から持ってくる必要があります

  • キーのありかはバージョンによって微妙に異なるみたいです


マニュアルインストール側


/home/git/gitlab/config/secrets.yml

production:

db_key_base: xxxxxxx
secret_key_base: xxxxxxx
otp_key_base: xxxxxxx


omnibus側


/etc/gitlab/gitlab-secrets.json

  "gitlab_rails": {

"secret_key_base": "xxxxxxx",
"db_key_base": "xxxxxxx",
"otp_key_base": "xxxxxxx"
},


  • マニュアル側のファイルからomnibus側のファイルへ3つのキーをコピペで張りつけておきます


バックアップ取り込みの実行


  • バックアップファイルを所定のディレクトリに配置します


    • tarが1つだけの場合は何も指定しなくてもそれを取り込むみたいです



mv /tmp/1499828797_gitlab_backup.tar /var/opt/gitlab/backups


  • 取り込みを実施します

/opt/gitlab/bin/gitlab-rake gitlab:backup:restore RAILS_ENV=production


無事


  • 取り込みに成功して普通にアクセスできるようになりました


ついでに


  • せっかくomnibusにしたので、最新のGitlabにupdateしました

apt-get install gitlab-ce


  • 最新の9.3.6に簡単に上がりました


終わりに


  • omnibusだとアップデート楽だなぁ(マニュアルは地獄)