您的位置:首页 > 运维架构 > Tomcat

Jenkins 配置用户权限 + Tomcat 发布

2017-09-19 15:48 429 查看

前言

部署到jenkins上才是入门第一步,为了权限配置踩了一天坑,先总结下来留存。并分享出来帮助后面的兄弟

简单介绍一下ci系统

为android设置ci的方式有许多种,使用最为广泛的是Jenkins,TeamCity和Travis Ci。jenkins有最大的生态系统,有大约一千个可用的插件。这也是很多开源贡献者共同努力的结果。TeamCity是JetBrains的产品,JetBrains是一家创造了IntellliJ IDEA的公司。Travis CI相对而言更加年轻,主要集中在开源项目。

ok转入正题!!

配置用户权限

系统设置-Configure Global Security-第一项



红色圈着地方就是设置权限需要选择的地方。

注意:这里有坑,如果不添加用户,直接选择复选框的权限进行保存,就会出现如下异常。



下面会介绍如何跳出这个坑,接着上面的说

各种权限如下(在配置页面将鼠标放到该权限上即可查看帮助):



其中有一些比较特别的权限

最大的权限是Overall的Administer,拥有该权限可以干任何事情。

最基本的权限是Overall的Read,用户必须赋予阅读的权限,不然什么都看不到。

Job的Discover权限是一个奇葩的权限,帮助说Discover比Read的级别更低。如果匿名用户(没有访问job的权限)直接访问一个Job的Url将重定向到登陆页面。(经测试,这个权限应该是被废弃了。)

Credentials(证书)权限

创建 /删除/ManageDomains/更新视图

ps:如果有个用户被赋予了Overall的Read,并没有被赋予Job的Read权限,那么该用户就无法访问job。原因:没有权限。

其他都是一些基本的权限,大家根据自己的需求选择。

上面说没有添加用户,直接选择权限并保存会出现,访问拒绝问题。

解决方式有3种

方式1

修改权限 F:\jenkins.2.6.0.3\config.xml

然后重启 jenkins。

注意:注意:重启jenkins方式需要单独使用jenkins-cli.jar,

路径: http://localhost:8081/war/jnlpJars/jenkins-cli.jar

步骤:系统管理-Jenkins CLI



当然可以直接从浏览器中执行,点击具体命令



ok,这样就可以进行重启了

注意:如果无法进入命令行模式,直接下载jar包,运行。

方式2

恢复默认设置

直接删除 F:\jenkins.2.6.0.3\config.xml 中的这一串

<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>false</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>false</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>


方式3

配置管理员权限

  

    这种方法适用于已经存在一堆的权限,重新配置麻烦。

    在节点中添加内容如下:

复制代码

 

<permission>hudson.model.Hudson.Administer:anonymous</permission>
<permission>hudson.model.Hudson.ConfigureUpdateCenter:anonymous</permission>
<permission>hudson.model.Hudson.Read:anonymous</permission>
<permission>hudson.model.Hudson.RunScripts:anonymous</permission>
<permission>hudson.model.Hudson.UploadPlugins:anonymous</permission>


 ps:anonymous可以更改成你的登录名。提供给大家的是匿名用户的配置。


改完之后记得保存额,然后重启Jenkins。

最后给大家说说在配置文件里面怎么辨别使用是哪种权限控制模式

节点上有个class属性,这个属性控制着使用那种授权模式。

hudson.security.FullControlOnceLoggedInAuthorizationStrategy    登录用户可以做任何事
hudson.security.ProjectMatrixAuthorizationStrategy  项目矩阵授权策略
hudson.security.GlobalMatrixAuthorizationStrategy   安全矩阵
hudson.security.LegacyAuthorizationStrategy 遗留模式


ok 配置用户权限完结了,当然jenkins的插件很丰富,可以找到关于用户权限设置插件,这里不做过多解释

推荐一个用户权限插件 Role-Based Strategy

发布到Tomcat

建议配置到tomcat,省时省力,还不用担心配置文件改错,无法重启jenkins的尴尬。

发布到Tomcat 方式:

1.下载Tomcat : download下载

解压 apache-tomcat-8.0.35。

2.找到 jenkens 根目录中 jenkins.war 包,拷贝到 apache-tomcat-8.0.35/webapps 中,重启tomcat

注意: 如果首次没有安装到tomcat中,再次安装到tomcat中会出现 8080端口被占用情况的,需要手动修改端口。

3.修改tomcat端口,\apache-tomcat-8.0.35\conf\server.xml 第68行

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- A "Connector" using the shared thread pool-->


更改端口,重启tomcat

4.tomcat重启方式

apache-tomcat-8.0.35\bin\startup.bat    关闭 shutdown.bat


总结

Jenkins学习不能一步到位,刚接触很多坑。会牵扯到其他语言或者服务器相关知识点,比方说tomcat,myeclipse,shell脚本,gradle 脚本,groovy脚本。幸好有前人已经填了好多坑。

引用

修改Jenkins权限控制 http://blog.csdn.net/wangmuming/article/details/22925987

添加用户和管理权限 http://blog.csdn.net/achang21/article/details/48711583
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat 用户权限