OpenLDAP多主複製(基於docker容器模式部署)

本文主要講述在docker環境下如何進行 OpenLDAP 多主複製,至於 OpenLDAP 原理能夠先參考這篇文章瞭解:https://cloud.tencent.com/developer/article/1490857html

首先先拉取docker鏡像

服務端鏡像git

docker pull osixia/openldap

客戶端鏡像github

docker pull ldapaccountmanager/lam

啓動兩個服務端容器

LDAP_ORGANISATION LDAP組織名,能夠自定義設置,若是不設置默認爲 Example Inc ,通常定義公司名
LDAP_DOMAIN LDAP域名,能夠自定義設置,若是不設置默認爲 example.org,通常定義公司域名
LDAP_REPLICATION=true 開啓多主複製
hostname 名稱能夠自定義,可是必須和LDAP_REPLICATION_HOSTS 其中的值一致
LDAP_REPLICATION_HOSTS 爲同步的服務器列表,必須和hostname對應上,而且保證兩臺機器網絡互相訪問正常
LDAP_ADMIN_PASSWORD 能夠自定義設置,若是不設置默認爲admindocker

容器1:centos

docker run --name ldap1 --restart=always --hostname ldap1.example.com --env LDAP_ORGANISATION="example" --env LDAP_DOMAIN="example.com" --env LDAP_REPLICATION_HOSTS="#PYTHON2BASH:['ldap://ldap1.example.com','ldap://ldap2.example.com']" --env LDAP_REPLICATION=true --env LDAP_ADMIN_PASSWORD="12345" -p 389:389 --detach osixia/openldap:latest

容器2:bash

docker run --name ldap2 --restart=always --hostname ldap2.example.com --env LDAP_ORGANISATION="example" --env LDAP_DOMAIN="example.com" --env LDAP_REPLICATION_HOSTS="#PYTHON2BASH:['ldap://ldap1.example.com','ldap://ldap2.example.com']" --env LDAP_REPLICATION=true --env LDAP_ADMIN_PASSWORD="12345" -p 389:389 --detach osixia/openldap:latest

分別獲取 ldap1 和 ldap2 ip (若是是同一臺機器部署的內網能夠這樣獲取ip,若是不是同一臺機器部署的網絡,則不須要獲取內網ip,直接配置對應的公網ip便可)

docker inspect -f "{{ .NetworkSettings.IPAddress }}" ldap1
docker inspect -f "{{ .NetworkSettings.IPAddress }}" ldap2

設置對應容器host,保證兩個容器之間網絡互通

docker exec ldap1 bash -c "echo【設置ldap2的ip】ldap2.example.com >> /etc/hosts"
docker exec ldap2 bash -c "echo【設置ldap1的ip】ldap1.example.com >> /etc/hosts"

啓動客戶端服務(4389端口能夠隨意配置)

docker run -d --restart=always --name ldap-account-manager -p 4389:80 --detach ldapaccountmanager/lam:latest

客戶端訪問 (對應客戶端服務的ip+端口)

http://127.0.0.1:4389服務器

登陸前請進行相關設置,請參考如下設置規則網絡

(1)先進行登陸前的設置,點擊右上角 LAM configuration 菜單進行設置
測試

(2)點擊 Edit server profiles 菜單,進行相關設置, 默認密碼爲 lam
centos7

(3)設置對應服務端IP和LDAP域名(IP爲容器對應內網IP,或者公網IP,驗證數據同步時,設置不一樣容器IP鏈接便可,LDAP域名要和容器運行時候設置 LDAP_DOMAIN 一致,格式爲 dc=example,dc=com),和客戶端管理員用戶(默認admin)

(4)默認初始化兩個組(這個能夠不設置,注意格式爲:ou=people,dc=example,dc=com ,ou能夠自定義,dc要和容器運行時候設置 LDAP_DOMAIN 一致)

(5)設置完成後,進入首頁進行登陸,密碼爲容器運行時候設置 LDAP_ADMIN_PASSWORD 密碼

(6)登陸容器 ldap1 添加一個用戶,觀察 ldap2 是否能正常同步,以下圖測試能夠正常同步數據
添加相關用戶測試可參考下面的文章進行配置

參考文章:
1.https://github.com/osixia/docker-openldap 官方文檔
2.https://www.58jb.com/html/ldap-run-on-centos7.html ldap容器配置
3.https://www.58jb.com/html/use-ldap-account-manager.html 在ldap中添加多個不一樣的組和用戶

相關文章
相關標籤/搜索