一、jenkins安装
- 查看服务器版本
cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
- 安装java
yum install java
但对于centos有个问题,不可以安装成gcj
(GNU Compiler for the Java Programing Language),导致jenkins不工作,如果查看java版本类似如下,需要卸载,安装其他版本
java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
这时我们卸掉重新安装
yum remove java
4.搜索openJDK版本
yum search openjdk
#java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
#java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
#java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
5.安装openJDK
#安装`1.8.0`的
yum install java-1.8.0-openjdk
- 安装jenkins
# 拉取库的配置到本地对应文件
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# jenkins.repo内容是这样
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1
# 导入公钥
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
# 安装jenkins
#`-y`参数:回答全部问题为是
sudo yum -y install jenkins
# 更新jenkins
yum update jenkins
# 赋予Jenkins在网站根目录的读写权限,我这边网站的根目录为/usr/share/nginx/hxkj
chown -R jenkins.jenkins /usr/share/nginx/hxkj
###
cd /etc/yum.repos.d/
wget http://pkg.jenkins.io/redhat/jenkins.repo
rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
yum install -y jenkins
###
cat /etc/sysconfig/jenkins | more
可以获得几个重要配置项目信息
JENKINS_HOME="/var/lib/jenkins",存放jenkins 配置及工作文件
JENKINS_PORT="8080",jenkins默认8080端口
2.配置文件夹
# 这个位置挺重要
ls /var/lib/jenkins
有jobs、logs、plugins等文件夹及文件若干。勿乱删
这次主要看了看plugins文件夹,所有插件都在里面,如插件ssh-slaves,会有一个ssh-slaves文件夹及ssh-slaves.jpi。
当某个插件未安装成功时,会有一个以.tmp结尾的文件
3.日志
logs相关两个位置:
/var/lib/jenkins/logs
有logs,暂时看来没记录啥,以后再追。
/var/log/jenkins/jenkins.log
,记录了插件安装等日志,失败信息原因等很清晰,重要
三、启动&配置
1.启动服务
# service jenkins start
systemctl start jenkins
# 重启
systemctl restart jenkins
2.浏览器访问
IP地址:8080
3.获取管理员密码
按提示,去/var/lib/jenkins/secrets/initialAdminPassword
,复制贴进去,continue
4.选择安装方式
默认推荐吧,左边的。第二个自定义插件,如果知道需要什么插件,插件都是干嘛的,再选custom吧
5.等待插件安装
如果正常,没啥说的。如果像这样,一些插件失败了,刷新页面,下一步。失败的插件后来再装。
image.png
- 卸载jenkins
在某次自动安装插件时异常了一大片,刷新也没出现下一步,等待许久无果,删了重装
rpm -e jenkins
这时会有一些残留的文件分散在各地
find / -iname jenkins | xargs -n 1000 rm -rf
文章摘自:https://segmentfault.com/a/1190000007086764
三、配置项目
我们首先来配置Publish Over SSH
该插件主要是通过SSH连接其他Linux机器,远程传输文件及执行Shell命令。
公共配置
Passphrase:密码(key的密码。如果有设置)
Path to key:key文件(私钥)的路径
Key:将私钥复制到这个框中
Disable exec:禁止运行命令
注意:一般来说,我们会采用同每一个SSH Server单独配置的方式,因此公共配置部分一般不进行设置
私有配置
SSH Server Name:标识的名字,可随便取
HostName:需要连接ssh的主机名或IP地址
Username:SSH连接所使用的用户名
Remote Directory:用SSH连接后的远程根目录,这个目录是必须存在的,Jenkins不会自动创建目录。Jenkins会将文件远程复制到该目录。(注意:SSH连接的用户需要有权限才可以创建、删除、移动文件及文件夹)
Use password authentication, or use a different key:使用密码认证或密钥认证
私有配置的高级
Port:SSH连接端口号(默认为22)
Timeout (ms):连接超时的时间,单位以毫秒计算
Disable exec:禁止exec执行命令
Test Configuration:测试配置是否成功
提交docs文档:
image.png
提交到服务器:
image.png
Transfer Set Source files:需要上传到应用服务器的文件(注意:相对于工作空间的路径,可填写多个,默认用逗号分隔)
Remove prefix:去掉前缀(只能指定Transfer Set Source files中的目录)
Remote directory:可选的目标文件夹。如果文件夹不存在,会创建文件夹。
Exec command:在远程服务器将要执行的命令。在远程SSH传输执行后,才执行这里的脚本命令
高级选项:
Exclude files:排除的文件(在传输目录的时较有用,使用通配符,例如:/.log,/.tmp,*.txt/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符)
No default excludes:禁止默认的排除规则
Make empty dirs:此选项会更改插件的默认行为。默认行为是匹配该文件是否存在,如果存在则创建目录存放。选中此选项会直接创建一个目录存放文件,即使是空目录。
Flatten files:只上传文件,不创建目录(除了远程目录)
Exec timeout (ms):运行脚本的超时时间(毫秒)
Exec in pty:模拟一个终端执行脚本
Add Transfer Set:增加一个传输配置
四、向GitHub提交代码时触发Jenkins自动构建
参考文档:https://blog.csdn.net/boling_cavalry/article/details/78943061
五、测试用例
注意我们编写的测试用例一定要有退出,否则会堵死
jenkins process.exit(1); 表示错误退出
process.exit(); 或 process.exit(0);代表正常退出
网友评论