1.jenkins服务的搭建安装
有两种方式,如下:
方式一:用tomcat容器加载jenkins
(1)下载jdk tar包并解压(不需要安装),并配置JAVA_HOME,PATH,CLASSPATH环境变量
(2)下载tomcat tar包并解压(不需要安装)
(3)在jenkins官网上(https://jenkins-ci.org/)下载jenkins.war包。并将jenkins.war放置到$TOMCAT_HOME/webapps目录下。
(4)使用http://hostname:8080/jenkins就可以访问了。
方式二:直接启动jenkins war包
(1)下载jdk tar包并解压(不需要安装),并配置JAVA_HOME,PATH,CLASSPATH环境变量
(2)在jenkins官网上(https://jenkins-ci.org/)下载jenkins.war包。然后使用java -jar jenkins.war启动jenkins web服务
(3)使用http://hostname:8080就可以访问了。
效果展示如下:
2.jenkins的目录组织结构
jenkins的各种配置信息,没有存储在db中,而是直接存储在jenkins所在的服务器的本地文件中,部分的目录和文件如下:
(1)/home/${USER}/.jenkins/
jenkins默认的主目录在/home/${USER}/.jenkins/中,这个目录中包括了jenkins的job任务、各种配置等等,所有jenkins只需要备份这个目录就行了。
(2)/home/${USER}/.jenkins/jobs/
/home/${USER}/.jenkins/jobs目录下存放的jenkins中的所有构建任务。
(3)/home/work/.jenkins/jobs/${job_name}/workspace/
workspace是每个构建job的工作目录,比如有监听svn地址的jobs,会将svn中的内容签出到该目录中。
(4)/home/work/.jenkins/jobs/${job_name}/builds/
builds是每个job的历史构建信息,包括构建的日志、构建的产出等等。jenkins任务上显示的“构建历史”就是从该目录下文件中读取出来的。
3.jenkins的插件的安装
Jenkins支持很多的plugin,这些plugin极大地丰富了Jenkins的功能。安装plugin有两种方式:自动安装和手动安装。
(1)自动安装
这种方式非常简单,但前提是Jenkins必须连接网络。通过浏览器进入Jenkins界面,Manage Jenkins->ManagePlugins,在Available标签中,列出了所有的plugin。选中所需plugin前面的复选框,点击“Install without restart”按钮,可以自动安装。安装界面如下图所示:
(2)手动安装
在不能联网的情况下,就只能手动安装。手动安装又有两种方式:Jenkins CLI安装plugin和Upload安装plugin。
A)Jenkins CLI安装plugin
B)Upload安装plugin
4.Jenkins的安全控制|用户管理
在默认配置下,Jenkins是没有安全检查的。任何人都可以以匿名用户身份进入Jenkins,设置Jenkins和Job,执行build操作。但是,Jenkins在大多数应用中,尤其是暴露在互联网的应用中,安全控制是非常重要的。安全控制主要解决两个问题:哪些用户可以进入Jenkins;进入Jenkins的用户可以做些什么事。
Jenkins提供了用户认证和权限控制两种维度的安全策略:
1) Security Realm(安全域):决定用户名和密码,且指定用户属于的组。
2) Authorization Strategy(授权策略):分配用户执行某些操作的权限。
通过Manage Jenkins->Configure Global Security->Enable security,就可以进入Jenkins安全控制界面,如下图所示:
1 Security Realm
1.1 Delegate to servlet container
如果你的Jenkins运行在像Tomcat和GlassFish等服务器上,这些服务器本身就有安装控制,选择这种安全策略,就可以非常简单地让服务器接管Jenkins的安全控制问题。
1.2 Jenkins's own user database
Jenkins本身有个数据库来管理用户,不过这个数据库的容量比较小,当有大量用户时,这种策略就不合适。在这种策略下,如果允许任何人通过注册的形式Jenkins的话,可以勾上"Allow user to sign up"。这样非用户在进入Jenkins界面后,可以通过点击右上角的”sign up“先注册,然后再登陆使用Jenkins。如果不允许他人随便注册和使用该Jenkins,就要取消"Allow user to sign up"复选框。此时如果想添加新的用户,只能由已注册用户通过Manage Jenkins-> Manage Users进入User Database界面,点击Create User来注册新的用户。注册新用户界面如下图所示:
1.3 LDAP
很多组织用LDAP目录来管理用户,Jenkins也是支持这种安全策略的,不过需要进行一些参数的配置,配置方法可以参考LDAP Plugin Wiki。如果没有特殊要求,大部分的高级设置都可以空着。
1.4 Unix user/group database
如果Jenkins安装在Unix机器上,可以将Unix机器上的用户和组应用到Jenkins。登陆Jenkins,只需要输入Unix的用户名和密码就可以。
2 Authorization Strategy
2.1 Anyone can do anything
这种是最简单,同时也是最不安全的授权策略,任何人都可以对Jenkins进行任何操作。
2.2 Legacy mode
这种策略比较极端:admin用户拥有系统的所有权限,其他所有用户(包括anonymous)只有只读权限。
2.3 Logged-in users can do anything
这种策略相对于”Anyone can do anything“要好一点,只有登陆Jenkins的用户,才有进行所有操作的权限。
2.4 Matrix-based security
Jenkins安装以后,会有一个anonymous用户,通过该匿名用户进入系统后,创建一个administrator,分配它系统所有的权限,同时限制anonymous用户的权限。如下图所示:
然后以administrator身份登录Jenkins,通过他根据需要给其他用户分配权限,从而实现权限的集中控制。
2.5 Project-based Matrix Authorization Strategy
该策略是将前面Matrix-base安全策略应用到单个project中。Matrix-base中的权限是针对整个系统的,而Project-based是进一步设置用户在每个具体project上的权限。在这种策略下,具体project的configure界面中,会出现”Enable project-based security“复选框,选中后就可以设置用户能够对该project操作的权限。
5.Jenkins权限控制重置
如果权限设置错误,导致自己都无法登陆Jenkins,可以进行如下操作:
1)停止Jenkins;
2)用编辑器打开$JENKINS_HOME中的config.xml;
3)将<useSecurity>true</useSecurity>元素中的true改为false;
4)将<authorizationStrategy>和<securityRealm>元素的内容删掉;
5)启动Jenkins。
这些步骤操作完后,Jenkins又回到最初没有安全检查的状态,任何人都可以进入Jenkins执行任何操作。如果这种方法还是不成功,可以尝试重命名或者删除config.xml文件.
6.hudson/jenkins命令行CLI交互工具
部署好hudson/jenkins后,一般都是通过hudson/jenkins提供的web界面来操作hudson/jenkins。而有些场景则需要通过命令来操作jenkins,比如像用脚本来操作hudson/jenkins。在jenkins提供的web界面中有一次对jenkins的命令行的简单介绍,位置在系统管理 -> jenkins CLI。
执行方法如下:
java -jar jenkins-cli.jar -s ${HUDSON_URL} command
可用的command命令有:
比如使用jenkins-cli.jar去触发一个构建任务:
java -jar jenkins-cli.jar -s http://xxxip:8080/ build my-test-job #使用命令行工具触发my-test-job任务
学习资料参考于:
http://blog.csdn.net/jmyue/article/details/9376237
http://blog.csdn.net/jmyue/article/details/9763021
http://www.cnblogs.com/lipijin/p/4027029.html