searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Ldap server docker 配置

2024-11-13 09:32:03
5
0

准备文件

  1. 在配置之前需要准备好dockerfile 来拉取基本的image
  2. 需要准备好LDAP的配置文件ldif 。 ldif 文件包含dc.ldif, organization.ldif, rootpw.ldif, memberof.ldif 等,这些配置文件需要根据自己的需求填写。
  3. 需要准备好创建user的脚本文件和启动脚本文件
  4. 把上述文件和docker file 放在一个文件夹下
**docker file**
From {repo}/centos7:latest
MAINTAINER {auther's email}

#add startup scripts
COPY run-*.sh /usr/local/bin/
COPY ldifs/*.ldif /root/openldap/
COPY ldifs/add* /root/openldap/

#expose default ports for ldap and ldaps
EXPOSE 389 636

ENTERPOINT["/bin/bash", "/usr/local/bin/run-openldap.sh"]
**run.sh**
slapd -h "ldap:/// ldaps:///"
/bin/bash
**adduser.py**

import os
import time
import sys

userPrefixList = {vmxx, vmyy, vmzz}
num = 3000
idStartIndex = 5001
bn = sys.argv[1]

user_ldif = """
dn:cn={username}, ou=people,{bn}
cn: {username}
gidnumber: {gid}
homeDirectory: /home/{username}
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: {username}
uid: {username}
uidnumber: {uid}
userpassword: **********
"""

def pipe(cmd):
    proc = os.popen(cmd, 'r')
    text = proc.read()
    sts  = proc.close()
    print(cmd)
    if sts is None:
        sts = 0
    print(text)
    return (text, sts)

for user_prefix in userPrefixList:
    for i in range(1, num+1):
        with open("user.ldif", "w+") as fd:
            fd.truncate()
            username = user_prefix + str(i)
            uid = idStartIndex
            gid = idStartIndex
            para = {'username': username, 'gid': gid, 'uid': uid, 'bn': bn}
            user = user_ldif.format(**para)
            print(user)
            fd.write(user)
        print("Add user" + username)
        pipe("ldapadd -x -w ******* -D 'cn=Manager, {}' -f user.ldif -H ldapi:///".format(bn))
         idStartIndex += 1
         if idStartIndex % 10 ==0: 
             time.sleep(1)

build image并配置

  1. 进入到dockerfile所在的目录下
  2. 执行命令docker build -t ldap:v1 .
  3. 进入到docker中docker run -p 389:389 -p 636:636 -it ldap:v1
  4. 进入docker 以后开始配置ldap。首先需要安装一些包
  5. 执行安装命令yum install -y openldap openldap-servers openldap-clients
  6. 配置DB cp /usr/share/openldap-servers/DB_DONFIG.example /var/lib/ldap/DB_CONFIG
  7. 导入schema:ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done
  8. slappasswd 修改密码,修改rootpw.ldif, 执行ldapadd -Y EXTERNAL -H ldapi:/// -f rootpw.ldif
  9. 启用memberof, 加载memberof模块, 执行ldapadd -Q -T EXTERNAL -H ldapi:/// -f memberof.ldif(注:把olcMemberOfRefint 设置魏TRUE可以开启refint功能。若设置了属性manager,删除时可以一键删除所有含有manager属性的记录)
  10. 修改organization.ldif,执行ldapadd -x -D cn=root, dc=xxxx,dc=com -W -f /root/openldap/organization.ldif -H ldapi:///
  11. 执行python adduser.py domain, 添加user 到ldap 库

检查是否配置成功并保存docker image

  1. 重启ldap服务后在ldap client上查询是否有新建的用户。查询命令ldapsearch -x -D "cn=admin,dc=xxxx,dc=com" -w Passwordxxx -b 'ou=people, dc=newname,dc=com' | grep /home/ | wc -l
  2. 如果能找到新建的用户说明配置成功。
  3. 保存当前配置好的docker,先查询到当前运行的container id docker ps, 然后保存docker docker commit containerID ldapserver:v2
  4. 后续直接启动ldapserver:v2就可以开启ldap服务了。
  5. 如果想修改user,可以通过挂在volume,复写adduser.py 并执行。
0条评论
0 / 1000
c****c
1文章数
0粉丝数
c****c
1 文章 | 0 粉丝
c****c
1文章数
0粉丝数
c****c
1 文章 | 0 粉丝
原创

Ldap server docker 配置

2024-11-13 09:32:03
5
0

准备文件

  1. 在配置之前需要准备好dockerfile 来拉取基本的image
  2. 需要准备好LDAP的配置文件ldif 。 ldif 文件包含dc.ldif, organization.ldif, rootpw.ldif, memberof.ldif 等,这些配置文件需要根据自己的需求填写。
  3. 需要准备好创建user的脚本文件和启动脚本文件
  4. 把上述文件和docker file 放在一个文件夹下
**docker file**
From {repo}/centos7:latest
MAINTAINER {auther's email}

#add startup scripts
COPY run-*.sh /usr/local/bin/
COPY ldifs/*.ldif /root/openldap/
COPY ldifs/add* /root/openldap/

#expose default ports for ldap and ldaps
EXPOSE 389 636

ENTERPOINT["/bin/bash", "/usr/local/bin/run-openldap.sh"]
**run.sh**
slapd -h "ldap:/// ldaps:///"
/bin/bash
**adduser.py**

import os
import time
import sys

userPrefixList = {vmxx, vmyy, vmzz}
num = 3000
idStartIndex = 5001
bn = sys.argv[1]

user_ldif = """
dn:cn={username}, ou=people,{bn}
cn: {username}
gidnumber: {gid}
homeDirectory: /home/{username}
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: {username}
uid: {username}
uidnumber: {uid}
userpassword: **********
"""

def pipe(cmd):
    proc = os.popen(cmd, 'r')
    text = proc.read()
    sts  = proc.close()
    print(cmd)
    if sts is None:
        sts = 0
    print(text)
    return (text, sts)

for user_prefix in userPrefixList:
    for i in range(1, num+1):
        with open("user.ldif", "w+") as fd:
            fd.truncate()
            username = user_prefix + str(i)
            uid = idStartIndex
            gid = idStartIndex
            para = {'username': username, 'gid': gid, 'uid': uid, 'bn': bn}
            user = user_ldif.format(**para)
            print(user)
            fd.write(user)
        print("Add user" + username)
        pipe("ldapadd -x -w ******* -D 'cn=Manager, {}' -f user.ldif -H ldapi:///".format(bn))
         idStartIndex += 1
         if idStartIndex % 10 ==0: 
             time.sleep(1)

build image并配置

  1. 进入到dockerfile所在的目录下
  2. 执行命令docker build -t ldap:v1 .
  3. 进入到docker中docker run -p 389:389 -p 636:636 -it ldap:v1
  4. 进入docker 以后开始配置ldap。首先需要安装一些包
  5. 执行安装命令yum install -y openldap openldap-servers openldap-clients
  6. 配置DB cp /usr/share/openldap-servers/DB_DONFIG.example /var/lib/ldap/DB_CONFIG
  7. 导入schema:ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done
  8. slappasswd 修改密码,修改rootpw.ldif, 执行ldapadd -Y EXTERNAL -H ldapi:/// -f rootpw.ldif
  9. 启用memberof, 加载memberof模块, 执行ldapadd -Q -T EXTERNAL -H ldapi:/// -f memberof.ldif(注:把olcMemberOfRefint 设置魏TRUE可以开启refint功能。若设置了属性manager,删除时可以一键删除所有含有manager属性的记录)
  10. 修改organization.ldif,执行ldapadd -x -D cn=root, dc=xxxx,dc=com -W -f /root/openldap/organization.ldif -H ldapi:///
  11. 执行python adduser.py domain, 添加user 到ldap 库

检查是否配置成功并保存docker image

  1. 重启ldap服务后在ldap client上查询是否有新建的用户。查询命令ldapsearch -x -D "cn=admin,dc=xxxx,dc=com" -w Passwordxxx -b 'ou=people, dc=newname,dc=com' | grep /home/ | wc -l
  2. 如果能找到新建的用户说明配置成功。
  3. 保存当前配置好的docker,先查询到当前运行的container id docker ps, 然后保存docker docker commit containerID ldapserver:v2
  4. 后续直接启动ldapserver:v2就可以开启ldap服务了。
  5. 如果想修改user,可以通过挂在volume,复写adduser.py 并执行。
文章来自个人专栏
测开技术成长
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0