默认的jenkins用户权限,通过插件Role-based Authorization Strategy来设置的。
安装策略如下:
由于调式gitlab webhook自动提交部署,网上文章说,需要调整安全策略为:
保存之后,发现Manage and Assign Roles中的manage-roles只有admin,其他的权限都没有了。
普通用户登录之后,提示没有权限。
由于改之前,忘了对$JENKINS_HONE/config.xml 做备份,这咋办呢?
难道一个个重建?这么多用户,重建工作比较累。
最近的config.xml没有,但是2个月前的config.xml还有一份。不能直接拿这个文件直接覆盖掉,否则会导致很多Jenkins job丢弃。
config.xml大致结构如下:
<?xml version='1.1' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors>
<string>hudson.diagnosis.ReverseProxySetupMonitor</string>
</disabledAdministrativeMonitors>
<version>2.164.2</version>
<installStateName>RESTART</installStateName>
<numExecutors>3</numExecutors>
<mode>NORMAL</mode> <useSecurity>true</useSecurity>
<authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy">
<roleMap type="globalRoles">
<roleMap type="projectRoles">
<roleMap type="slaveRoles">
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>false</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
<disableRememberMe>false</disableRememberMe>
<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULLNAME}</workspaceDir>
<buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
<markupFormatter class="hudson.markup.EscapedMarkupFormatter"/>
<jdks>
<jdk>
<name>JDK1.8.0_144</name>
<home>/data/jdk1.8.0_144</home>
<properties/>
</jdk>
</jdks>
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
<myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
<clouds/>
<quietPeriod>5</quietPeriod>
<scmCheckoutRetryCount>0</scmCheckoutRetryCount>
<views>
<hudson.model.AllView>
<owner class="hudson" reference="../../.."/>
<name>all</name>
<description>建立job后默认分类ALL</description>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
</hudson.model.AllView>
<listView></listView>
</views>
<primaryView>all</primaryView>
<slaveAgentPort>0</slaveAgentPort>
<label></label>
<crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
<excludeClientIPFromCrumb>false</excludeClientIPFromCrumb>
</crumbIssuer>
<nodeProperties/>
<globalNodeProperties/>
</hudson>
将<useSecurity>true</useSecurity>到<scmCheckoutRetryCount>0</scmCheckoutRetryCount> 这部分内容替换掉。
再次重启jenkins,查看权限,就恢复好了
最后申明一下,gitlab webhook自动提交部署,不需要修改安全策略:登录用户可以做任何事。
出现403的原因是,jenkins job的token和gitlab设置的token不一致导致的。改成一样,就可以了,出现http 200表示成功。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有