封尘网

让学习成为一种习惯!

Centos7以Docker方式运行ldap服务

记得之前的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版的openldapLDAP Account Manager的安装配置。

下一篇:在Ldap中添加多组用于不同的平台认证。

提醒:本文最后更新于 81 天前,文中所描述的信息可能已发生改变,请谨慎使用。