GitLab配置

一、Postgresql數據庫遠程連接配置

使用Omnibus-GitLab 進行一鍵安裝GitLab后,自帶了 PostgreSQL 作為缺省的內部數據存儲,比如用戶信息, 源碼倉庫信息等。
PostgreSQL默認情況下,遠程訪問不能成功,如果需要允許遠程訪問,需要修改2個配置文件。

  • pg_hba.conf
  • postgresql.conf
# cd /var/opt/gitlab/postgresql/data    //進入到postgresql配置文件存放位置
# vim pg_hba.conf 
  host    all   all  ::1/32    trust   //此行表示“本機”不需要密碼即可登錄 
  host    all   all  0.0.0.0/0  md5 //此行,0.0.0.0/0 代表所有ip地址可以連接,但需要密碼
# vim postgresql.conf 
  listen_addresses = '*'    //為保證locahost、127.0.0.1、ip地址均可訪問,設置為“*”
# gitlab-ctl restart postgresql                    //重啟postgresql
# cd /opt/gitlab/embedded/                      //進入安裝目錄
# bin/psql -U gitlab -d gitlabhq_production -h localhost   // 不用輸入密碼就可進來
  psql (9.6.3)
  Type "help" for help.

  gitlabhq_production=> alter user gitlab with password 'gitlab';  //修改gitlab密碼
   //gitlab創建的[數據庫超級用戶為gitlab-psql,想修改密碼自己通過命令修改即可
  gitlabhq_production-> \q               //退出
# cd /var/opt/gitlab/postgresql/data
# vim pg_hba.conf
   host    all         all    ::1/32    md5      //修改trust 為md5 ,即連接需要密碼
# gitlab-ctl restart postgresql        //重啟

注意:既然修改了數據庫gitlab用戶的密碼,gitlab服務器中數據庫配置文件,也需要修改,不然數據庫連接不上

# cd /var/opt/gitlab/
# vim gitlab-rails/etc/database.yml 
  adapter: postgresql
  encoding: unicode
  collation:
  database: gitlabhq_production
  pool: 10
  username: 'gitlab'
  password: 'gitlab'          #添加設置的密碼
  host: '/var/opt/gitlab/postgresql'
  port: 5432
  socket:
  sslmode:
  sslrootcert:
  sslca:
  load_balancing: {"hosts":[]}
  prepared_statements: true
  statements_limit: 1000

# gitlab-ctl restart

# /opt/gitlab/embedded/bin/psql -U gitlab -d gitlabhq_production -h localhost
Password for user gitlab:     

輸入密碼"gitlab" 回車就可以進來了
到此,配置完成。

做了上面的配置,我們可以使用Navicat Premium 連接postgresql

另外,查看postgresql進程日志可以查看/var/log/gitlab/postgresql 該路徑下的 current文件

二、配置GitLab郵箱

GitLab的郵箱服務是不可或缺的一部分, 它提供了代碼提交提醒, 用戶密碼找回,注冊認證等功能. GitLab也提供了幾種郵件配置方案, 有使用sendmail, postfix 及 smtp, 這里只介紹smtp, 其中sendmail太過于古老, 現在幾乎被postfix替代了, 而postfix配置沒有smtp方便, 當然, 最主要的還是不想啟動postfix郵件服務器, 直接用第三方的服務

1. 修改配置文件

vi /etc/gitlab/gitlab.rb

#修改如下配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "gitlab@example.com"
gitlab_rails['smtp_password'] = "123"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false

2. 修改gitlab發信人

#修改其發件人為GitLab 與上面保持一致

gitlab_rails['gitlab_email_from'] = "gitlab@example.com"
user["git_user_email"] = "gitlab@example.com"

記住這里有一個坑, 如果你不配置發件人, 有些郵件服務器會發送失敗, 所以我們最好把賬號和發件人都配置了, 并且保持一致, 這樣保證兼容問題。

另外的問題:

/etc/gitlab/gitlab.rb文件中的
external_url 'localhost'
改為
external_url 'http://192.169.10.11' #服務器地址
這樣重置密碼或者登陸驗證時所發送的連接地址才能指向服務器。

修改完成后,重新加載配置并重啟,注意:重新加載配置后,postgresql遠程連接需要重新修改配置文件,其密碼不會變,可以在運行 gitlab-ctl reconfigure之前備份下文件。

gitlab-ctl reconfigure
gitlab-ctl restart

3.測試

安裝完成后可進行“忘記密碼”以及注冊驗證來測試郵箱服務是否可用。

問題:

以上是使用郵箱代理,當申請下業務郵箱后,我依然使用上述配置,郵箱依然不可用,查看/var/log/gitlab/sidekiq/current日志報出如下錯誤:【證書與服務器不符】

WARN: OpenSSL::SSL::SSLError: hostname "mail.host.com" does not match the server certificate
WARN: /opt/gitlab/embedded/lib/ruby/2.3.0/openssl/ssl.rb:318:in `post_connection_check'

解決辦法:

不加入驗證

修改/etc/gitlab/gitlab.rb文件

gitlab_rails['smtp_openssl_verify_mode'] = 'none'

三、GitLab日常配置

  1. gitlab配置文件路徑: /etc/gitlab/gitlab.rb
  2. 修改地址為外網地址:external_url 'http://herbguo.gitlabserver.com'
    修改后再次執行sudo gitlab-ctl reconfigure以便配置修改生效。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容