备份与恢复
主要介绍如何备份 OpenLDAP 的配置目录和数据目录,并将其恢复到另一个 OpenLDAP 服务中
OpenLDAP 的备份
OpenLDAP 的备份可以通过服务端的 slapcat
命令或客户端的 ldapsearch
命令两种方式进行。下面展示了如何在 OpenLDAP 服务端使用 slapcat
对配置目录和数据目录进行导出。
slapcat -n 0 -l ./config.`date '+%Y-%m-%d'`.ldif |
其中,-n
表示要导出的 OpenLDAP 数据库编号
OpenLDAP 的恢复
systemctl stop slapd
rm -rf /etc/openldap/slapd.d/*
slapadd -n 0 -F /etc/openldap/slapd.d -l ./config.2019-01-04.ldif
chown -R ldap:ldap /etc/openldap/slapd.d
rm -rf /var/lib/ldap/*
slapadd -n 2 -F /etc/openldap/slapd.d -l ./data.2019-01-04.ldif
chown -R ldap:ldap /var/lib/ldap
systemctl start slapd
添加 memberof 支持
如果使用 LDAP 仅仅作为用户统一登录中心,则参考安装文档即可;如果 ldap 要与第三方软件结合,例如 confluence、gitlab 等结合,则需要开启 memberof 支持
- 开启 memberof 支持。
vim 1-load-memberof.ldif |
- 新增用户支持 memberof 配置。
vim 2-use-memberof.ldif |
- 导入相关配置。
ldapadd -Y EXTERNAL -H ldapi:/// -f 1-chrootpw.ldif |
- 查看当前 dn 下包含 cn=config 配置列表。
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn |
- 查看用户的 memberof 信息。
ldapsearch -LL -Y EXTERNAL -H ldapi:/// "(uid=xxxxxx)" -b dc=xxx,dc=com dn memberof |
开启日志
[root@slave3] ~cat /etc/openldap/slapd.d/cn=config.ldif |grep olcLogLevel
state
mkdir -p /var/log/slapd
touch /var/log/slapd/slapd.log
chown ldap:ldap /var/log/slapd/
echo “local4.* /var/log/slapd/slapd.log” >> /etc/rsyslog.conf
systemctl restart rsyslog
[root@test1] ~$ cat log.ldif
dn: cn=config
changetype: modify
add: olcLogLevel
olcLogLevel: 32
[root@test1] ~$ ldapmodify -Y EXTERNAL -H ldapi:/// -f log.ldif
vi /etc/logrotate.d/ldap
/var/log/slapd/slapd.log{
daily # 每天轮询一次
rotate 5 # 保存5个历史日志文件,超过的删除
size 100M
copytruncate # 复制源日志内容后,清空文件,而不是创建新文件
dateext # 切割文件时,文件名带有日期
missingok # 如果指定的目录不存在,会报错,此选项用来抑制报错
}
如果你是使用旧版修改配置文件的方式,如下启用日志功能
[root@backup2] /etc/openldap$ vim slapd.conf
#末尾添加一行
loglevel -1
[root@backup2] /etc/openldap$ vim /etc/rsyslog.conf
#末尾添加如下一行:
local4.* /var/log/slapd.log
[root@backup2] /etc/openldap$ systemctl restart rsyslog
[root@backup2] /etc/openldap$ rm -rf /etc/openldap/slapd.d/*
[root@backup2] /etc/openldap$ slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
[root@backup2] /etc/openldap$ systemctl start slapd.service
123
通过 tailf /var/log/slapd.log
来查看日志