postgresql创建用户
su - postgres
psql
create role gitlab login encrypted password 'pass';
\du ;显示用户
postgresql新建数据库
su - postgres
psql
create database gitlabhq_production owner=gitlab ENCODING = 'UTF8';
\l ;列表数据库
postgresql扩展pg_trgm
yum -y install postgresql96-contrib-9.6.8 # 默认的 yum -y install postgresql-contrib su - postgres -bash-4.2$ psql gitlabhq_production # 或使用\c 库名 来切换数据库
psql (9.6.6)
Type "help" for help. postgres=# CREATE EXTENSION pg_trgm; 查看extension
select extname,extowner,extnamespace,extrelocatable,extversion from pg_extension;
编辑 /etc/gitlab/gitlab.rb
external_url 'http://url' ## postgresql connect postgresql['enable'] = false
gitlab_rails['db_adapter'] = "postgresql"
gitlab_rails['db_encoding'] = "utf8"
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_pool'] = 30
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "pass"
gitlab_rails['db_host'] = "10.100.12.63"
gitlab_rails['db_port'] = "5432" ## redis connet(单实例、或主从集群)
redis['enable'] = false
gitlab_rails['redis_host'] = "redis_host"
gitlab_rails['redis_port'] = 6379
gitlab_rails['redis_password'] = "redis_password"
gitlab_rails['redis_database'] = 0 ## redis sentinel哨兵集群
# redis连接方式只设置一种就可以,CE版也可以连接redis sentinel集群
redis['enable'] = false
gitlab_rails['redis_sentinels'] = [
{'host' => 'sentinel-0.conf.com', 'port' => 26379},
{'host' => 'sentinel-1.conf.com', 'port' => 26379},
{'host' => 'sentinel-2.conf.com', 'port' => 26379},
{'host' => 'sentinel-3.conf.com', 'port' => 26379},
]
redis['master_name'] = 'mymaster'
redis['master_password'] = 'redis_auth_pass'
gitlab_rails['redis_database'] = 0
sudo gitlab-ctl reconfigure
#检查是否使用自定义配置
cat /opt/gitlab/embedded/service/gitlab-rails/config/database.yml
gitlab-ctl start
当 unicorn 没有还没有启动时会报502
netstat -tulpn | grep :8080
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 3906/unicorn master
postgrepsql 连接测试
psql -h {host} -p {port} -U {USERNAME} -W [DBNAME]
gitlab的客户端为gitlab-psql
# 注意
只有连接Postgresql master库, gitlab才能正常使用。