Omnibus 版 GitLab の Postgresql を外部インスタンス化

前提条件というか環境情報

- Windows 10 Home
- Oracle VM Virtualbox 6.1.12
- vagrant 2.2.9
- Centos 7.8
- Box centos/7
- GitLab CE 10.2.5
vagrant up , vagrant ssh を実行した後からの内容になっています

1. 利用中の GitLab の Postgresql からデータをエクスポート

vagrant ユーザで下記コマンドを実行

# root へ
su -

# gitlab-psql へ
su - gitlab-psql

# バックアップ実行
/opt/gitlab/embedded/bin/pg_dump -U gitlab-psql \
  -h /var/opt/gitlab/postgresql -p 5432 \
  -d gitlabhq_production -c > dump/backup_`date +%Y%m%d`.sql
/opt/gitlab/embedded/bin/pg_dump

このあたりに疑問がある方は Omnibus 版 GitLab の Postgresql へ接続方法 を一度読んでもらえたら少しわかるかもしれません
pg_dump の Option については今回は割愛

2.構築済みの Postgresql にエクスポートした情報をインポート

gitlab-psql ユーザのまま下記コマンドを実行

psql -h 192.168.33.20 -p 5432 -U gitlab \
  -d gitlab < dump/backup_`date +%Y%m%d`.sql
# password を入力

-h, -p, -U, -d オプションとインポートするファイル名は環境に合わせる必要がある

3.設定ファイル gitlab.rb を編集

gitlab-psql ユーザのまま下記コマンドを実行

# root へ
exit

# 設定ファイルの格納 Dir へ
cd /etc/gitlab

# 設定ファイル編集
vi gitlab.rb


gitlab.rb の編集

編集前

# gitlab_rails['db_adapter'] = "postgresql"
# gitlab_rails['db_encoding'] = "unicode"
# gitlab_rails['db_collation'] = nil
# gitlab_rails['db_database'] = "gitlabhq_production"
# gitlab_rails['db_pool'] = 10
# gitlab_rails['db_username'] = "gitlab"
# gitlab_rails['db_password'] = nil
# gitlab_rails['db_host'] = nil
# gitlab_rails['db_port'] = 5432
# gitlab_rails['db_socket'] = nil
# gitlab_rails['db_sslmode'] = nil
# gitlab_rails['db_sslrootcert'] = nil
# gitlab_rails['db_prepared_statements'] = false
# gitlab_rails['db_statements_limit'] = 1000
-- 省略 --
# postgresql['enable'] = true

編集後

gitlab_rails['db_adapter'] = "postgresql"
gitlab_rails['db_encoding'] = "utf8"
# gitlab_rails['db_collation'] = nil
gitlab_rails['db_database'] = "gitlab"
# gitlab_rails['db_pool'] = 10
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "password"
gitlab_rails['db_host'] = '192.168.33.20'
gitlab_rails['db_port'] = 5432
# gitlab_rails['db_socket'] = nil
# gitlab_rails['db_sslmode'] = nil
# gitlab_rails['db_sslrootcert'] = nil
# gitlab_rails['db_prepared_statements'] = false
# gitlab_rails['db_statements_limit'] = 1000
-- 省略 --
postgresql['enable'] = false

上記の編集内容は環境に合わせる必要がある

編集後に下記コマンドを実行

gitlab-ctl reconfigure

実行結果にエラーなど無ければ Postgresql の外部インスタンス化成功!

今回は参考にしたサイトなどはなくなんとなくできるのでは?と思い実施した結果です

この記事が気に入ったらサポートをしてみませんか?