在實際產線運維環境下,可能包含多個IDC機房,每個機房的主機都需要通過OpenLDAP體系管理運維賬戶登錄。這種情況下可以配置OpenLDAP的主從架構實現(當然同一個機房也可以配置主從架構,客戶端配置ldap uri指定多個地址)。主openldap節點稱爲“provider”可讀可寫,從openldap節點稱爲“consumer”只讀。
1. 環境信息說明
主機名稱 | 地址 | 版本 | 角色 | 備註 |
---|---|---|---|---|
sysldap-shylf-1 | 10.116.72.11 | CentOS7.6 min | openLdap, httpd, phpldapadmin | 主節點 |
sysldap-shylf-2 | 10.116.72.12 | CentOS7.6 min | openLdap | 從節點,可以配置多從的 |
systerm-shylf-1 | 10.116.72.15 | CentOS7.6 min | openLdap client |
前提條件,爲了方便配置防火牆以及禁用selinux
配置示例:dc=example,dc=com
2. OpenLDAP服務基礎配置
本文檔加上2個節點都已經設置好了OpenLDAP服務基礎配置(OpenLDAP服務基礎配置可以參考上一篇文檔 https://blog.csdn.net/oyym_mv/article/details/94404663 )
3. 配置OpenLDAP主從結構
3.1 主節點配置(10.116.72.11),添加模塊syncprov
vi mod_syncprov.ldif
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la
# 發送配置使之生效
ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif
#--------------------------------------
vi syncprov.ldif
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100
# 發送配置使之生效
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif
3.2 從節點配置(10.116.72.12)同步
需要根據實際情況修改的參數:
provider 同步來源,也就是主節點,可以包含多個主節點
binddn 主節點管理賬戶
credentials 主節點管理賬戶密碼
searchbase 根目錄
vi syncrepl.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
provider=ldap://10.116.72.11:389/
bindmethod=simple
binddn="cn=Manager,dc=example,dc=com"
credentials=openldap
searchbase="dc=example,dc=com"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="30 5 300 3"
interval=00:00:05:00
# 發送配置使之生效
ldapadd -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif
- 驗證
從服務節點驗證數據是否同步正常
ldapsearch -x -b 'ou=People,dc=example,dc=com'
[輸出內容省略]
驗證是OK的。
3.3 遠程主機配置(客戶端 10.116.72.15)
客戶端 可以指定多個openldap uri 修改配置如下(當然也可以只配置其中1個)
authconfig --enableldap --enableldapauth --ldapserver="10.116.72.11,10.116.72.12" --ldapbasedn="dc=example,dc=com" --update
- 驗證
ssh [email protected]
Warning: Permanently added '10.116.72.15' (ECDSA) to the list of known hosts.
[email protected]'s password:
Last login: Thu Jul 4 17:59:32 2019 from 10.116.71.200
[800001@systerm-shylf-1 ~]$
參考文檔:https://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=5