前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0893-7.1.6-如何为CDP集群配置LDAP高可用并集成测试

0893-7.1.6-如何为CDP集群配置LDAP高可用并集成测试

作者头像
Fayson
发布2022-09-14 10:15:05
1.2K0
发布2022-09-14 10:15:05
举报
文章被收录于专栏:Hadoop实操Hadoop实操

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信息

代码语言:javascript
复制
[root@cdh1 ~]# ldapsearch -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn

2.备节点DN信息

代码语言:javascript
复制
[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文件,增加以下配置

代码语言:javascript
复制
SLAPD_LDAPI=yes

2.重启slapd服务

代码语言:javascript
复制
[root@cdh1 ~]# systemctl restart slapd[root@cdh1 ~]# systemctl status slapd

4.主节点配置同步信息

1.创建mod_syncprov.ldif文件加载syncprov模块,内容如下

代码语言:javascript
复制
dn: cn=module,cn=configobjectClass: olcModuleListcn: moduleolcModulePath: /usr/lib64/openldapolcModuleLoad: syncprov.la

2.创建serverid.ldif文件,定义主备ldap的server,内容如下

代码语言:javascript
复制
dn: cn=configchangetype: modifyadd: olcServerIdolcServerId: 1 ldap://cdh1.macro.comolcServerId: 2 ldap://cdh2.macro.com

3.创建syncprov.ldif文件,同步配置日志信息,内容如下

代码语言:javascript
复制
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=configobjectClass: olcOverlayConfigobjectClass: olcSyncProvConfigolcOverlay: syncprovolcSpSessionLog: 100

4.创建sync-ha.ldif文件,添加主备同步信息,内容如下

代码语言:javascript
复制
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文件指令

代码语言:javascript
复制
[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

代码语言:javascript
复制
[root@cdh1 tb]# slapcat -bcn=config -F/etc/openldap/slapd.d/ -l config.ldif[root@cdh1 tb]# ll

5.备节点配置同步信息

1.将主节点导出的config.ldif文件scp到备节点

代码语言:javascript
复制
[root@cdh1 tb]# scp config.ldif 192.168.0.75:/root/

2.初始化备节点的ldap的配置

代码语言:javascript
复制
[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服务

代码语言:javascript
复制
[root@cdh2 openldap]# systemctl restart slapd[root@cdh2 openldap]# systemctl status slapd

6.验证

6.1.ldap是否已经主备同步

1.进入主节点的命令行执行以下操作查看DN信息

代码语言:javascript
复制
[root@cdh1 ~]# ldapsearch -h cdh1.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn

2.进入备节点的命令行执行以下操作查看DN信息是否同步成功

代码语言:javascript
复制
[root@cdh2 openldap]# ldapsearch -h cdh2.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn

3.在主节点进行添加用户操作并查看

代码语言:javascript
复制
[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服务均使用该配置

代码语言:javascript
复制
<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.回到命令行查看用户

代码语言:javascript
复制
[root@cdh2 ~]# id ppp
代码语言:javascript
复制
[root@cdh2 ~]# ldapsearch -h cdh1.macro.com -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W | grep dn

5.登录HiveServer2服务

代码语言:javascript
复制
[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.测试执行命令语句

代码语言:javascript
复制
0: jdbc:hive2://cdh1.macro.com:10000> show databases;0: jdbc:hive2://cdh1.macro.com:10000> show tables;

7.挂掉主节点的slapd服务再次尝试连接

代码语言:javascript
复制
[root@cdh1 ~]# systemctl stop slapd[root@cdh1 ~]# systemctl status slapd
代码语言:javascript
复制
[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命令行添加以下配置

代码语言:javascript
复制
--ldap_passwords_in_clear_ok

3.重启过时服务

4.进入命令行登录impala测试

代码语言:javascript
复制
[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服务再次进行连接测试

代码语言:javascript
复制
[root@cdh1 ~]# systemctl stop slapd[root@cdh1 ~]# systemctl status slapd

6.重新连接impala进行测试

代码语言:javascript
复制
[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中查看

代码语言:javascript
复制
[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文件,添加备节点地址

代码语言:javascript
复制
[root@cdh1 sssd]# vim /etc/sssd/sssd.conf

2.重启sssd服务

代码语言:javascript
复制
[root@cdh1 sssd]# systemctl start sssd[root@cdh1 sssd]# systemctl status sssd

3.停掉主节点的slapd服务

代码语言:javascript
复制
[root@cdh1 ~]# systemctl stop slapd[root@cdh1 ~]# systemctl status slapd

4.测试在副节点使用id命令能否新增的tests1用户

代码语言:javascript
复制
[root@cdh2 ~]# id tests1

7.总结

1.在做了LDAP的主备之后,在服务端集成LDAP时,能够同时集成两个LDAP的地址,并且在主节点slapd服务宕机之后并不影响其他服务

2.集群服务CM界面配置ldap的认证是使用空格分隔开的,而在终端的sssd配置文件里是使用逗号进行分隔,能同时配置两个ldap服务地址

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档