公司由svn改造到git需要搭建一套新的架构体系,本次主要记录gitlab的搭建和LDAP的数据打通
gitlab安装步骤
yum install gitlab-ce #自动安装最新版
yum install gitlab-ce-x.x.x #安装指定版本
本次安装版本为:15.17.4 ,系统为centos
查看当前系统信息命令
cat /etc/redhat-release cat /etc/centos-release
安装完毕以后 需要修改gitlab对应的配置信息
cd /etc/gitlab
vim gitlab.rb
修改nginx配置 vim /var/opt/gitlab/nginx/conf/gitlab-http.conf server_name xxx.xxx.com 完了以后公司内部使用的开发人员自行绑定hosts即可正常访问,当然也可以用nginx做一层代理
此处gitlab就算搭建完毕了,由于15这个版本UI改动较大所以需要慎重升级。
来继续配置ldap
gitlab_rails['ldap_enabled'] = true ###! **remember to close this block with 'EOS' below** gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' main: label: 'LDAP' host: '*******.cn' port: 389 uid: 'SamAccountName' bind_dn: 'cn=xx,ou=xxx,dc=xx,dc=cn' password: 'password' encryption: 'plain' verify_certificates: false smartcard_auth: false active_directory: false allow_username_or_email_login: false lowercase_usernames: false block_auto_created_users: false base: 'ou=xxxx,dc=aura,dc=cn' user_filter: 'memberOf=cn=xxxx,ou=xxxx,dc=xxxx,dc=cn' # group_base: '' # admin_group: '' # sync_ssh_keys: false EOS
这里配置的过程有几个坑需要特殊记录一下
配置字段说明
label: 'LDAP' gitlab登录页面显示的名称可以看着写 host: 搭建的ldap的ip或者域名 port: 搭建的ldap的端口,一般默认389 uid: ldap用户全是英文填写是cn,其他为SamAccountName bind_dn: CN=test,OU=developer,DC=domainname,DC=com DC是域名配置的意思 cn=test 可能代表一个用户名, ou=developer 代表一个 active directory 中的组织单位。 这句话的含义可能就是说明 test 这个对象处在domainname.com 域的 developer 组织单元中 password:ldap的管理员密码 encryption: 'plain' # 加密 verify_certificates: false smartcard_auth: false active_directory,似乎是针对连接是否是ad域控的标示,因为这部分是ldap的配置,故为false; allow_username_or_email_login: false 是否启用邮件作为用户名登陆 lowercase_usernames: false block_auto_created_users: false base: 'ou=xxxx,dc=aura,dc=cn' # 核心配置,表示从哪一层读取用户信息 user_filter: 'memberOf=cn=xxxx,ou=xxxx,dc=xxxx,dc=cn' 此处需要重点注意,gitlab-rake gitlab:ldap:check数据检测没有出现用户列表 清配置此处信息
1、配置完毕必须重新加载配置文件‘
gitlab-ctl reconfigure 完毕以后需要检查一下配置结果 gitlab-rake gitlab:ldap:check
1、LDAP authentication... Success 表示权限链接成功
2、只有下边的一堆list才能算是真正的成功,此处表示ldap权限组成员正常列出否则还是需要调整配置
3、如果你是当前系统的搭建人 你的账号和域帐号需要隔离否则不能正常“域帐号登录”’