1.文档编写目的
本篇文章主要介绍如何在CDP 7.1.6集群中配置LDAP的高可用。
- 文档概述
1.如何在CDP7集群配置LDAP高可用
2.验证LDAP的高可用
3.总结
- 测试环境
1.操作系统Redhat7.2
2.CDP7.1.6
3.使用root用户操作
2.查看主备节点的DN信息
1.主节点DN信息
[root@cdh1 ~]# ldapsearch -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn
2.备节点DN信息
[root@cdh2 openldap]# ldapsearch -h cdh2.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn
3.主节点配置
1.修改/etc/sysconfig/slapd文件,增加以下配置
SLAPD_LDAPI=yes
2.重启slapd服务
[root@cdh1 ~]# systemctl restart slapd[root@cdh1 ~]# systemctl status slapd
4.主节点配置同步信息
1.创建mod_syncprov.ldif文件加载syncprov模块,内容如下
dn: cn=module,cn=configobjectClass: olcModuleListcn: moduleolcModulePath: /usr/lib64/openldapolcModuleLoad: syncprov.la
2.创建serverid.ldif文件,定义主备ldap的server,内容如下
dn: cn=configchangetype: modifyadd: olcServerIdolcServerId: 1 ldap://cdh1.macro.comolcServerId: 2 ldap://cdh2.macro.com
3.创建syncprov.ldif文件,同步配置日志信息,内容如下
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=configobjectClass: olcOverlayConfigobjectClass: olcSyncProvConfigolcOverlay: syncprovolcSpSessionLog: 100
4.创建sync-ha.ldif文件,添加主备同步信息,内容如下
dn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcSyncReplolcSyncRepl: rid=001 provider=ldap://cdh1.macro.com bindmethod=simple binddn="cn=Manager,dc=macro,dc=com" credentials=0000000 searchbase="dc=macro,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="30 5 300 3" interval=00:00:05:0olcSyncrepl: rid=002 provider=ldap://cdh2.macro.com bindmethod=simple binddn="cn=Manager,dc=macro,dc=com" credentials=0000000 searchbase="dc=macro,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="30 5 300 3" interval=00:00:05:00-add: olcMirrorModeolcMirrorMode: TRUE
5.在主备节点执行导入ldif文件指令
[root@cdh1 sync]ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif[root@cdh1 sync]ldapmodify -Y EXTERNAL -H ldapi:/// -f serverid.ldif[root@cdh1 sync]ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif[root@cdh1 sync]ldapadd -Y EXTERNAL -H ldapi:/// -f sync-ha.ldif
6.导出主节点的配置文件config.ldif
[root@cdh1 tb]# slapcat -bcn=config -F/etc/openldap/slapd.d/ -l config.ldif[root@cdh1 tb]# ll
5.备节点配置同步信息
1.将主节点导出的config.ldif文件scp到备节点
[root@cdh1 tb]# scp config.ldif 192.168.0.75:/root/
2.初始化备节点的ldap的配置
[root@cdh2 ~]# rm -rf /etc/openldap/slapd.d/*[root@cdh2 ~]# slapadd -bcn=config -F/etc/openldap/slapd.d/ -l config.ldif[root@cdh2 ~]# chown -R ldap. /etc/openldap/slapd.d/
3.重启slapd服务
[root@cdh2 openldap]# systemctl restart slapd[root@cdh2 openldap]# systemctl status slapd
6.验证
6.1.ldap是否已经主备同步
1.进入主节点的命令行执行以下操作查看DN信息
[root@cdh1 ~]# ldapsearch -h cdh1.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn
2.进入备节点的命令行执行以下操作查看DN信息是否同步成功
[root@cdh2 openldap]# ldapsearch -h cdh2.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn
3.在主节点进行添加用户操作并查看
[root@cdh1 ~]# ldapadd -D "cn=Manager,dc=macro,dc=com" -W -x -f test.ldif[root@cdh1 ~]# ldapadd -D "cn=Manager,dc=macro,dc=com" -W -x -f test1.ldif[root@cdh1 ~]# ldapsearch -h cdh1.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn
4.在备节点进行查看添加用户操作是否同步
6.2.Hive集成LDAP(记录两个LDAP地址)
1.关闭Hive的模拟功能
2.修改LDAP的相关配置,通过这里可以进行全局配置,配置后所有的HiveServer2服务均使用该配置
<property><name>hive.server2.authentication</name><value>LDAP</value></property><property><name>hive.server2.authentication.ldap.url</name><value>ldap://cdh1.macro.com ldap://cdh2.macro.com</value></property><property><name>hive.server2.authentication.ldap.baseDN</name><value>ou=People,dc=macro,dc=com</value></property>
3.重启过时服务
4.回到命令行查看用户
[root@cdh2 ~]# id ppp
[root@cdh2 ~]# ldapsearch -h cdh1.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W | grep dn
5.登录HiveServer2服务
[root@cdh2 ~]# beelinebeeline> !connect jdbc:hive2://cdh1.macro.com:10000Connecting to jdbc:hive2://cdh1.macro.com:10000Enter username for jdbc:hive2://cdh1.macro.com:10000: ldapuser1Enter password for jdbc:hive2://cdh1.macro.com:10000: *******Connected to: Apache Hive (version 3.1.3000.7.1.6.0-297)Driver: Hive JDBC (version 3.1.3000.7.1.6.0-297)Transaction isolation: TRANSACTION_REPEATABLE_READ
6.测试执行命令语句
0: jdbc:hive2://cdh1.macro.com:10000> show databases;0: jdbc:hive2://cdh1.macro.com:10000> show tables;
7.挂掉主节点的slapd服务再次尝试连接
[root@cdh1 ~]# systemctl stop slapd[root@cdh1 ~]# systemctl status slapd
[root@cdh2 ~]# beelinebeeline> !connect jdbc:hive2://cdh1.macro.com:10000Connecting to jdbc:hive2://cdh1.macro.com:10000Enter username for jdbc:hive2://cdh1.macro.com:10000: ldapuser1Enter password for jdbc:hive2://cdh1.macro.com:10000: *******Connected to: Apache Hive (version 3.1.3000.7.1.6.0-297)Driver: Hive JDBC (version 3.1.3000.7.1.6.0-297)Transaction isolation: TRANSACTION_REPEATABLE_READ0: jdbc:hive2://cdh1.macro.com:10000> show databases;0: jdbc:hive2://cdh1.macro.com:10000> show tables;
6.3.Impala集成LDAP(记录两个LDAP地址)
1.修改Impala相关配置
2.在Impala命令行添加以下配置
--ldap_passwords_in_clear_ok
3.重启过时服务
4.进入命令行登录impala测试
[root@cdh1 ~]# impala-shell -i cdh1.macro.com -l -u ldapuser1 --auth_creds_ok_in_clear
注意:在使用impala-shell命令登录Impala Daemon时需要增加参数“--auth_creds_ok_in_clear”,因为我们的OpenLDAP服务未启用TLS加密的原因。
5.挂掉主节点的slapd服务再次进行连接测试
[root@cdh1 ~]# systemctl stop slapd[root@cdh1 ~]# systemctl status slapd
6.重新连接impala进行测试
[root@cdh2 ~]# impala-shell -i cdh2.macro.com -l -u ldapuser1 --auth_creds_ok_in_clear
6.4.Hue集成LDAP(记录两个LDAP地址)
1.查看Hive用户。查看OS中的Hive用户ID和用户组ID,并在ldap中查看
[root@cdh1 ~]# id hive[root@cdh1 ~]# ldapsearch -h cdh1.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W | grep hive
2.修改Hue的ldap相关配置
先将身份验证设置为desktop.auth.beckend.LdapBackend
修改完以上配置之后,在重启Hue前将身份验证设置为desktop.auth.backend.AllowFirstUserDjangoBackend
3.重启过时服务
4.登录Hue
这里的登录账号密码为admin/admin
5.登录之后,进入管理页面,同步Hive用户
将Hive用户设为超级管理员,因为我们启用LDAP管理后,admin将无法登录
6.通过添加组的方式将Hive用户组同步过来
7.回到CM Hue,将Hue的认证方式修改为LDAP,并保存重启过时服务
8.Hue登录测试
这里admin用户已经无法登录
9.登录ldap用户
这里我选择登录的是同步的ldapuser1用户并登录成功
6.5.sssd服务集成LDAP(记录两个LDAP地址)
1.进入命令行,修改/etc/sssd/sssd.conf文件,添加备节点地址
[root@cdh1 sssd]# vim /etc/sssd/sssd.conf
2.重启sssd服务
[root@cdh1 sssd]# systemctl start sssd[root@cdh1 sssd]# systemctl status sssd
3.停掉主节点的slapd服务
[root@cdh1 ~]# systemctl stop slapd[root@cdh1 ~]# systemctl status slapd
4.测试在副节点使用id命令能否新增的tests1用户
[root@cdh2 ~]# id tests1
7.总结
1.在做了LDAP的主备之后,在服务端集成LDAP时,能够同时集成两个LDAP的地址,并且在主节点slapd服务宕机之后并不影响其他服务
2.集群服务CM界面配置ldap的认证是使用空格分隔开的,而在终端的sssd配置文件里是使用逗号进行分隔,能同时配置两个ldap服务地址