在azkaban中${AZKABAN_HOME}/conf/azkaban.properties中的以下配置文件来进行用户的管理。
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/home/bigdata/installed/azkaban-web/conf/azkaban-users.xml
进入/home/bigdata/installed/azkaban-web/conf/azkaban-users.xml,添加如下配置:
<azkaban-users>
<user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
<user password="metrics" roles="metrics" username="metrics"/>
<user password="admin" roles="admin,metrics" username="admin" />
<user password="123456" roles="metrics" username="tuzq" />
<role name="admin" permissions="ADMIN"/>
<role name="metrics" permissions="METRICS"/>
azkaban-users>
上面的两行分别表示添加admin用户和tuzq用户,其中admin有两种角色,分别是admin和metrics角色。tuzq角色是metrics,使用上面的这个新建立的用户登录进去之后可以看到效果。每个用户管理的配置必须以标签结束
要想添加用户,需要添加标签,如:
"myusername" password="mypassword" roles="a" groups="mygroup" / >
"myusername2" password="mypassword2" roles="a, b" groups="ga, gb" / >
...
参数说明:
属性 | 值 | 是否必须 |
---|---|---|
username | 登录用户名 | yes |
password | 登录密码 | yes |
roles | 以逗号分隔的用户含有的角色 | no |
groups | 以逗号风格的用户所在的分组 | no |
proxy | 以逗号分隔的可以分配给一个项目的proxy用户 | no |
要想定义分组,可以添加标签
"a" ... groups="groupa" / >
...
"groupa" roles="myrole" / >
...
在上面的例子中,a用户在groupa分组中,用户a将也会拥有myrole角色,一个regular的用户不可以添加组权限到一个项目中,除非他们是那个组的成员。
下面是一些你可以指定的group的属性。
属性 | 值 | 是否必须 |
---|---|---|
name | 组的名称 | yes |
roles | 以逗号风格的用户角色列表 | no |
角色是不同的,因为它为Azkaban的用户分配全局权限,你可以通过标签设置角色。
"a" ... groups="groupa" roles="readall" / >
"b" ... / >
...
"groupa" roles="admin" / >
...
"admin" permissions="ADMIN" / >
"readall" permissions="READ" / >
在上面的例子中,a用户拥有readall权限,这个用户定义的有READ权限。这就意味着这个用户a在所有的项目和executions中具有全局读权限。
用户a同样在groupa这个分组里面,这个角色拥有ADMIN权限,当然这个是多于的,但是这个a同样被分配给所有项目ADMIN角色。
下面的是一些你可以分配用的组的属性
属性 | 值 | 是否必须 |
---|---|---|
name | 组的名称 | yes |
permissions | 逗号风格的为角色分配的全局的权限列表 | yes |
下面是是一些可以为角色分配的权限:
权限 | 值 |
---|---|
ADMIN | 授权所有的在Azkaban中的访问权限 |
READ | 授权给用户所有项目和日志的读权限 |
WRITE | 用于用户上传文件,改变job属性配置 或 删除任何项目 |
EXECUTE | 允许用户在任何工作流中触发execution |
SCHEDULE | 用户可以为所有的flow添加或删除任务 |
CREATEPROJECTS | 如果一个项目锁住了,允许用户创建一个新项目 |