【Gitlab】LDAP 設定過程

問題


公司本來的環境就有ad,所以這次來做ad帳號的整合動作

追蹤


設定檔在
# vi /etc/gitlab/gitlab.rb
上面的需要做gitlab-ctl reconfigure
# vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
這邊的則是改完作 gitlab-ctl restart就可以
這邊決定從gitlab推薦的修改方式改起
所以我們動 /etc/gitlab/gitlab.rb 這個

修改


進入gitlab.rb後找尋
# gitlab_rails['ldap_enabled'] = false
.....
先把他設定為true,然後進行設定
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main: # 'main' is the GitLab 'provider ID' of this LDAP server
  label: 'LDAP'
  host: 'xxxx.com.tw' # 這邊是ldap的位置
  port: 389
  uid: 'sAMAccountName'
  method: 'plain' # "tls" or "ssl" or "plain"
  bind_dn: 'CN=帳號,OU=Users,DC=xxxx,DC=com,DC=tw' # 這裡是拿來登入LDAP的帳號 CN=帳號 OU部分看公司怎麼設定
  password: 'CN帳號所用的密碼'
  active_directory: true # 如果你的ldap不是ad 就改成false
  allow_username_or_email_login: true # 允許使用者不用帶網域登入 ex. wei@xxxx.com.tw -> wei
  block_auto_created_users: true # 是不是先block自動生成的帳號,可以在admin area unblock
  base: 'OU=Users,DC=xxxx,DC=com,DC=tw' # 搜尋的位置
  user_filter: ''
EOS
然後重寫設定檔就可以了
# gitlab-ctl reconfigure
需要更詳細的介紹可以看一下官網LDAP設定的部分
講得還蠻詳細的,對設定會很有幫助

問題與解決


1.ERROR: /etc/gitlab/gitlab.rb:578: can't find string "EOS" anywhere before EOF
[2015-07-16T02:41:58+08:00] ERROR: /etc/gitlab/gitlab.rb:578: can't find string "EOS" anywhere before EOF
/etc/gitlab/gitlab.rb:39: syntax error, unexpected end-of-input, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
忘記結尾了拉 EOS 必須要成對出現

2.Could not authorize you from LDAP because "Invalid credentials"
如果已經排除連不到LDAP的話,就先去確定CN的帳號是不是正確被抓到
我用的工具是LDAP admin

我遇到的問題是OU是中文抓不到CN帳號
避開就好了

留言