nexus的权限管理

1、    Nexus的权限管理

出于安全性考虑、需要对Nexus仓库进行权限管理、比如只有管理员才能配置Nexus、某个项目组有特定的仓库、等等

2、    Nexus的访问控制模型

Nexus基于权限(Privilege)做访问控制的。一个用户可以被赋予一个或者多个角色、一个角色可以包含一个或者多个权限、还可以包含一个或者多个角色。用户必须拥有相应的角色继而拥有相应权限、才能做相应操作。

Nexus预定义了三个用户、以admin登录、单击左边导航栏User链接:

admin:拥有对Nexus服务完全控制、默认密码admin123

deployment: 能访问Nexus、浏览仓库、搜索、并且上传部署构件、但是无法对Nexus进行任何配置、默认密码deployment123。

Nexus预定义了一些常用且重要的角色,如:

UI:Basic UIPrivileges:包含了访问Nexus界面必须的最基本的权限。

UI:RepositoryBrowser:包含了浏览仓库页面所需要的权限。

UI:Search:包含了访问快速搜索栏及搜索界面所需要的权限。

Repo:AllRepositories (Read):给予用户读取所有仓库内容的权限。没有仓库的读权限用户将无法再仓库页面看到实际的仓库内容,也无法使用Maven从仓库下载构件。

Repo:AllRepositories (Full Control):给予用户完全控制所有仓库内容的权限。用户不仅可以浏览、下载构件,还可以部署构件及删除仓库内容。

3、    Nexus为项目分配独立的仓库

避免各个项目上传到同一仓库发生冲突干扰、可以为每个项目创建独立的仓库、每个项目所拥有的仓库只有其项目组成员才能对此仓库进行部署、修改和删除权限、其他用户只能读取、下载、和搜索该仓库内容。

四步实现:1、创建项目独立仓库。2、为仓库建立权限。3、创建包含上述权限的角色。4、创建用户、指定用户拥有上面的角色。以创建Andy Release仓库为例、具体如下:

1、创建项目库

单击Nexus界面左边导航栏中的Repositories链接,在右边的面板中选择Add,在下拉菜单中选择Hosted Repository。接着在下面的面板中填写仓库的ID和名称,选择Repository PolicyRelease,选择Deployment PolicyAllow Redeploy,其他的选项默认。点击Save按钮。

2、为仓库建立权限

有了仓库以后,就需要创建基于仓库的增、删、查、改权限了。Nexus中增删查改的权限是基于Repository Target建立的。单击Nexus界面导航栏中的Repository Targets链接,可以看到Repository Target的相关信息。

点击页面导航栏中“Security->Privileges->单击Add按钮,选择“Repository Target Privilege”。如图4填写相关内容:

3、创建角色

如果我们创建一个包含上述权限的角色的话就能更方便管理了。创建角色步骤如下:

从导航的“Roles”链接进入角色界面,单击上方的“Add按钮”选择“Nexus Role”。填写相关内容,并将fooReleases项目分配给角色。如图6填写相关信息:

4、创建用户

点击导航的“Users”链接,进入用户界面,然后单击“Add”按钮并选择“Nexus User”。填写相关内容。并授予用户角色信息

最后要做的就是在项目中指定特定的部署仓库、并在settings.xml配置fooRelease仓库的认证信息、也就是上面第四部用户的帐号密码。

5、按照上面步骤创建该项目的Snapshots库。

4、    Nexus调度任务

Nexus提供了一系列可配置的调度任务来方便用户管理系统。用户可以设定这些任务运行的方式,例如每天、每周等。调度任务会在适当的时候在后台运行。

要建立一个调度任务,单击左边导航菜单中的“Scheduled Tasks”,然后再右边的界面上单击Add按钮,按照页面上的提示填写相关内容。

Nexus包含了以下几种类型的调度任务:

Download Indexs:为代理仓库下载远程索引。

Empty Trash:清空Nexus的回收站,一些操作实际是将文件移到了回收站中。

Evict UnusedProxied Items From Repository Caches:删除代理仓库中长期未被使用的构件缓存。

Expire RepositoryCache:Nexus为代理仓库维护了远程仓库的信息以避免不必要的网络流量,该任务清空这些信息以强制Nexus去重新获取远程仓库的信息。

Publish Indexs:将仓库索引发布成可供m2eclipse和其他Nexus使用的格式。

Purge NexusTimeline:删除Nexus的时间线文件,该文件用于建立系统的RSS源。

Rebuild MavenMetadata Files:基于仓库内容重新创建仓库元数据文件maven-metadata.xml,同时重新创建每个文件的校验和md5与sha1。

ReIndexRepositories:为仓库编纂索引。

Remove SnapshotsFrom Repositories:以可配置的方式删除仓库的快照构件。

Synchronize ShadowRepository:同步虚拟仓库的内容(服务基于Maven1)。

比如建立一个每个月更新一次中央仓库索引的任务:

猜你喜欢

转载自eric-gcm.iteye.com/blog/2223380