编辑
2023-06-06
docker
00
请注意,本文编写于 738 天前,最后修改于 738 天前,其中某些信息可能已经过时。

目录

LDAP数据迁移同步

LDAP数据迁移同步

数据迁移

原始数据备份命令如下:

ldapsearch -LLL -x -h 218.97.51.117 -p 389 -D "cn=Admin,ou=Administrator,dc=cpccd,dc=com" -w Cpcnet\!\@\#\$\%\^ -b "dc=cpccd,dc=com" > openldap-backupfull.ldif

环境准备:

ubuntu安装docker:

更新ubuntu

sudo apt update sudo apt upgrade sudo apt full-upgrade

添加 Docker 库

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加 Docker 官方库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新 Ubuntu 源列表

sudo apt update

安装docker

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

检查可以安装的docker版本

apt-cache madison docker-ce

安装最新的docker-ce

apt install docker-ce=5:24.0.1-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.1-1~ubuntu.22.04~jammy containerd.io

启动docker

sudo systemctl start docker

docker服务在每次启动时自动启动

sudo systemctl enable docker

查看docker版本

sudo docker version

docker compose部署openldap

docker-compose.yaml文件路径

/usr/local/docker/openldap2.0/docker-compose.yaml

docker-compose.yaml具体内容如下:

version: "3.7" services: openldap-bitnami: user: root image: bitnami/openldap:2.5.13 container_name: openldap1 volumes: - ./openldap-bitnami-data:/bitnami/openldap environment: - LDAP_ORGANISATION=CPC CD - LDAP_ROOT=dc=cpccd,dc=com - LDAP_ADMIN_USERNAME=admin - LDAP_ADMIN_PASSWORD=Cpcnet!@#$$%^ - LDAP_ULIMIT_MOFILES=107374182400 - LDAP_CONFIG_ADMIN_ENABLED=yes - LDAP_CONFIG_ADMIN_USERNAME=admin - LDAP_CONFIG_ADMIN_PASSWORD=admin - LDAP_ALLOW_ANON_BINDING=no - LDAP_USER_DC=people ports: - 1389:1389 - 1636:1636 networks: - openldap-bitnami networks: openldap-bitnami: name: openldap-bitnami

运行命令:

Docker-compose up –d

验证ldap容器是否创建成功命令如下:

ldapsearch -x -H ldap://localhost:389 -b 'dc=cpccd,dc=com' -D 'cn=admin,dc=cpccd,dc=com' -w 'Cpcnet!@#$%^'

为每一个openldap服务添加同步用的用户

需要使用管理账号登录,分别在所有节点导入以下配置。

syncrepl_user.ldif

version: 1 dn: uid=rpuser,ou=people,dc=demo,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: simpleSecurityObject objectClass: shadowAccount objectClass: inetOrgPerson cn: rpuser sn: rpuser uid: rpuser userPassword: {SSHA}oBWZtlM7e3CbUagQeUPqkVeFUmg2+4liXvRfVQ==

用户dn:rpuser,ou=people,dc=demo,dc=com"

密码:rpuser

ldapmodify -a -x -H ldap://localhost:389 -D 'cn=admin,dc=cpccd,dc=com' -w 'Cpcnet!@#$%^' -f syncrepl_user.ldif

各节点同步文件

需要使用配置管理账号登录,在所有同步节点导入以下配置。

syncrepl_config.ldif

#enable syncprov module dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /opt/bitnami/openldap/lib/openldap olcModuleLoad: syncprov.so #enable syncprov for every folder dn: olcOverlay=syncprov,olcDatabase={2}mdb,cn=config changetype: add objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpSessionlog: 100 #unlimit fetch size dn: cn=config changetype: modify replace: olcSizeLimit olcSizeLimit: 10000 #set server id dn: cn=config changetype: modify replace: olcServerID olcServerID: 1 #syncrepl directive dn: olcDatabase={2}mdb,cn=config changetype: modify replace: olcSyncRepl olcSyncRepl: rid=001 provider=ldap://需要同步的ip:389/ bindmethod=simple binddn="uid=rpuser,ou=people,dc=cpccd,dc=com" credentials=rpuser searchbase="dc=cpccd,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="5 +" interval=00:00:30:00 - add: olcMirrorMode olcMirrorMode: TRUE olcSyncRepl: rid=002 provider=ldap://需要同步的ip:389/ bindmethod=simple binddn="uid=rpuser,ou=people,dc=cpccd,dc=com" credentials=rpuser searchbase="dc=cpccd,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="5 +" interval=00:00:30:00 - add: olcMirrorMode olcMirrorMode: TRUE olcSyncRepl: rid=003 provider=ldap://需要同步的ip:389/ bindmethod=simple binddn="uid=rpuser,ou=people,dc=cpccd,dc=com" credentials=rpuser searchbase="dc=cpccd,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="5 +" interval=00:00:30:00 - add: olcMirrorMode olcMirrorMode: TRUE

该脚本设置了搜索的大小限制为10000,从dc=cpccd,dc=com搜索并同步数据,每30秒同步一次,失败会在5秒后重试。请根据实际的环境和项目要求进行修改。

ldapadd -Wx -D "cn=admin,cn=config" -H ldap://localhost:389 -f syncrepl_config.ldif

修改用户权限

需要使用配置管理账号登录,在所有节点分别导入以下配置。

db_config.ldif

dn: cn=config changetype: modify replace: olcSizeLimit olcSizeLimit: 10000 #db max size dn: olcDatabase={2}mdb,cn=config changeType: modify add: olcDbMaxSize olcDbMaxSize: 1000000000

执行以下命令:

ldapmodify -Wx -D "cn=admin,cn=config" -H ldap://localhost:389 -f db_config.ldif

选择任意一台ldap服务器进行数据导入:

ldapmodify -a -x -H ldap://localhost:389 -D 'cn=admin,dc=cpccd,dc=com' -w Cpcnet\!\@\#\$\%\^ -f openldap-backupfull.ldif -v -c

查看导入结果:

ldapsearch -x -H ldap://localhost:389 -b 'dc=cpccd,dc=com' -D 'cn=admin,ou=Administrator,dc=cpccd,dc=com' -w 'Cpcnet!@#$%^' 'mail=demo01@citictel-cpc.com'

以上命令都是根据博主自己openldap情况编写。请根据情况修改!

本文作者:Allen Tang

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!