jenkins_3
十、权限配置
由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,我们使用Role-based Authorization Strategy 插件,安装请参考前面插件管理章节。
1、启用插件
插件安装后,我们先启用该插件管理Jenkins权限。
2、创建用户
我们新建一个test用户:
3、创建角色
Jenkins用户都有两种角色:全局角色和Job角色,我们先创建全局角色test,
然后赋予test角色全局读的功能。
再创建Job角色test,并赋予Job只读权限
Pattern:用于匹配Job名称。
4、用户授权
在全局角色下添加我们的test用户,并赋予该用户我们刚才创建的全局test角色。
保存后,我们使用test用户登录:
我们只有查看的权限,而且看不到任何Job信息。接着我们再赋予test用户Job角色下的test角色:
再次使用test用户登录,我们发现匹配到的my-freestyle-job 出现了,并且我们只能查看该Job的信息。
我们赋予Job roles下test角色 构建权限后,再次登录,发现我们可以构建Job。
十一、Jenkins集群配置
Jenkins支持分布式部署,我们可以为Jenkins配置多个slave,在构建的时候将任务分派到slave上,从而减轻Jennins Master的负载。
1、添加Jenkins从节点
注:如果slave节点不能启动,可能需要在从节点上安装jdk,如果要在从节点上执行maven构建,还需要在从节点上安装maven。使用同样的方便添加node2-192.168.56.12。
2、分派Job到节点
我们配置frontend-job,在通用部分:
构建完成后,我们可以看到本此构建是在node1上执行的:
注:我们可以多个slave配置同一个标签,系统随机将任务调派到不同的节点。也可以做到高可用,避免一个slave宕机,整个构建不能执行。
3、参数化构建选择节点
此功能需要我们安装Node and Label parameter plugin ,插件安装过程请参考插件管理部分内容。
插件安装成功后,我们配置frontend-job,勾选参数化构建添加Node,
我们发现构建失败,查看输出,发现失败的原因是node2:192.168.56.12不能从Gitlab上拉取代码,因为我们没有配置node2访问gitlab的SSH Key。
配置完成后,我们继续执行构建:
同样构建失败,再次查看详细信息,发现失败的原因是我们没有做node2:192.168.56.12到192.168.56.11我的免密登录,执行发布命令失败。
配置后,执行构建,发现成功: