Jenkins自动化部署gitee项目到阿里云ECS服务器
2021/6/27 6:17:12
本文主要是介绍Jenkins自动化部署gitee项目到阿里云ECS服务器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Jenkins自动化部署gitee项目到阿里云ECS服务器
环境准备
搭建maven、java、git环境
Jenkins安装
Jenkins(网址是 https://jenkins.io/) 是一个开源项目,它是一个基于 Java 的持续集成系统。我们可以在 Jenkins 上配置持续集成的任务,让机器自动完成构建(build),集中展示集成中存在的错误,提供详细的日志文件,提醒功能,以及用图表的形式展示项目构建的趋势和稳定性。
Linux安装Jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' //这里是Ubuntu进行安装 sudo apt-get update sudo apt-get install jenkins //CentOS进行安装默认使用yum进行安装 sudo yum update sudo yum install jenkins
安装完成后,它会自动启动 Jenkins 服务。我们看一下它的状态,从屏幕输出可以看到,它当前正常运行。
[root@iZ2vc1e3nnjpo1cayr4utfZ ~]# sudo systemctl status jenkins ● jenkins.service - LSB: Jenkins Automation Server Loaded: loaded (/etc/rc.d/init.d/jenkins; generated) Active: active (running) since Fri 2021-06-25 21:37:28 CST; 21h ago Docs: man:systemd-sysv-generator(8) Process: 1712 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS) Tasks: 86 (limit: 10995) Memory: 1.0G CGroup: /system.slice/jenkins.service ├─1669 java -jar /www/wwwroot/myblog/myblog.jar --server.port=443 └─2661 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=tru> Jun 25 21:37:25 iZ2vc1e3nnjpo1cayr4utfZ systemd[1]: Starting LSB: Jenkins Automation Server... Jun 25 21:37:25 iZ2vc1e3nnjpo1cayr4utfZ runuser[1742]: pam_unix(runuser:session): session opened f> Jun 25 21:37:28 iZ2vc1e3nnjpo1cayr4utfZ runuser[1742]: pam_unix(runuser:session): session closed f> Jun 25 21:37:28 iZ2vc1e3nnjpo1cayr4utfZ jenkins[1712]: Starting Jenkins [ OK ] Jun 25 21:37:28 iZ2vc1e3nnjpo1cayr4utfZ systemd[1]: Started LSB: Jenkins Automation Server.
Jenkins 默认的侦听端口是8080,通过浏览器输入 ubuntuvm1 虚拟服务器地址和8080端口即可访问。首次访问需要解锁,请按屏幕提示操作。例如,从虚拟机里面查到密码是 “2bcb508f031743d5ada3fefb93e3167d”,将它填写在 “Administrator password” 输入框里,再按 “Continue” 按钮提交。
选择让 Jenkins 加载常用的插件。
Jenkins配置
1、修改Jenkins默认端口
默认端口是8080,该端口经常被使用,因此换一个不常用端口用来访问Jenkins,通过vim编辑器修改Jenkins默认访问端口
vim /etc/sysconfig/jenkins
为了方式权限出现Permission Denied
这个问题,可将JENKINS_USER
设置为root用户
2、插件安装
前往 Manage Jenkins -> Manage Plugins -> Available,在 Filter 中搜索 Gitee:
下方可选列表中勾选 Gitee(如列表中不存在 Gitee,则点击 Check now 更新插件列表),然后点击“Download now and install after restart”。
在安装页面勾选“Restart Jenkins when installation is complete and no jobs are running”
安装完之后,可以在 “installed” 页面看到 Gitee 插件
3、Gitee插件配置
1)前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee 配置 -> Gitee 链接
2)在 链接名 中输入 Gitee 或者你想要的名字
3)Gitee 域名 URL 中输入码云完整 URL地址: https://gitee.com (码云私有化客户输入部署的域名)
4)证书令牌 中如还未配置码云 APIV5 私人令牌,点击 Add - > Jenkins
Domain 选择 全局凭据
Kind 选择 Gitee API 令牌
Scope 选择你需要的范围
Gitee API Token 输入你的码云私人令牌,获取地址:https://gitee.com/profile/personal_access_tokens
ID, Descripiton 中输入你想要的 ID 和描述即可。
5)Credentials 选择配置好的Gitee API Token
6)点击 Advanced ,可配置是否忽略 SSL 错误(适您的Jenkins环境是否支持),并可设置链接测超时时间(适您的网络环境而
7)点击Test Connection,查看是否能够访问,如失败请检查以上 3,5,6 步骤。
4、配置其它插件
1)进入global tool configuration
2)配置jdk、maven、Git插件
5、配置Global Environment
1)点击进入系统设置
2)添加全局变量
项目部署
1、新建项目
项目创建成功:
2、配置项目
1)Gitee Connection选中上面建好的gitee api token
2)配置git远程仓库
3)添加Credentials(因为仓库是码云的,这里配置登录码云的用户名及密码)
远程仓库配置完毕,自动刷新(配置完了不会报错的,如果报错,请参考文章末尾的遇到问题)
4、编写脚本设置项目定时构建时间(设置触发器)
5、编写命令构建项目
编写项目构建命令:
#echo "输出PATH变量" #echo $PATH # 重新打包 echo "开始重新打包" mvn clean install echo "打包完毕" whoami echo "准备重启" # 找到之前项目jar包进程ID并杀死 pid=`ps -ef | grep myblog.jar | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then kill -9 $pid fi echo "停止运行" #转移到tomcat webapps目录下 cp target/myblog.jar /www/wwwroot/myblog # 后台运行项目jar包 nohup java -jar /www/wwwroot/myblog/myblog.jar --server.port=443 >myblog.log 2>&1 &
项目配置完毕。
3、构建项目
项目配置完了,接下来就开始构建项目
1)Build Now
2)进入终端查看输出
4、项目构建成功
构建成功啦,因为是个博客项目,接下来可以访问一下:https://caifl.top
如果遇到问题,参考下面的遇到问题!
遇到问题:
1、cp: cannot create regular file ‘/usr/local/tomcat/tomcat-9.0.41/webapps/myblog.war’: Permission denied
问题描述:
cp: cannot create regular file '/usr/local/tomcat/tomcat-9.0.41/webapps/myblog.war': Permission denied
# 尝试通过chmod命令进行授权 chmod 777 /usr/local/tomcat
如果不行,则修改Jenkins用户
vim /etc/sysconfig/jenkins
2、Non-resolvable parent POM for com.cfl:MyBlog:1.0.0: Could not transfer artifact org.springframework.
问题描述:
Non-resolvable parent POM for com.cfl:MyBlog:1.0.0: Could not transfer artifact org.springframework.
问题原因:
pom文件有两个org.springframework.boot
包的依赖
解决:
删除重复的那个依赖
3、tomcat启动一闪而过
问题描述:
tomcat启动之后一闪而过,直接停止运行
查看logs目录下的日志:
Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Error: Could not find or load main class org.apache.catalina.startup.Bootstrap Error: Could not find or load main class org.apache.catalina.startup.Bootstrap
问题原因:原因不明,可能是tomcat压缩包是src版本而非bin版本,亦或者是其它环境问题
解决办法:重新下载tomcat-9.0.48-bin.tar.gz安装包
4、Jenkins - mvn: command not found
问题描述:Jenkins - mvn: command not found,Jenkins部署构建项目时,console output显示mvn 命令无法找到
问题原因:
Linux对于java或maven的路径的环境变量是放在/etc/profile中的, 而/etc/profile只有在用户登录的时候才会被load,Jenkins在运行命令时,使用的是Non-login的方式,而这种方式在运行命令时,/etc/profile是不会被load进来的,所以jenkins只能在当前路径下寻找可执行文件.
解决办法:
在Jenkins的设置中可以设置全局变量, jenkins主页面->Manage Jenkins->Configure System->Global Properties 中, 将Environment variables复选框选中,会出来List of variables, 填入以下内容:
- name: JAVA_HOME value:XXX
- name: M2_HOME value:/usr/cyz/apache-maven-3.6.1
- name:
PATH+EXTRA
value: $M2_HOME/bin
注意最后标红的 PATH+EXTRA
, 这表示PATH=EXTRA:$PATH, 即扩展当前的PATH变量.
设置之后build成功.
Reference
这篇关于Jenkins自动化部署gitee项目到阿里云ECS服务器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法
- 2024-08-21【Linux】gnome桌面环境切换KDE Plasma
- 2024-08-19如何安装 VMware Tools (macOS, Linux, Windows)
- 2024-08-15Linux部署Scrapy教程:入门级指南