Jenkins是一个用Java编写的开源的持续集成(CI)工具,可持续、自动地构建/测试软件项目,监控一些定时执行的任务。具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点。
一、Jenkins安装
1.安装OpenJDK
[root@localhost ~]#yum install java-1.7.0-openjdk
[root@localhost ~]#java -version
java version"1.7.0_131"
OpenJDK RuntimeEnvironment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)
OpenJDK 64-BitServer VM (build 24.131-b00, mixed mode)
2.yum安装Jenkins stable版本
[root@localhost ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
[root@localhost ~]# rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
[root@localhost ~]# yum install jenkins
安装好后,jenkins的主目录位于/var/lib/jenkins,这也是jenkins用户的家目录。
jenkins主程序:/usr/lib/jenkins/jenkins.war
jenkins配置文件:/etc/sysconfig/jenkins
jenkins启动脚本:/etc/init.d/jenkins
jenkins日志目录:/var/log/jenkins
3.启动Jenkins
[root@localhost ~]# service jenkins start
[root@localhost ~]# chkconfig jenkins on
4.访问Jenkins,进行初始化设置
http://jenkins_server_ip:8080
二、Jenkins插件安装演示
1.在线安装语言插件
进入Manage Jenkins->Manage Plugins->Available,找到"Locale plugin"并安装,安装过程中会自动处理好插件的依赖。
在线安装插件可能由于网络原因安装失败,记下安装失败的插件和安装顺序,然后使用下面的方法离线安装。
2.离线安装插件
访问网址https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/,搜索上一步安装失败的那些插件,下载下来。
进入Manage Jenkins->Manage Plugins->Advanced,选择插件文件并上传。
注意:要按照依赖顺序一个一个安装插件。
安装好后重启Jenkins(可以通过访问http://jenkins_server_ip:8080/restart重启)。
3.设置语言为中文
进入Manage Jenkins->Configure System,在"Default Language"位置输入zh_CN,保存立即生效。
三、安装SVN插件
1)进入"系统管理"->"插件管理"->"可选插件",找到"Subversion Plug-in"并安装。
2)SVN插件安装好后,我们创建一个新项目。
在项目配置的"源码管理"部分,我们可以对svn仓库进行配置了。
四、安装SSH插件
1)进入"系统管理"->"插件管理"->"可选插件",安装"Publish Over SSH"插件。
2)配置SSH免密码登录到远程服务器
usermod -s /bin/bash jenkins
su - jenkins
ssh-keygen -t rsa
将公钥推送到远程主机:
ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 10022 root@192.168.1.211' 3)进入"系统管理"->"系统设置",找到Publish over SSH配置段。
Passphrase:密码(key的密码,一般我们不会设置)
Path to key:key文件(私钥)的路径
Key:将私钥复制到这个框中(与Path to key二选一)
Disable exec:禁止远程运行命令
SSH Server Name:自定义远程主机的名字
Hostname:ssh远程连接的ip地址
Username:用户名
Remote Directory:远程目录
Use password authentication, or use a different key:选中展开就可以配置新的私钥,不使用全局配置。
Port:SSH端口
Timeout (ms):超时时间(毫秒)
Disable exec:禁止运行命令(只对当前配置的ssh主机生效)
Test Configuration:测试连接,连接成功会返回Success
五、项目配置
1.新建一个项目
新建一个项目,输入项目名称,选择“构建一个自由风格的软件项目”。
2.构建触发器
远程构建URL:
JENKINS_URL/job/JOB_NAME/build?token=TOKEN_NAME
我们可以在URL末尾加上&cause=Cause+Text描述构建原因。
例如:
http://192.168.1.203:8080/job/testjob1/build?token=testjob1token
脚本调用方法:
curl -v -u 用户名:登录密码 远程构建URL
Build after other projects are built
指定的项目完成构建后,才触发此项目的构建。
按指定的时间频率对项目进行构建。
按指定的时间频率检查源代码仓库的变化,如发现变化则执行构建。
3.构建环境
Send files or execute commands over SSH before the build starts
构建开始前通过ssh给远程主机发送文件或者执行命令。
Send files or execute commands over SSH after the build runs
构建结束后通过ssh给远程主机发送文件或者执行命令。
这两个选项是在安装了“Publish Over SSH”插件后出现的,比较实用。配置介绍:
Name:在系统设置里配置的SSH远程主机的名字
Source files:上传的文件或目录(相对于项目工作区的路径,非绝对路径。可以填写多个,默认用逗号分隔)
Remove prefix:移除Source files的目录前缀
Remote directory:远程主机的上传目录(如果目录不存在会自动创建)
Exec command:要远程执行的命令
Flatten files:只上传文件,不创建目录(除了远程目录)
4.构建步骤
Execute Windows batch command
执行Windows批处理脚本(Jenkins安装在Windows系统中)。
执行Linux shell脚本(Jenkins安装在Linux系统中)。
JenKins与Ant集成实现项目的自动化构建部署,适用于Ant作为构建工具的项目。
Invoke top-level Maven targets
JenKins与Maven集成实现项目的自动化构建部署,适用于Maven作为构建工具的项目。
Send files or execute commands over SSH
通过ssh给远程主机发送文件或者执行命令。“Publish Over SSH”插件的功能。
5.参数化构建
通过参数化构建功能,我们可以为构建程序传递参数,灵活控制构建流程。
在项目配置里点选“参数化构建过程”,然后选择“添加参数”,jenkins提供了多种参数类型:
举个例子,我们添加两个参数:
参数level是Choice类型,可选值1和2,默认值是1。
参数text是String类型,默认值是“hello world”。
参数设置好后,我们可以在构建脚本里引用这些变量。
Windows平台引用方法:%var_name%
Linux平台引用方法:${var_name}
配置完整个项目后,我们手动运行构建:
在项目面板的左侧选择“Build with Parameters”,先对参数值进行修改,然后点击“开始构建”。
参数化远程构建URL(通过访问url触发构建):
JENKINS_URL/job/JOB_NAME/buildWithParameters?token=TOKEN_NAME&PARM1=VALUE1&PARM2=VALUE2…
例如:
http://192.168.1.203:8080/job/testjob1/buildWithParameters?token=testjob1token&level=2&text=hello+world
脚本调用方法:
curl -v -u 用户名:登录密码 远程构建URL
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com