记得之前的Ldap服务,安装完后还要配置一个Web的管理系统,就一个PHP环境也是够麻烦的。现在官方出现Docker化的部署,大大简化了部署流程。本文仅记录openldap和ldapa ccount manager两个容器的一些简单的配置,连接,接下来会有几个示例,分别是实现Jenkins,Gitlab或者gitea,Harbor等平台的ldap认证过程。由于篇幅比较大,将细分几篇文章记录。
至于ldap的一些说明,官方描述什么的自己去仔细了解,这里仅有实现方法。
由于系统版本,软件版本的区别不同可能配置方法也有不同。如果你参照本文做实验的,希望在软件版本和系统上注意选择。
系统环境
CentOS Linux release 7.2.1511 (Core)
Docker Version: 19.03.1
关闭Selinux
sed 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
安装yum-utils工具
yum install -y yum-utils
添加docker-ce源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker-ce
yum install docker-ce -y
配置服务器的时间同步
yum install ntp -y
启动自动同步时间:
timedatectl set-ntp yes #此处可用yes,no,1或0
配置时区:
timedatectl set-timezone Asia/Shanghai
启动Docker
配置一下镜像源加快拉取镜像
cat > /etc/docker/daemon.json << -'EOF'
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
-EOF
说明
如果需要添加一个私有的仓库reg.docker.tb
以同样的方法:
cat > /etc/docker/daemon.json << -'EOF'
{
"insecure-registries":["reg.docker.tb"],
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
-EOF
启动docker
systemctl enable docker && systemctl start docker
openladp操作
官网:http://www.openldap.org
使用Docker方式可以详细参考:
https://github.com/osixia/docker-openldap
拉取openladp镜像
docker pull osixia/openldap
启动容器:
docker run -p 389:389 --name openldap --restart=always --env LDAP_ORGANISATION="sotemalltest" --env LDAP_DOMAIN="sotemalltest.com" --env LDAP_ADMIN_PASSWORD="redhat" --detach osixia/openldap
说明
可以看到启动命令中都是以ENV环境把变量注入到容器中的。
- 389端口:默认ldap服务是使用389端口
- LDAP_ORGANISATION 表示ldap的机构组织
- LDAP_DOMAIN 配置LDAP域
- LDAP_ADMIN_PASSWORD 配置LDAP管理员(admin)的密码
- 默认用登陆用户名admin
客户端
一、LDAP Admin客户端
支持系统:Winndows&Linux
官网:http://www.ldapadmin.org/
下载安装配置一下即可。
如果使用ldapadmin就连安装php的管理工具也省了。
二、同样官方的镜像:osixia/phpldapadmin (PHP支持)
docker pull osixia/phpldapadmin
三、ldap account manager(PHP支持)
为什么使用它?因为它有中文啦,之前也是直接搭建PHP环境跑它的。现在使用docker方式超级方便。
拉取ldap account manager镜像
docker pull ldapaccountmanager/lam
其实公有镜像仓库里有很多个镜像,自己看哪个喜欢吧。
启动容器
docker run -d --restart=always --name ldap-account-manager -p 80:80 \
--link openldap:ldap-host \
--env PHPLDAPADMIN_LDAP_HOSTS=ldap-host \
--env PHPLDAPADMIN_HTTPS=false \
--detach ldapaccountmanager/lam
说明
- --link这里连接到openldap容器并起了一个别名ldap-host
- PHPLDAPADMIN_LDAP_HOSTS这里直接通过别名指向openldap容器,这样不需要写死IP地址
- PHPLDAPADMIN_HTTPS 不使用443协议
- --restart=always加入此参数是防止系统重启了容器未启动。[需要把docker服务开机启动]
查看两个容器的运行状态:
[root@ldap ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
25e8dff8c4e8 ldapaccountmanager/lam "/bin/sh -c 'service…" 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp ldap-account-manager
6bd66ad615bf osixia/openldap "/container/tool/run" 44 minutes ago Up 44 minutes 0.0.0.0:389->389/tcp, 636/tcp openldap
都在正常运行中,接下来打开网页访问: http://IP
注意 这里需要配置一下lam配置:
点击3那里。
会提示输入lam的密码。默认为lam,自己可以去修改。
登陆后修改以下位置。
修改一下默认的管理员帐号:
接下来是修改默认创建的两个组,这两个会在首次登陆系统时提示创建
的。
保存后,登陆系统。
提示创建默认的组:
至此,已经完成docker版的openldap
和LDAP Account Manager
的安装配置。
脚本工具
https://github.com/xiyanxiyan10/devops/tree/master/tools/ldap
文章来源
链接