团队
在 Semaphore UI 中,每个项目(Project)都关联一个团队(Team)。只有团队成员和管理员才能访问该项目。团队中的每个成员拥有一个或多个角色,角色决定了其访问级别以及可以执行的操作。成员可以执行其任一角色所允许的所有操作。
在 Enterprise 版中,内置角色可以通过自定义角色进行扩展,从而在特定模板上授予额外的细粒度权限。
为避免失去对项目的访问权限,建议至少有两名团队成员拥有 Owner 角色。
项目的 Team 分区有两个选项卡:Members(用户及其角色)和 Roles(自定义角色,Enterprise)。

内置角色
四种内置 角色如下:
- Owner(所有者)
- Manager(管理者)
- Task Runner(任务执行者)
- Guest(访客)
下面详细介绍每个角色及其权限。
Owner
-
完全权限
所有者可以在项目中执行任何操作,包括管理角色、添加/移除成员以及配置任何项目设置。 -
多个所有者
一个项目可以有多个所有者,以确保拥有完全权限的人不止一位。 -
最后一位所有者
项目不能没有所有者。因此,除管理员外,任何人都不能把最后一位所有者从项目中移除,也不能收回其所有者角色。最后一位所有者也不能自行退出项目。 -
管理其他所有者
所有者可以管理(包括移除或更改角色)所有团队成员,包括其他所有者。
Manager
-
**广泛的项目控制权:**管理者拥有与所有者几乎相同的权限,可以处理大多数日常任务并管理项目环境。
-
管理者不能:
- 删除项目。
- 移除所有者或更改所有者的角色。
-
**典型用例:**将 Manager 角色分配给需要广泛访问权限、但不需要删除项目或管理所有者权力的资深团队成员。
Task Runner
-
**运行任务:**任务执行者可以执行项目中存在的任何任务模板(Task Templates)。
-
**其他资源只读:**虽然可以运行任务,但他们对清单(Inventory)、变量、仓库(Repository)等其他资源只有只读访问权限。
-
**典型用例:**需要触发和监控任务、但不需要修改项目设置或管理团队成员的开发人员或 QA 工程师。
Guest
-
**只读访问:**访客对所有项目资源拥有只读访问权限(例如查看日志、清单、仪表盘)。
-
**无写入权限:**他们不能修改设置、运行任务或更改角色。
-
**典型用例:**只需要查看项目状态和详情而不做任何更改的利益相关方或其他协作者。
扩展 RBAC Enterprise
扩展 RBAC 在 Semaphore Enterprise 版中可用,从 Semaphore v2.17 开始提供。
扩展 RBAC 在四种内置角色之上叠加额外的权限。内置角色本身保持不变。如果你没有定义自定义角色,每个项目的行为与社区版完全一致。
借助扩展 RBAC,自定义角色可以授予单独的项目级权限。你还可以为角色授予对选定任务模板的权限。这样就可以让团队成员访问所需的模板,而无需将其提升到更高的内置角色。
自定义角色
自定义角色是您自己创建的角色,权限由您选择。您可以像内置角色一样把它授予成员。成员可以只有自定义角色,也可以与内置角色一起拥有。
自定义角色有两种作用域:
- 全局角色在实例级别定义,可在任何项目中使用。
- 项目角色在单个项目内定义,仅在该项目中可用。
权限级别
自定义角色在两个级别授予权限:
- 项目级权限在整个项目范围内扩展用户的访问权限。你在创建角色时选择这些权限。
- 模板权限控制对某一个任务模板的操作。将角色添加到模板后,在该模板的 Permissions 选项卡中选择这些权限。
创建自定义角色
在打开角 色表单之前,先选择作用域。
全局角色
全局角色只需创建一次,即可分配给任何项目中的用户。只有实例管理员才能创建全局角色。
打开左下角的管理员菜单,选择 Roles。
在实例范围的角色列表中,选择 New Role。

项目角色
项目角色仅在创建它的项目中可用。项目所有者和管理者可以创建项目角色。
- 打开项目,进入 Team > Roles。
- 选择 New Role。
在创建第一个项目角色之前,Roles 选项卡是空的。它列出所有项目角色,并包含 New Role 按钮。

配置自定义角色
两种路径打开的是同一个角色表单。根据团队成员所需的访问权限配置角色。