前言
部署到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