docker-compose部署openLdap+phpldapadmin

681 阅读2分钟

前言: 公司的账号管理一直使用的ldap统一管理,之前就部署过,但是时间有点久了,刚好最近需要部署,那就写篇文章记录一下,免得再次忘记

环境准备

  • ubuntu-20.04.6
  • docker
  • docker-compose

正式开始

  • 创建容器需要的目录

    • mkdir /data/openldap/database -p #数据存储的目录
    • mkdir /data/openldap/config -p #放置配置文件的目录
    • mkdir /data/openldap/certs -p #证书目录
  • docker-compose部署ldap-services和管理界面,进入ldap目录 cd /data/openldap,创建编排文件vim openldap.yaml

    version: '3'
    #创建网络
    networks:
      openldap_net:
        driver: bridge
    services:
      openldap:
        image: osixia/openldap:1.5.0
        container_name: openldap_service
        hostname: openldap_service
        restart: always
        environment:
          TZ: Asia/Shanghai
          #所属的组织,一般为企业顶级域名
          LDAP_ORGANISATION: "xxx.com"
          #所属域,一般为域名(顶级域名或者下级域名)
          LDAP_DOMAIN: "xxx.com"
          # 管理员用户名
          LDAP_ADMIN_USERNAME: "admin"
          # 管理员根目录
          LDAP_ROOT: "dc=xxx,dc=com"
          # 管理员登录密码
          LDAP_ADMIN_PASSWORD: "123456"
        command: [ '--copy-service' ]
        volumes:
          - /data/openldap/database:/var/lib/ldap  
          - /data/openldap/config:/etc/ldap/slapd.d  
          - /data/openldap/certs:/container/service/slapd/assets/certs 
        ports:
          - 388:389
        networks:
          - openldap_net
      phpldapadmin:
        image: osixia/phpldapadmin:0.9.0
        container_name: phpldapadmin
        hostname: phpldapadmin
        restart: always
        environment:
          TZ: Asia/Shanghai # 设置容器时区与宿主机保持一致
          PHPLDAPADMIN_HTTPS: "false" # 是否使用https
          PHPLDAPADMIN_LDAP_HOSTS: openldap_service # 指定LDAP容器名称
        ports:
          - 8090:80
        depends_on:
          - openldap
        links:
          - openldap
        networks:
          - openldap_net
    
  • 执行部署命令: docker-compose -f openldap.yaml up -d

    启动完成

    image.png

  • 打开web控制台页面,地址:http://IP:8090

    image.png

  • Login项 填入配置的LDAP_ADMIN_USERNAME和LDAP_ROOT:cn=admin,dc=xxx,dc=com,Password项 填入配置的密码LDAP_ADMIN_PASSWORD:123456,点击Authenticate 登录成功后就可以愉快的玩耍啦~~~

    image.png

  • 设置中文 进入容器:docker exec -it phpldapadmin /bin/bash 安装中文语言,容器内按顺序执行:

    #更新包
    apt-get update -y
    #安装中文语言环境
    apt-get install -y locales
    #生成中文环境
    echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen
    #设置中文环境
    locale-gen
    
    #### 写入 bash.bashrc 文件
    echo -e "\n# chinese zh_CN.UTF-8" >> /etc/bash.bashrc
    echo -e "export LANG=\"zh_CN.UTF-8\"" >> /etc/bash.bashrc
    echo -e "export LANGUAGE=\"zh_CN.UTF-8\"" >> /etc/bash.bashrc
    echo -e "export LC_ALL=\"zh_CN.UTF-8\"" >> /etc/bash.bashrc
    
    #### 写入 profile 文件
    echo -e "\n# chinese zh_CN.UTF-8" >> /etc/profile
    echo -e "export LANG=\"zh_CN.UTF-8\"" >> /profile
    echo -e "export LANGUAGE=\"zh_CN.UTF-8\"" >> /etc/profile
    echo -e "export LC_ALL=\"zh_CN.UTF-8\"" >> /etc/profile
    
  • 重启容器 docker restart phpldapadmin 刷新web页面就可以看到已设置为中文

    image.png