jenkins 使用 总结

写在前面

这不是一篇从头到尾的教程,是我根据网上的教程进行搭建,中间遇到的问题或者说觉得重要的点的一些记录,适合参考着看。

安装

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install jenkins

配置

// 配置端口 
vi /etc/sysconfig/jenkins
JENKINS_PORT="8080" #这里是加入的
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR"

启动

// 启动/停止/重启/状态
service jenkins start
service jenkins stop
service jenkins restart
service jenkins status

操作

访问 http://ip:8080
// 查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
// 选择左边的默认安装
// 创建管理员用户

邮件配置

// 邮件通知
系统设置:
	Jenkins Location > 系统管理员邮件地址: 这里需要配置
	邮件通知 > 
		SMTP服务器:smtp.163.com 或 smtp.qq.com 
		勾选 使用SMTP认证
		用户名:邮箱名(这里需要与上面 系统管理员邮件地址 一致)
		密码:这里填的是设置邮箱 开通 POP3/STMP 功能时设置的认证密码,不是邮箱密码!!!

	测试:
		勾选 通过发送测试邮件测试配置
		Test e-mail recipient:接受的邮箱地址,测试的时候可以直接填 系统管理员邮件地址 地址,就是自己发给自己,发送给其他人时,因为内容中有 test 关键字,所以会报 554  错误,意思是内容非法
错误代码说明:
https://blog.csdn.net/u013938484/article/details/51939587

新建任务

在这之前需要安装插件,gitLab/Maven Integration
参考链接:https://blog.csdn.net/alinyua/article/details/81103570

1.构建一个自由风格的软件项目(适合多个项目代码融合在一起的项目,灵活度高):
	可以在《构建》选项中 选择 执行 shell脚本,脚本里可以 写 maven 构建,然后docker发布,很灵活
2.构建一个maven项目(适合单个maven项目):
	在 《Build》选项中 配置好就可以了。这里配置完后,执行构建,就会把打包成 jar/war,在 《Post Steps》中可以选择执行shell,来启动项目

构建项目时没有 ·构建maven项目·:
参考链接:http://www.cnblogs.com/zhizhao/p/9442411.html
原因:没有安装插件,插件名:Maven Integration Plugin

错误记录

错误一(启动时报错):
	错误信息:Starting Jenkins bash: /usr/bin/java: 没有那个文件或目录
	解决办法:
		查看Java_home:
			[root@kk ~]# echo $JAVA_HOME
			/opt/jdk-8u171-linux-x64/jdk1.8.0_191
		修改配置文件:
			vi /etc/rc.d/init.d/jenkins
			candidates="
			/etc/alternatives/java
			/usr/lib/jvm/java-1.8.0/bin/java
			/usr/lib/jvm/jre-1.8.0/bin/java
			/usr/lib/jvm/java-1.7.0/bin/java
			/usr/lib/jvm/jre-1.7.0/bin/java
			/usr/bin/java
			/opt/jdk-8u171-linux-x64/jdk1.8.0_191/bin/java # 此处是加上的内容
			"
错误二(源码配置时):
	错误信息:stderr: error: The requested URL returned error: 401 Unauthorized while accessing http://192.168.1.33:8000/csbr/blockchain.git/info/refs
	解决办法:url上加上用户名
	例如:http://username@192.168.1.33:8000/csbr/blockchain.git

错误三(执行 mvn install 进行项目构建时)
	错误信息:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project csbr-boot-starter: Error while storing the mojo status: /var/lib/jenkins/workspace/test/csbr-boot-starter/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst (权限不够)

	解决办法:
		vim /etc/sysconfig/jenkins
		JENKINS_USER="root" # 修改用户为root
		
错误四(设置密码后时候首次登录失败)
https://blog.csdn.net/galen2016/article/details/84648620
linux 中 config.xml 在 /var/lib/jenkins 目录中,重新设置密码后记得把配置文件换回来,然后重启jenkins

错误五(构建shell中执行 nohup 启动失败)
问题的根本在于是Jenkins使用processTreeKiller杀掉了所有子进程,而且这是Jenkins的默认行为。为了解决该问题,我们需要在启动前加上这句
BUILD_ID=DONTKILLME
防止Jenkins 杀死我们的进程。
如下:
BUILD_ID=DONTKILLME
nohup java -jar test.jar &

结合实际项目说明

我们git上的项目是结合在一起的,不是每个服务对应git上的一个项目
git 目录
在这里插入图片描述
各个服务是在一个项目中,所以无法在构建项目时选择 构建一个 maven 项目,我选择的是 构建一个自由风格的软件项目
那么问题来了:如何对每个项目进行打包,并发布呢
我是通过 在《构建》选项中 选择 执行 shell脚本
具体shell内容:

#!/bin/bash

echo "======================";
echo $PATH;
echo "======================";

# 生成 start jar包
echo "===========start install start========="
/opt/maven/apache-maven-3.5.3/bin/mvn -f /var/lib/jenkins/workspace/test/csbr-boot-starter install

echo "===========core package start========="
# 打包 core
/opt/maven/apache-maven-3.5.3/bin/mvn -f /var/lib/jenkins/workspace/test/blockchain-core package

# 把 core 部署到docker
cp  /var/lib/jenkins/workspace/test/blockchain-core/target/blockchain-core-0.1.jar /opt/docker/projects/blockchain-core
echo "===========docker start========="
bash /opt/docker/run start blockchain-core

具体操作就是 自己调用 maven 命令进行打包,然后 调用自己编写的脚本,把打包好的 jar/war 部署到docker中

执行 mvn 命令时会报错,提示 该 命令找不到,所以我用的是绝对路径
还会遇到错误三,解决办法看上面

希望本文对您有所帮助!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值