Ranger命令行安装#
如果您希望使用命令行的方式部署Ranger,请按照本章节步骤安装。
前提#
在开始前,请配置yum源,安装lava命令行管理工具,还应检查是否有所需的Python和Java环境。
首先用root
用户登录到ranger1
ssh root@ranger1
从yum源所在机器host1
获取repo文件
sudo scp root@host1:/etc/yum.repos.d/oushu.repo /etc/yum.repos.d/oushu.repo
追加yum源所在机器信息到/etc/hosts文件
安装lava命令行管理工具
sudo yum clean all
sudo yum makecache
sudo yum install lava
检查Python2
环境,执行下述命令能看到Python的对应版本,期望版本为2.x,已验证版本为2.7.5
python
检查Java
环境,执行下述命令能看到Java的对应版本,期望版本为1.7以上,已验证版本为1.8.0_332
java -version
Ranger Admin的安装需要依赖外部数据库做元数据存储,推荐使用Skylab平台本身的Postgres数据库,同时还需要对应的数据库驱动,可以通过yum安装lavalib
获取Postgres数据库连接驱动,放到所需位置,如当前例子放在/usr/share/java
目录下。
# 通过yum源安装lavalib
sudo yum install lavalib
# 将驱动放到所需目录
sudo mv /usr/local/oushu/lavalib/postgresql-42.2.8.jar /usr/share/java/postgresql-42.2.8.jar
Kerberos认证依赖(可选)#
若开启Kerberos认证,Kerberos安装部署请参考:Kerberos 安装。
Kerberos 服务地址假定为kdc1
,登录到kdc1机器上
ssh kdc1
mkdir -p /etc/security/keytabs
创建Ranger Admin和Ranger UserSync相关服务主体,生成的密钥rangeradmin.keytab和rangerusersync.keytab。
注意:这里对应的hostname不管大小写,都需要用小写。
kadmin.local
addprinc -randkey HTTP/ranger1@OUSHU.COM
addprinc -randkey rangeradmin/ranger1@OUSHU.COM
addprinc -randkey rangerlookup/ranger1@OUSHU.COM
ktadd -norandkey -k /etc/security/keytabs/rangeradmin.keytab HTTP/ranger1@OUSHU.COM
ktadd -norandkey -k /etc/security/keytabs/rangeradmin.keytab rangeradmin/ranger1@OUSHU.COM
ktadd -norandkey -k /etc/security/keytabs/rangeradmin.keytab rangerlookup/ranger1@OUSHU.COM
addprinc -randkey rangerusersync/ranger1@OUSHU.COM
ktadd -norandkey -k /etc/security/keytabs/rangerusersync.keytab rangerusersync/ranger1@OUSHU.COM
exit
ranger1
上需要一个开启kerberos功能的core-site.xml
文件,我们创建在/usr/local/oushu/conf/ranger
目录下
ssh root@ranger1
mkdir -p /usr/local/oushu/conf/ranger
touch /usr/local/oushu/conf/ranger/core-site.xml
core-site.xml
文件内至少包含如下两项:
<configuration>
<property>
<name>hadoop.security.auth_to_local</name>
<value>DEFAULT</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
</configuration>
安装#
Ranger Admin安装#
# 使用yum源进行安装
sudo yum install -y ranger-admin-2.3.0-1.noarch
Ranger UserSync安装#
# 使用yum源进行安装
sudo yum install -y ranger-usersync-2.3.0-1.noarch
配置#
Ranger Admin配置#
修改在/usr/local/oushu/ranger-admin_2.3.0
目录下的install.properties
文件初始化配置
sudo vi /usr/local/oushu/ranger-admin_2.3.0/install.properties
在install.properties
文件末尾追加如下配置:
PYTHON_COMMAND_INVOKER=python2
DB_FLAVOR=POSTGRES
SQL_CONNECTOR_JAR=/usr/share/java/postgresql-42.2.8.jar
db_root_user=rangerUser
db_root_password=Ran5ger@DB
db_host=localhost:4432
db_name=ranger
db_user=rangerUser
db_password=Ran5ger@DB
audit_store=
policymgr_external_url=http://ranger1:6080
rangerAdmin_password=ranger1@China
rangerUsersync_password=ranger1@China
rangerTagsync_password=ranger1@China
keyadmin_password=ranger1@China
cred_keystore_filename=
配置名 |
配置描述 |
---|---|
PYTHON_COMMAND_INVOKER |
指明使用的Python版本 |
DB_FLAVOR |
指明使用数据库类型,可以是MYSQL|ORACLE|POSTGRES|MSSQL|SQLA,这里推荐使用POSTGRES |
SQL_CONNECTOR_JAR |
数据库连接驱动所在位置 |
db_root_user |
数据库root用户名,推荐按组件使用不同的数据库用户进行管理 |
db_root_password |
数据库root用户密码 |
db_host |
数据库主机、端口 |
db_name |
ranger连接的数据库,该库如果不存在需要自行创建 |
db_user |
管理该数据库用户,推荐按组件使用不同的数据库用户进行管理 |
db_password |
管理该数据库用户密码 |
audit_store |
审计日志, 如果没有安装solr,对应的属性值为空即可 |
policymgr_external_url |
策略管理配置,配置ip和端口,开启kerberos时不能使用localhost |
rangerAdmin_password |
Ranger Admin密码配置。默认为空,可以不配,不配时密码为admin |
rangerUsersync_password |
Ranger Usersync密码配置。默认为空,可以不配,对应的内部组件该属性也要为空 |
rangerTagsync_password |
Ranger Tagsync密码配置,此密码暂无实际作用 |
keyadmin_password |
Ranger KMS密码配置,此密码暂无实际作用 |
cred_keystore_filename |
Ranger Admin的密码库文件路径,可暂时为空 |
注意:rangerAdmin_password、rangerUsersync_password、rangerTagsync_password和keyadmin_password的值, 要么全部为空会全部使用对应的默认密码,要么应该全部自定义填写对应的密码,且密码大于8位字符包含大小写字母、数字和特殊字符, 否则自定义填写的密码并不会生效。
Kerberos配置(可选)#
继续在install.properties
文件末尾追加如下配置:
spnego_principal=HTTP/ranger1@OUSHU.COM
spnego_keytab=/etc/security/keytabs/rangeradmin.keytab
admin_principal=rangeradmin/ranger1@OUSHU.COM
admin_keytab=/etc/security/keytabs/rangeradmin.keytab
lookup_principal=rangerlookup/ranger1@OUSHU.COM
lookup_keytab=/etc/security/keytabs/rangeradmin.keytab
hadoop_conf=/usr/local/oushu/conf/ranger
配置名 |
配置描述 |
---|---|
spnego_principal |
Ranger Admin对外提供HTTP服务的kerberos服务主体 |
spnego_keytab |
Ranger Admin对外提供HTTP服务的kerberos服务主体的密钥 |
admin_principal |
Ranger Admin作为Server端鉴权的kerberos服务主体 |
admin_keytab |
Ranger Admin作为Server端鉴权的kerberos服务主体的密钥 |
lookup_principal |
Ranger Admin作为Client端进行连接组件测试的kerberos服务主体 |
lookup_keytab |
Ranger Admin作为Client端进行连接组件测试的kerberos服务主体的密钥 |
hadoop_conf |
开启kerberos功能的 |
Ranger UserSync配置#
修改在/usr/local/oushu/ranger-usersync_2.3.0
目录下的install.properties
文件初始化配置
sudo vi /usr/local/oushu/ranger-usersync_2.3.0/install.properties
在install.properties
文件末尾追加如下配置:
1)同步unix用户#
POLICY_MGR_URL = http://ranger1:6080
SYNC_INTERVAL = 1
logdir=logs
SYNC_SOURCE = unix
unix_user=usersync
unix_group=usersync
rangerUsersync_password=ranger1@China
配置名 |
配置描述 |
---|---|
POLICY_MGR_URL |
配置Ranger Admin的访问地址,开启kerberos时不能使用localhost |
SYNC_INTERVAL |
同步间隔时间,同步unix时最小间隔为1分钟 |
logdir |
配置usersync的log路径 |
SYNC_SOURCE |
同步源系统类型 |
unix_user |
usersync程序运行的用户 |
unix_group |
usersync程序运行的用户组 |
rangerUsersync_password |
Ranger Usersync用户的密码,此密码应与Ranger Admin中 |
2)同步ldap用户#
POLICY_MGR_URL = http://ranger1:6080
SYNC_INTERVAL = 1
logdir=logs
SYNC_SOURCE = ldap
SYNC_LDAP_URL=ldap://localhost:389
SYNC_LDAP_BIND_DN=cn=admin,dc=example,dc=com
SYNC_LDAP_BIND_PASSWORD=Ran5ger@LDAP
SYNC_LDAP_SEARCH_BASE=ou=People,dc=example,dc=com
rangerUsersync_password=ranger1@China
配置名 |
配置描述 |
---|---|
POLICY_MGR_URL |
配置Ranger Admin的访问地址,开启kerberos时不能使用localhost |
SYNC_INTERVAL |
同步间隔时间,同步LDAP时最小间隔为1小时 |
logdir |
配置usersync的log路径 |
SYNC_SOURCE |
同步源系统类型 |
SYNC_LDAP_URL |
LDAP服务的地址 |
SYNC_LDAP_BIND_DN |
连接LDAP进行用户和用户组查询的DN |
SYNC_LDAP_BIND_PASSWORD |
用于连接LDAP的DN对应的密码 |
SYNC_LDAP_SEARCH_BASE |
LDAP中用户和用户组的搜索域 |
rangerUsersync_password |
Ranger Usersync用户的密码,此密码应与Ranger Admin中 |
Kerberos配置(可选)#
继续在install.properties
文件末尾追加如下配置:
usersync_principal=rangerusersync/ranger1@OUSHU.COM
usersync_keytab=/etc/security/keytabs/rangerusersync.keytab
hadoop_conf=/usr/local/oushu/conf/ranger
配置名 |
配置描述 |
---|---|
usersync_principal |
Ranger Usersync的kerberos服务主体 |
usersync_keytab |
Ranger Usersync的kerberos服务主体的密钥 |
hadoop_conf |
开启kerberos功能的 |
启动#
Ranger Admin启动#
1.执行初始化操作#
cd /usr/local/oushu/ranger-admin_2.3.0/
sudo su root -c "export JAVA_HOME=$(java -XshowSettings:properties -version 2>&1 | sed -nE 's|.*java.home = (.*)|\1|p');./setup.sh"
初始化结果如下则成功:
2022-11-03 15:07:37,458 [I] Checking connection passed.
2022-11-03 15:07:37,458 [I] RANGER_ADMIN_ENV_PATH : /usr/local/oushu/ranger-admin_2.3.0
2022-11-03 15:07:37,458 [I] env_file_path : /usr/local/oushu/ranger-admin_2.3.0/ranger-admin-env*.sh
Installation of Ranger PolicyManager Web Application is completed.
2.修改配置文件#
配置存储在/usr/local/oushu/ranger-admin_2.3.0/conf
目录下的ranger-admin-site.xml
文件
# 编辑
sudo vi /usr/local/oushu/ranger-admin_2.3.0/conf/ranger-admin-site.xml
如无特殊需求,初始化之后配置无需改动即可启动
3.启动进程#
sudo ranger-admin start
或者
sudo /usr/local/oushu/ranger-admin_2.3.0/ews/ranger-admin-services.sh start
运行结果如下则成功:
[root@ranger1 ranger-admin_2.3.0]$ sudo ranger-admin start
Starting Apache Ranger Admin Service
Apache Ranger Admin Service with pid 14240 has started.
Ranger UserSync启动#
1.执行初始化操作#
cd /usr/local/oushu/ranger-usersync_2.3.0/
sudo su root -c "export JAVA_HOME=$(java -XshowSettings:properties -version 2>&1 | sed -nE 's|.*java.home = (.*)|\1|p');./setup.sh"
2.修改配置文件#
配置存储在/usr/local/oushu/ranger-usersync_2.3.0/conf
目录下的ranger-ugsync-site.xml
文件
# 编辑
sudo vi /usr/local/oushu/ranger-usersync_2.3.0/conf/ranger-ugsync-site.xml
需要修改ranger.usersync.enabled
为true
才能使同步生效
<property>
<name>ranger.usersync.enabled</name>
<value>true</value>
</property>
3.启动进程#
sudo ranger-usersync start
或者
sudo /usr/local/oushu/ranger-usersync_2.3.0/ranger-usersync-services.sh start
运行结果如下则成功:
[root@ranger1 ranger-usersync_2.3.0]$ sudo ranger-usersync start
Starting Apache Ranger Usersync Service
Apache Ranger Usersync Service with pid 6026 has started.
检查状态#
Ranger Admin检查#
1.登录机器ranger1,通过Jps
查看进程,看到EmbeddedServer
进程即为Ranger Admin在启动中
[root@ranger1 ~]$ sudo jps
14240 EmbeddedServer
28974 Jps
2.根据install.properties
配置中policymgr_external_url
访问Web UI界面,本例中访问地址为http://192.168.1.11:6080
,
默认账号为admin
,密码根据install.properties
配置中rangerAdmin_password
获得。
修改Ranger Admin初始密码#
登录Ranger Admin之后,需要把admin用户的密码改成安全性较强的密码,要求包含有大小写字母、数字、特殊字符的8位以上的密码,比如Ad4min@Ranger。 进入ranger页面后,我们可以到Settings > Users/Groups/Roles > User 页面查看用户详情。
在用户详情中的Change Password
标签,输入新密码与确认密码,点击确定即可。
Ranger UserSync检查#
1.登录机器ranger1,通过Jps
查看进程,看到UnixAuthenticationService
进程即为Ranger UserSync在启动中
[root@ranger1 ranger-usersync_2.3.0]$ sudo jps
14240 EmbeddedServer
7432 Jps
6026 UnixAuthenticationService
2.访问Web UI界面,本例中访问地址为http://192.168.1.11:6080
,点击Audit可以在Login Sessions
内看到rangerusersync
的登录信息,在User Sync
内看到rangerusersync
用户的信息同步情况,如下图所示:
常用命令#
Ranger Admin命令#
首先用root
用户登录到ranger1
ssh root@ranger1
启动
sudo ranger-admin start
停止
sudo ranger-admin stop
重启
sudo ranger-admin restart
Ranger UserSync命令#
首先用root
用户登录到ranger1
ssh root@ranger1
启动
sudo ranger-usersync start
停止
sudo ranger-usersync stop
重启
sudo ranger-usersync restart
注册到Skylab(可选)#
需要将安装Ranger的机器通过机器管理添加到Skylab中,如果您尚未添加,请参考注册机器。
在ranger1
节点修改/usr/local/oushu/lava/conf
目录下的server.json
文件,替换localhost为Skylab的服务器IP,具体Skylab的基础服务lava安装步骤请参考:lava安装。
{
"server": "localhost:1612",
"admin": "localhost:1652"
}
创建一个request文件,包含ranger cluster信息:
touch ~/ranger-register.json
编辑json文件内容如下:
{
"data": {
"name": "rangerserver",
"group_roles": [
{
"role": "ranger.admin",
"cluster_name": "rangeradmin",
"group_name": "rangeradmin",
"machines": [
{
"id": 1,
"name": "ranger1",
"subnet": "lava",
"data_ip": "192.168.1.11",
"manage_ip": "192.168.1.11",
"assist_port": 1622,
"ssh_port": 22
}
]
},
{
"role": "ranger.usersync",
"cluster_name": "rangerusersync",
"group_name": "rangerusersync",
"machines": [
{
"id": 1,
"name": "ranger1",
"subnet": "lava",
"data_ip": "192.168.1.11",
"manage_ip": "192.168.1.11",
"assist_port": 1622,
"ssh_port": 22
}
]
}
]
}
}
配置文件说明,整个json分为3部分:
第一部分name,为集群名称,个性化填写。
第二部分为group_roles,对于Ranger为2个角色,
ranger.admin
和ranger.usersync
,不可修改。第三部分,为每个角色添加机器,需要添加的机器信息可以通过下面的方式获得。
在平台基础组件lava所安装的机器执行(端口和用户名按照lava配置修改):
psql lavaadmin -p 4432 -U oushu -c "select m.id,m.name,s.name as subnet,m.private_ip as data_ip,m.public_ip as manage_ip,m.assist_port,m.ssh_port from machine as m,subnet as s where m.subnet_id=s.id;"
获取到所需的机器信息,根据服务角色对应的节点,将机器信息添加到machines数组中。
在ranger1
节点调用lava命令注册集群:
lava login -u oushu -p Oushu6@China
lava onprem-register service -s Ranger -f ~/ranger-register.json
如果返回值为:
Add service by self success
则表示注册成功,如果有错误信息,请根据错误信息处理。
从页面登录后,在自动部署模块对应服务中可以查看到新添加的集群,同时列表中会实时监控ranger进程在机器上的状态。