部署jenkins并完成github上springboot项目的自动化部署_柠檬冰块的博客-程序员信息网

技术标签: 笔记  jenkins  

一、 安装

java JDK

环境

更新软件包列表

sudo apt-get update

安装openjdk-8-jdk

sudo apt-get install openjdk-8-jdk

查看java版本,看看是否安装成功

java -version

默认安装路径为:/usr/lib/jvm/java-1.8.0-openjdk-amd64

.

安装

jenkins

将存储库密钥添加到系统

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

将Debian包存储库地址附加到服务器的sources.list

sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

sudo apt-get update

安装Jenkins

sudo apt-get install jenkins

.

安装

maven

  1. 进入网址找到自己想要下载的版本:

http://www-eu.apache.org/dist/maven/maven-3/

2)下载3.5.4版本

wget https://downloads.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

  1. 解压

tar -zxvf apache-maven-3.5.4-bin.tar.gz

  1. 移动Maven到/usr/local中

mv apache-maven-3.5.4 /usr/local/

  1. 设置环境变量

vim /etc/profile

末未追加

export M2_HOME=/usr/local/apache-maven-3.5.4

export M2=$M2_HOME/bin

export MAVEN_OPTS="-Xms256m -Xmx512m"

export PATH= M 2 : M2: M2:PATH

刷新配置

source /etc/profile

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kKTRG02R-1650785443473)(RackMultipart20220424-1-to7zyj_html_48acb7eac7333d7c.png)]

6)验证maven

mvn --version

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xN5vJ3lJ-1650785443476)(RackMultipart20220424-1-to7zyj_html_6f61347b643858db.png)]

四、安装

git

1、使用 Apt 安装 Git

Git 软件包被包含在 Ubuntu 默认的软件源仓库中,并且可以使用 apt 包管理工具安装。这是在 Ubuntu 上安装 Git 最便利,最简单的方式。

如果你想要从 Git 源码上编译安装最新的 Git 版本,请关注『从源码安装 Git』一节。

安装非常直接,仅仅以 sudo 权限用户身份运行下面的命令:

sudo apt update

sudo apt install git

运行下面的命令,打印 Git 版本,验证安装过程:

git --version

就在写作这篇文章的时候,在 Ubuntu 20.04 下 Git 当前可用版本是 2.25.1:

git version 2.25.1

就这些。你已经成功地在你的 Ubuntu 上安装 Git,你可以开始使用它。

2、配置 Git

在你安装 Git 之后第一件事情,就是配置你的 Git 用户名和邮件地址。 Git 在每一次 commit 代码时关联你的身份。

想要设置全局的 commit 名字和邮件地址,运行下面的命令:

git config --global user.name "superFans"

git config --global user.email "[email protected]"

你可以验证配置,输入:

git config --list

输出看起来应该像这样:

user.name=superFans

[email protected]

配置文件被存储在~/.gitconfig文件:

[user]

name = superFans

email = [email protected]

如果对 Git 配置做进一步修改,你可以使用git config命令(推荐方式)或者手动编辑~/.gitconfig文件。

将Git添加到环境变量:

查看git安装位置:

which git

一般git默认安装路径有两个 :/usr/share/git-core或者

/usr/local/git

编辑环境配置文件

vim /etc/profile

末尾

export PATH=$PATH:/usr/share/git-core

立马生效

source /etc/profile

五、启动

jenkins

1.加载很慢的更改:

命令行是:

vim /var/lib/jenkins/hudson.model.UpdateCenter.xml

然后进入编辑模式,就可以进行修改并保存。

替换url:

http://mirror.xmission.com/jenkins/updates/update-center.json

最后启动jenkins服务:

service jenkins start

service jenkins restart

2,访问

jenkins的端口号默认为8080,请保证linux上8080端口没有被占用。jenkins服务启动后,在浏览器输入服务器ip:8080访问jenkins页面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XBglyEEN-1650785443477)(RackMultipart20220424-1-to7zyj_html_f3c30cd21dd17224.png)]

3.打开页面后首先要去剪头指的位置获取密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

然后复制出密码粘贴到下方的输入框中。

密码输入完成后,会跳转到提示插件下载的页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wWLh0gyb-1650785443478)(RackMultipart20220424-1-to7zyj_html_cc19072ea279dffd.png)]

4,这里我选择左侧的推荐下载,然后就等待插件下载安装。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-auTU2OLH-1650785443478)(RackMultipart20220424-1-to7zyj_html_b62f2ce5296884e1.png)]

5.然后创建用户和密码并登陆:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9k99WiYi-1650785443479)(RackMultipart20220424-1-to7zyj_html_f4fd822f2faca23a.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-01QwJFxk-1650785443480)(RackMultipart20220424-1-to7zyj_html_e8a2c906ca00d62a.png)]

6.之后就主要是在jenkins页面中配置。

jenkins插件下载

首先先去配置管理里面的插件管理下下载插件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-83jOq7fk-1650785443480)(RackMultipart20220424-1-to7zyj_html_edd003571c9753af.png)]

然后下载maven插件

7,还有publish over ssh插件:

8.如果需要按照git上的分支或者tag来构建项目,则需要下载Build With Parameters和Git Paramet两个插件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5RRfVxQK-1650785443481)(RackMultipart20220424-1-to7zyj_html_b6d6145a4594973.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sDo0dsbq-1650785443482)(RackMultipart20220424-1-to7zyj_html_cc6288a911b28f1b.png)]

六、

.jenkins

配置

jdk

maven

git

1.进去系统管理的全局工具设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XSfjzv3o-1650785443483)(RackMultipart20220424-1-to7zyj_html_9d39bdacc6fef3a5.png)]

2.maven全局setting配置(/usr/local/apache-maven-3.5.4/conf/settings.xml)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d03Ygdd8-1650785443483)(RackMultipart20220424-1-to7zyj_html_288ea885e4eac7ca.png)]

3,jdk配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hx9yekSq-1650785443484)(RackMultipart20220424-1-to7zyj_html_7125a2d74c0cc739.png)]

4,Git配置

查看git安装位置:

which git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ET43d7XS-1650785443485)(RackMultipart20220424-1-to7zyj_html_cba187985f4854dd.png)]

5,maven配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FE8r2xBv-1650785443486)(RackMultipart20220424-1-to7zyj_html_6564171f296b1192.png)]

6.创建一个自动化部署任务

以上是jenkins配置的内容,下面说明下如何从github上拉取项目并自动构建;

创建任务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bl8Gef2i-1650785443487)(RackMultipart20220424-1-to7zyj_html_daf31e13e4d593ec.png)]

7,设置任务名称

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QVbCpLlj-1650785443488)(RackMultipart20220424-1-to7zyj_html_d5590ec9ffd25582.png)]

8.配置任务

配置一般设置(这里我选择配置构建的参数)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rFac6XYT-1650785443489)(RackMultipart20220424-1-to7zyj_html_1082179729b74710.png)]

9.配置源码管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5iwajAYa-1650785443490)(RackMultipart20220424-1-to7zyj_html_8ff19de35ee2513b.png)]

10.配置构建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXAAQJmH-1650785443491)(RackMultipart20220424-1-to7zyj_html_8acb2d5322475c8f.png)]

11.构建后写上自动运行的shell脚本:

根POM字段更改为

"project name/pom.xml"

Jenkins中的路径是工作空间相关的 .

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJA4nN75-1650785443492)(RackMultipart20220424-1-to7zyj_html_8acb2d5322475c8f.png)]

shell脚本代码为:

#!/bin/bash

port=2001

echo '根据端口号查询对应的pid'

pid= ( n e t s t a t − n l p ∣ g r e p : (netstat -nlp | grep : (netstatnlpgrep:port | awk '{print $7}' | awk -F"/" '{ print $1 }');

echo '杀掉对应的进程,如果pid不存在,则不执行'

if [-n "$pid"]; then

kill -9 $pid;

fi

echo '删除原来的jar包'

rm -rf /root/web/blogserver-0.0.1-SNAPSHOT.jar

echo '将构建的jar包复制到指定目录下'

cd blogserver/target/

cp blogserver/blogserver-0.0.1-SNAPSHOT.jar /root/web

echo '运行构建的jar包'

cd /root/web

nohup java -jar blogserver-0.0.1-SNAPSHOT.jar >>blogserver-demo.log 2>&1 &

因为我这里作为测试用的springboot项目的端口号为2001,构建后的jar包名称为:blogserver-0.0.1-SNAPSHOT.jar,所以上面的对应的这些地方可以根据需要替换为自己的端口号和jar包名称。

还有jar包复制到指定目录,用到的命令为:

cp blogserver-0.0.1-SNAPSHOT.jar /root/web

其中/root/web/是我这里指定的目录,各位也可以根据需要替换为自己的目录。

注意:在安装完jenkins后,linux中默认使用的jenkins这个用户,这时在构建完项目后我们需要执行一些shell命令时会出现没有权限的情况,导致构建失败,这里我们需要给jenkins用户相应的权限以执行相应的命令。Ubuntu环境下,以root用户权限启动Jenkins

1、修改配置文件:

vim /etc/default/jenkins

将下面两个参数修改为root

----------修改前--------

JENKINS_USER=$NAME

JENKINS_GROUP=$NAME

---------修改后---------

JENKINS_USER=root

JENKINS_GROUP=root

2、更改目录权限:

cd /var/lib/

chown -R root:root ./jenkins

systemctl restart jenkins.service

PS:本教程适用于Ubuntu环境下通过"apt-get install -y jenkins"命令在线安装的Jenkins,如果是通过tomcat或者java命令启动的jenkins.war,请自行百度。

到这里,初步的jenkins自动化构建部署任务已经配置完成了,接下来就直接点构建然后选择对应的tag或者分支就可以进行构建了。

注:如果遇到shell脚本执行后,发现自己的jar包还没有运行的情况,这种状况一般是由于jenkins任务执行完毕会杀掉自己的子进程。那么我们可以在系统管理的系统配置下新增一个环境变量:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g9NMB7PQ-1650785443493)(RackMultipart20220424-1-to7zyj_html_989b097d34278d0c.png)]

环境变量下新增一个键值对:

key:BUILD_ID

value:DontKillMe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vIxcPdsw-1650785443494)(RackMultipart20220424-1-to7zyj_html_2ea4ae78ce7dd2e4.png)]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wurenmoke/article/details/124384104

智能推荐

hive超时问题_YrzDemo的博客-程序员信息网_hive连接超时

租户反馈他们执行一个耗时比较久的sql后,再去关闭会话连接的时候,报错连接超时了反馈添加参数运行:sethive.server2.session.check.interval=0;

nginx配置多个静态html页面_姽式、的博客-程序员信息网_nginx配置多个静态html页面

// 第一个项目server { listen 80; server_name localhost; location / { root C:\Users\Administrator\Documents\HBuilderProjects\billing; // 根目录 index index.html; try_files $uri $uri/ /index.html; } location /api/ { proxy_set_h

华为交换机硬件信息查看命令_weixin_34111819的博客-程序员信息网

查看主控板、业务板信息display version[HUAWEI]dis verHuawei Versatile Routing Platform SoftwareVRP (R) software, Version 5.130 (S7700 V200R003C00SPC500)Copyright (C) 2000-2013 HUAWEI TECH CO., LTDQuidw...

winXP+IIS+PHP+MYSQL配置指南_南三方的博客-程序员信息网

系统介绍:winXP+II5.1服务器组件:PHP5.1.2,MYSQL5.0PHP下载地址www.php.netMYSQL下载地址www.mysl.net首先安装IIS:在控制面板->添加删除windows组件,把IIS信息服务组件打上勾就行可能的问题:XPsp2中自带的防火墙可能阻止其他计算机访问你的web页,这时在防火墙设置里添加80端口为例外就行了。其次安装PHP:在官方网站上下载

Oracle清理alert、trace、listener.log、aud审计文件_普通网友的博客-程序员信息网

Oracle清理数据库以各种日志文件1. (optional)可以创建备份目录,提前备份需要清理日志mkdir/log_bak_date2. 数据库各项日志文件路径sqlplus/[email protected]>showparameterdump_dest;NAMET...

opencv3_java 提取图像的RGB三原色分割图像Split Core.split_橘子派的博客-程序员信息网

提取图像的RGB三原色分割图像Split Core.splitpackage opencv_java_demo;import java.util.List;import org.opencv.core.*;import org.opencv.imgcodecs.*;public class Split { public static void main(String[

随便推点

python判断输入类型怎么做_python判断字符类型怎么做_圣光的事不能叫偷的博客-程序员信息网

设str为字符串str.isalnum() 所有字符都是数字或字母(推荐学习:Python视频教程)str.isalpha() 所有字符都是字母str.isdigit() 所有字符都是数字str.islower() 所有字符都是小写str.isupper() 所有字符都是大写str.istitle() 所有单词都是首字母大写str.isspace() 所有字符都是空白字符或\t或\n或\r例:""...

Shell编程2_运算符_swadian2008的博客-程序员信息网

Shell运算符一、算数运算符算术运算符顾名思义,其就是进行加减乘除数值运算,在 shell 中,bash 不支持原生的数学运算,需要利用第三方工具来如let,expr等来实现。1.expr和let利用let对数值进行运算,let C=$A+$B,let运算后需要将其赋值给一个变量。[[email protected] ~]# A=1[[email protected] ~]# B=2[[email protected] ~]# let C=${A}+${B}[[email protected] ~]# ech...

Qt中更改文本的行间距_糯诺诺米团的博客-程序员信息网_qt设置行间距

前提这段时间工作告一段落,想要优化下一些不完美的功能,比如文本行间距这个功能。例如:QLabel控件展示文本时,当文本内容过多时,自动换行后的文本行间距真的是太紧密了,在美观上会有一点点瑕疵。所以,为了优化这个功能,进而实现这种可以设置行间距的功能。开发环境:VS2017+Qt5.14.2文字的字体越大,行间距越小,在这里我设置了三种字体大小,对不同的字体分别设置行间距。接下来,具体的实现这种功能吧~功能实现小字体:22;中字体:36;大字体50因为需要展示较长文本.

Tensorflow学习过程问题整理(TensorFlow版本:1.13.1,Python版本:3.6)_鬼马行天的博客-程序员信息网

1.代码错误整理(1)Spyder中Python代码运行出错错误信息:Check failed: PyBfloat16_Type.tp_base != nullptr,原因:numpy版本问题解决方法:python -m pip install --upgrade numpy(2)使用keras下载fashion_mnist出错错误原因:无法连接外网,下载不了解决办法:下载数据集到C...

计算机末端网络,计算机线缆末端的圆球是什么?_桂格的博客-程序员信息网

计算机线缆末端的圆球是什么?在常见的家庭或办公室计算机系统中,通常可以在鼠标、键盘和监视器线缆上看到这些“圆球”。你还可以在使用外部变压器的设备(例如打印机或扫描仪)的电源线上看到这些圆球。这些“圆球”称为铁氧体磁珠,有时也称为铁氧体扼流圈。它们的目的是减少EMI(电磁干扰)和RFI(射频干扰)。你可以在下图中看到这些磁珠:铁氧体磁珠只是用铁氧体制造的空心珠子或圆柱体,而铁氧体是氧化铁(铁锈)与其...

Android中CursorAdapter的使用详解_双刃剑客的博客-程序员信息网

转:http://blog.csdn.net/dmk877/article/details/44983491一、CursorAdapter介绍CursorAdapter这个类是继承于BaseAdapter的它是一个虚类它为Cursor和ListView连接提供了桥梁二、CursorAdapter详解1.CursorAd

推荐文章

热门文章

相关标签