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功能的core-site.xml文件所在目录

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中install.propertiesrangerUsersync_password相同

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中install.propertiesrangerUsersync_password相同

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功能的core-site.xml文件所在目录

启动#

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.enabledtrue才能使同步生效

<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.adminranger.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进程在机器上的状态。