美文网首页技术也要去运维
Gitlab 部署和AD对接

Gitlab 部署和AD对接

作者: 天堂流浪人 | 来源:发表于2018-07-07 15:15 被阅读21次

Gitlab 部署和AD对接

一、缘起

公司一直使用SVN厌倦了,准备换换口味,于是去实验Gitlab。

二、Gitlab安装

作为实验性质,自然选择了最为简便的Docker方式进行。

docker run --detach \
    --publish 7443:443 \
    --publish 7080:80 \
    --publish 7022:22 \
    --name gitlab \
    --restart always \
    --volume /data/gitlab/config:/etc/gitlab \
    --volume /data/gitlab/logs:/var/log/gitlab \
    --volume /data/gitlab/data:/var/opt/gitlab \
    gitlab /gitlab-ce:latest

三、AD域对接

作为一个公司自然有着统一个用户体系,总不能一个系统去创建一套用户吧,于是AD对接成了必然。度娘一阵咨询,看了N多前辈曾经踩过的坑,总结了自己的做法,直接成功,幸运站在了前辈的肩膀上。

1、创建一个内部对接专用帐户

为方便配置,建议用户创建在域自有的组Users下,这里创建帐户如下:

  帐户:ldaponly
  密码:P@ssw0rd

2、登陆docker,修改/etc/gitlab/gitlab.rb中LDAP相关配置如下:

AD域的IP为172.10.10.1
AD域名为corp.local


### LDAP Settings
###! Docs: https://docs.gitlab.com/omnibus/settings/ldap.html
###! **Be careful not to break the indentation in the ldap_servers block. It is
###!   in yaml format and the spaces must be retained. Using tabs will not work..
**

gitlab_rails['ldap_enabled'] = true

###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
   main: # 'main' is the GitLab 'provider ID' of this LDAP server
     label: 'LDAP'
     host: '172.10.10.1'
     port: 389
     uid: 'sAMAccountName'
     bind_dn: 'cn=ldaponly,cn=users,dc=corp,dc=local'
     password: 'P@ssw0rd'
     encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
     verify_certificates: true
     active_directory: true
     allow_username_or_email_login: false
     lowercase_usernames: false
     block_auto_created_users: false
     base: 'dc=corp,dc=local'
     user_filter: ''
     ## EE only
     group_base: ''
     admin_group: ''
     sync_ssh_keys: false

#   secondary: # 'secondary' is the GitLab 'provider ID' of second LDAP server
#     label: 'LDAP'
#     host: '_your_ldap_server'
#     port: 389
#     uid: 'sAMAccountName'
#     bind_dn: '_the_full_dn_of_the_user_you_will_bind_with'
#     password: '_the_password_of_the_bind_user'
#     encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
#     verify_certificates: true
#     active_directory: true
#     allow_username_or_email_login: false
#     lowercase_usernames: false
#     block_auto_created_users: false
#     base: ''
#     user_filter: ''
#     ## EE only
#     group_base: ''
#     admin_group: ''
#     sync_ssh_keys: false
 EOS

3、重置Gitlab并重启

#gitlab-ctl reconfigure
.....(略)
Running handlers:
Running handlers complete
Chef Client finished, 7/535 resources updated in 32 seconds
gitlab Reconfigured!

#gitlab-ctl restart
.....(略)
ok: run: redis-exporter: (pid 31729) 1s
ok: run: sidekiq: (pid 31738) 0s
ok: run: sshd: (pid 31741) 1s
ok: run: unicorn: (pid 31749) 0s

4、检查AD对接是否正常

#gitlab-rake gitlab:ldap:check
Checking LDAP ...

Server: ldapmain
LDAP authentication... Success
LDAP users with access to your GitLab server (only showing the first 100 results)
    DN: cn=access control assistance operators,cn=builtin,dc=corp,dc=local   sAMAccountName: Access Control Assistance Operators
    DN: cn=account operators,cn=builtin,dc=corp,dc=local     sAMAccountName: Account Operators
.....(略)
    DN: cn=iis_iusrs,cn=builtin,dc=corp,dc=local     sAMAccountName: IIS_IUSRS
    DN: cn=incoming forest trust builders,cn=builtin,dc=corp,dc=local    sAMAccountName: Incoming Forest Trust Builders

Checking LDAP ... Finished

四、使用

此时在登录界面上可以看到LDAP,直接选择次登录即可。
注意:LDAP Username中只输入用户名称不需要加@corp.local

相关文章

网友评论

    本文标题:Gitlab 部署和AD对接

    本文链接:https://www.haomeiwen.com/subject/nkpwuftx.html