操作说明:
该文章是演示如何使用docker搭建OpenLDAP和gitlab,并配置Gitlab接入OpenLdap
环境说明:
OpenLDAP:192.168.10.101
Gitlab:192.168.10.102
这两个操作系统安装了docker
(看不清图可以右击复制图片地址,粘贴到浏览器查看)
具体步骤:
一、使用docker部署openldap
1.拉取openldap和phpLdapAdmin的docker镜像
[root@zhuhao-devops-1 openldap]# docker pull osixia/openldap [root@zhuhao-devops-1 openldap]# docker pull osixia/phpldapadmin [root@zhuhao-devops-1 openldap]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx-web latest b36b13e34f9e 25 hours ago 133MB <none> <none> 4e44296068d3 25 hours ago 133MB nginx latest 7e4d58f0e5f3 2 weeks ago 133MB node1:5000/zh_nginx latest 7e4d58f0e5f3 2 weeks ago 133MB registry 2 2d4f4b5309b1 3 months ago 26.2MB osixia/openldap latest e55926b7c377 3 months ago 262MB osixia/phpldapadmin latest e340e61b03c4 10 months ago 302MB
2.启动openldap和phpLdapAdmin的docker容器
#启动openLDAP容器 docker run -p 389:389 -p 636:636 --name youe_ldap --network bridge --hostname openldap-host --env LDAP_ORGANISATION="tq" --env LDAP_DOMAIN="tq.com" --env LDAP_ADMIN_PASSWORD="tq123456" --detach osixia/openldap #启动phpLdapAdmin docker run -d --privileged -p 18004:80 --name youe_pla --env PHPLDAPADMIN_HTTPS=false --env PHPLDAPADMIN_LDAP_HOSTS=192.168.10.101 --detach osixia/phpldapadmin
启动完成后查看容器运行情况,有没有正常UP,如果是一只Restart用docker logs -f 容器名
查看具体问题
[root@zhuhao-devops-1 openldap]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1251d19ea411 osixia/phpldapadmin "/container/tool/run" 38 minutes ago Up 38 minutes 443/tcp, 0.0.0.0:18004->80/tcp youe_pla a099d01ce3e9 osixia/openldap "/container/tool/run" 56 minutes ago Up About an hour 0.0.0.0:389->389/tcp, 0.0.0.0:636->636/tcp youe_ldap eb60f2a99838 nginx-web "/docker-entrypoint.…" 12 hours ago Up 12 hours 0.0.0.0:88->80/tcp nginx-web bc037adabcfb registry:2 "/entrypoint.sh /etc…" 46 hours ago Up 37 hours 0.0.0.0:5000->5000/tcp keen_meninsky
二、访问phpldapadmin页面
输入启动时配置的dc
登陆后右侧列表是没有用户和组织的,需要我们自己创建
三、创建组织和用户
1.创建组织
选择【Create new entry here】-【Generic: Organisational Unit】-【commit】
创建完成后就有了右侧的People组织
2.创建用户
点开【People】-【Create new entry here】-【Kolab: User Entry】-【create object】-【commit】
添加用户名属性
查看创建好的用户zhu’hao2
三、使用docker部署gitlab
创建文件夹用来挂载数据
mkdir /usr/local/gitlab/{config,data,logs}
1.拉取镜像
docker pull gitlab/gitlab-ce
2.启动容器
docker run -d --hostname 192.168.10.102 --name gitlab-ce --restart always --publish 30022:22 --publish 30080:80 --publish 30443:443 --volume /usr/local/gitlab/data:/var/opt/gitlab --volume /usr/local/gitlab/logs:/var/log/gitlab --volume /usr/local/gitlab/config:/etc/gitlab gitlab/gitlab-ce
启动完成后可以查看docker 容器运行情况
[root@zhuhao-devops-2 gitlab]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 83a5b06ffe9d gitlab/gitlab-ce "/assets/wrapper" About an hour ago Up About an hour (healthy) 0.0.0.0:30022->22/tcp, 0.0.0.0:30080->80/tcp, 0.0.0.0:30443->443/tcp gitlab-ce
四、配置gitlab连接openldap
1.编辑配置文件
vim /usr/local/gitlab/config/gitlab.rb
添加配置文件到gitlab.rb,如下图
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: '192.168.10.101' port: 389 uid: 'cn' method: 'plain' # "tls" or "ssl" or "plain" bind_dn: 'cn=admin,dc=tq,dc=com' password: 'tq123456' allow_username_or_email_login: false base: 'ou=People,dc=tq,dc=com' attributes: username: ['uid'] email: ['mail'] first_name: 'sn' EOS
2.进入容器重启gitlab
[root@zhuhao-devops-2 config]# docker exec -it gitlab-ce bash root@192:/# gitlab-ctl reconfigure
重启完成后,访问gitlab登陆页面:http://192.168.10.102:30080
可以看到已经出现了LDAP登陆选项
输入用户名密码后,即可登陆
到此已经部署完成
附上LDAP Admin 连接OpenLDAP方法:
访问LDAP Admin官网下载系统对应的程序:
http://www.ldapadmin.org/download/ldapadmin.html
下载后运行程序:
点解右上角【Connect】-【New connection】
双击ldap图标,连接openldap服务器
1.创建ou
右击dc=tq,dc=com[192.168.10.101]
2.创建用户
创建完成后即可用此账号登陆集成的gitlab
最后附上Jenkins连接openldap配置图: