apache2: 2.4.29
php: 7.2
lam: 6.5
slapd: 2.4.45
slapd: ldap server。
ldap-utils: ldap常用命令工具集。
migrationtools: 一个把系统用户和组迁移到ldap上的一个工具(可以不装)。
依次为: NO, potens.top, china,123456,123456,MDB,NO,YES
查看admin用户
输入profile的密码进入配置
分为四个设置
general setting: 通用设置。服务器地址、后缀、登录方式、密码等
account type: 账户类型。账号的类型相关的属性设置。
modules: 模块。用户和用户组相关模块的配置。
module setting: 模块设置。用户个人信息的及id的范围。
general setting->设置ldap的地址
general setting->账号查找类型
account type->账号相关的设置
其他两个先保持默认。保存设置,回到登录页。
切换语言列表登录,必须保证lam所在的服务器存在对应的语言包,如果没有使用安装语言包
找到zh_cn.UTF-8 按空格选中
创建admin profile
登录方法需要选择固定列表 admin用户不支持搜索登录
选择admin进行登录
创建dev开发组
创建yanshaowen用户
lam settting ->Edit server profiles->选择potens
vim /www/ldap-account-manager/lib/modules.inc
拉取镜像
运行镜像
本命令是ldap会默认创建一个admin用户,默认密码也是admin.
也通过环境变量设置 LDAP 服务器的参数:
例子:
LDAP查询命令
通过 ldapsearch , ldapadd , ldapdelete , ldapmodify 等参数查询、新增、删除、修改内容信息。如下所示命令是对ldap进行一次查询
正常输出结果如下所示:
数据文件和配置文件外置安装方式介绍
拉取镜像
运行镜像
客户端界面
安装成功后输入 https://ip:8888 进入页面如下图所示:
登录成功后界面
LogingDN(默认):
Password(默认):
可能会出现连接LDAP服务端失败或者用户名密码错误。
解决方案
由于LDAP Server访问是389端口号,需要将389端口加入到防火墙白名单里面。执行如下命名:
1. 安装LDAP插件
[ https://plugins.jenkins.io/ldap/]
2. 添加一个Jenkins LDAP配置
Server :这里填写LDAP server的地址即可
root DN : 这里填写你需要的base路径, 如果这里不填则勾选 Allow blank rootDN ,但是user search base和group search base则不能为空,否则会报找不到object的错误
User search base :可以不填,则会查找改root DN下的所有用户
User search filter :一般包含三种, uid={0}cn={0}sAMAccountName={0}, 如果不确定LDAP Server怎样设置的,则可以依次尝试
Group search base : 可以不填,则会查找改root DN下的所有组
Manager DN :认证查询该LDAP服务器的用户DN,包括该用户的完整CN, OU, DC
Manager Password : 上述用户的密码
其他可以保持默认配置
3. 添加另外一个LDAP Server 的配置
点击 Add Server , 可以按照上述配置继续配置,这两个可以是不同的配置
配置多个ldap时建议勾选上 Ignore if unavailable ,这样如果其中一个ldap server不可用,会尝试使用下一些个ldap server。
4. 配置过程中遇到的问题
4.1 错误日志:
User lookup: failed for user "your_username" LdapCallbacknullnested exception is javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: dc1.dc2.dc3:389 [Root exception is java.net.UnknownHostException: dc1.dc2.dc3]] LDAP Group lookup: could not verify.
其中your_username是你试图登陆的一个AD用户; dc1.dc2.dc3是你设置的DC=dc1, DC=dc2, DC=dc3,我这里出现了该问题是因为LDAP server我提供的是一个IP地址
原因:该问题是找不到 dc1.dc2.dc3该域名,请在AD上配置域名解析 your_LDAP_IP 到dc1.dc2.dc3或者临时在系统的/etc/hosts文件中添加该域名解析
4.2 错误日志:
LdapCallbackLDAP response read timed out, timeout used:60000ms.nested exception is javax.naming.NamingException: LDAP response read timed out, timeout used:60000ms.remaining name ''
这个问题是因为connection pool的连接有问题,解决方案是在Jenkins的LDAP配置中添加一个环境变量 com.sun.jndi.ldap.connect.pool 设为 false , 具体可参考:[ https://guv.cloud/post/jenkins-and-ldap/]
4.3 我使用的是docker 容器跑的Jenkins,有一些有用的命令
docker logs --following container_name/ID 查看日志
docker exec --user root -it container_name/ID /bin/bash 以root用户登陆该容器
4.4 如果登陆速度较慢,可以enable cache来减少查询LDAP server的负载
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)