配置ldap
公司搭建的gitlab现在需要开启ldap服务,也就是这样就可以用公司的域账号登陆gitlab,而不用开发一个一个去注册账号了。
开启ldap登陆的任务光荣的落到了我身上,于是我就登陆到gitlab服务器一看,嚯,这还是在容器下启动的,如图:
于是我就docker exec -it 容器ID号 /bin/bash
登陆到这个容器里,编辑/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14ldap:
enabled: true
sync_time:
host: '公司域账号服务器IP地址'
port: 389
uid: 'sAMAccountName'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'dahuatech\Ldap_System'
password: '对应的密码'
active_directory:
allow_username_or_email_login:
lowercase_usernames:
base:
user_filter:
但是在填写到base的时候发现了一个问题,公司的base是中文的,是'OU=大数据研究院,OU=研发中心,OU=大华技术,DC=dahuatech,DC=com'
,但是在文件里输入中文却是乱码,如图:
容器默认是不支持中文的,在容器里的命令行输入中文也是空白。那么面对一个已经运行的容器,如何正常的输入中文呢?
答案是:使用docker exec -it 容器ID号 env LANG=C.UTF-8 /bin/bash
登陆,这样就能正常使用中文了,如图:
gitlab-ctl restart
之后,登陆到gitlab页面一看,已经添加ldap访问方式:
取消“注册”功能
修改好配置文件gitlab.yml
之后,现在就要把“注册”功能去掉,这样以后都统一用公司的域账号登陆,避免一些乱七八糟的用户来注册乱七八糟的账号。
首先用root账号登陆到gitlab
里,在网页里进入到admin area
,如图:
然后再点击最下面的settings
,选择Sign-up restrictions
,然后把Sign-up enabled
前面的勾点掉,如图:
保存改变之后,退出root账号,重新看一下,gitlab的注册功能就暂时被取消了,需要的时候再开即可。
配置域名
为了方便记忆,给gitlab服务配置一个域名,在阿里云的域名解析控制台给gitlab配置了域名之后,还要在gitlab.yml
手动更改hostname,把hostname改成域名的样子,如图:
这样没有结束,因为网页里的url还是显示外网IP而非域名,如下:
此时需要重启,重启的命令是gitlab-ctl restart
,重启完了之后url也会发生变化。这样才算完整的配置了域名: