Jenkins搭建到自动化部署使用超详细教程

1、安装前所需准备

首先安装Jenkins之前,由于jenkins是采用Java编写的,所以安装jenkins之前环境上需先安装Java环境,linux中必须安装好了JDK和Maven,如果还没有安装过,请按照下面安装教程安装:

Linux环境安装JDK:点我查看linux安装jdk教程
Linux环境安装Maven:点我查看linux安装j程maven

2、安装Jenkins以及升级版本方法

2.1、下载安装包(RPM方式这是阿里的镜像)

点我下载jenkin

界面往下拉,拉倒最下面是最新的;

2.2、安装及问题解决

选择你想放的目录创建一个文件夹:

mkdir jenkins

将下载好的jenkins文件上传到刚才创建的这个文件夹中;
进入jenkins目录解压,解压命令:

rpm -ivh jenkins-2.289.2-1.1.noarch.rpm

解压成功之后,查看jenkins安装的目录 :

whereis jenkins

jenkins的安装路径: /usr/lib/jenkins 里面就是一个war包

启动Jenkins命令:

service jenkins start

注意问题:如果启动报:没有则直接跳过

Starting jenkins (via systemctl):  Job for jenkins.service failed because the control process exited with error code.
See "systemctl status jenkins.service" and "journalctl -xe" for details.

则需要在jenkins中配置上jdk的目录输入命令:vim /etc/init.d/jenkins
往下拉找到:

在这里插入图片描述
查看java路径:

which java

重启Jenkins

service jenkins restart

在这里插入图片描述
出现ok即可;

在这里插入图片描述
停止jenkins命令

service jenkins stop

修改jenkins端口号及用户:jenkins配置文件:
vi /etc/sysconfig/jenkins
分别找到:JENKINS_USER 和 JENKINS_PORT
JENKINS_USER 将 jenkins 修改成 root (后期操作一些权限需要root)
JENKINS_PORT 这一项是端口号 随你自己需求改吧! 改完记得在防火墙中把端口放行。云服务器的话需要在安全组把你自己的端口加入到其中放行

一些防火墙的命令:

#检查防火墙状态:
service firewalld status 

#开启防火墙: 
service firewalld start

#重启防火墙
service firewalld restart

#刷新防火墙配置
firewall-cmd --reload

#查看开放的端口列表
firewall-cmd --list-ports

#开启自己端口
firewall-cmd --permanent --add-port=8080/tcp

#移除端口
firewall-cmd --permanent --remove-port=8080/tcp

** 记得操作过端口后执行刷新防火墙配置命令

#查看服务器运行的端口号
netstat -ntlp  

2.3、运行

1、打开浏览器输入http://ip地址:端口号 进行访问
在这里插入图片描述
2、获取并输入admin账户密码

cat /var/lib/jenkins/secrets/initialAdminPassword

会返回密码将密码输入上进行登录!

3、跳过插件安装

因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装
在这里插入图片描述
跳过的方法–》点击选择插件来安装-》点击无-》点击安装
在这里插入图片描述
4、添加一个管理员账户,并进入Jenkins后台

创建完用户点击保存并完成
在这里插入图片描述
之后出现实例配置:检查url 之后点击保存并完成
在这里插入图片描述
进入jenkins
在这里插入图片描述

2.4、插件的管理

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件。

1、修改Jenkins插件下载地址

Jenkins国外官方插件地址下载速度非常慢,所以可以修改为国内插件地址: Jenkins->Manage Jenkins->Manage Plugins,点击Available

这样做是为了把Jenkins官方的插件列表下载到本地,接着修改地址文件,替换为国内插件地址;

#进入到这个目录
cd /var/lib/jenkins/updates

#执行
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json

#执行
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

Sumbit后,在浏览器输入: http://ip:端口号/restart ,重启Jenkins。

2、下载中文汉化插件

Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"
在这里插入图片描述
完成后,重启Jenkins,就看到Jenkins汉化了!(PS:但可能部分菜单汉化会失败)

3、下载所需的插件git 、 gitlab 、maven

这个插件自己需要什么就搜索下载什么即可。下载完重启即可!

有的时候通过上述方法插件还安装失败的,则可以在插件管理-高级-上传插件

插件下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

在这里插入图片描述

2.5、Jenkins凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。

安装Credentials Binding插件

要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件

在这里插入图片描述
在这里插入图片描述
可以添加的凭证有5种:

1、Username with password:用户名和密码

2、SSH Username with private key: 使用SSH用户和密钥

3、Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。

4、Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token

5、Certificate:通过上传证书文件的方式

常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH密钥)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在全局凭证这里可以管理:

添加gitlab用户:需要服务器装有git

CentOS7上安装Git工具:

yum install git -y 安装

git --version 安装后查看版本

点击添加凭证:
在这里插入图片描述
测试凭证是否可用

新建任务-》构建一个maven项目-》源码管理-》选择git
在这里插入图片描述
我是用的是http方法拉取代码 使用ssh还需别的配置可以自行百度!输入git地址,点击左边框选择你刚才添加的用户!没有任何报错则说明可以使用。

2.6、jenkins全局工具配置

系统管理-》全局工具配置
在这里插入图片描述
5.1 JDK安装

这里因为你本机电脑已经装好了jdk

点击新增-》去掉自动安装的对钩-》输入名称和路径

在这里插入图片描述
5.2、maven安装 还是这个界面往下拉
maven-》新增maven-》去掉自动安装的对钩-》输入名字和之前安装的路径
在这里插入图片描述
再讲界面拖到最上面,配置maven配置的settings文件,一般是默认的,下拉选择文件系统中的settings文件,路径写到你配置的maven路径下conf下的setting.xml文件-》最后记得保存
在这里插入图片描述

3、构建maven项目

1、点击新建任务-》
在这里插入图片描述2、源码管理

输入你项目源码的git地址和添加的用户凭证
在这里插入图片描述
3、构建环境

pom文件的地址根据你项目的地址填写要正确,不正确的话会有报错,

Goals and options 这是打包的命令

因为我这个项目是jar包是别的项目依赖需要将他打到maven仓库中所以使用的是clean install
在这里插入图片描述
扩展maven的打包命令:


# maven打包跳过测试
clean package -Dmaven.test.skip=true

#一般使用的命令

clean package -Ptest -Dmaven.repo.local=/root/.m2/repository -Dmaven.test.skip=true

解读:看你自己的需要组合,更多可以百度查查!
-P  因为我们的环境配置了多个 test prod 这个是指定使用test环境

-Dmaven.repo.local 这个是制定本地的maven仓库地址,maven在打包的时候,依赖下载不下来会去本地仓库中寻找

-Dmaven.test.skip  这个命令就是跳过打包完成后的测试


*这里注意: 新安装的maven可能找不到 maven本地仓库的地址:

这里还有一个操作就是将maven仓库下载地址镜像改成国内的,这个操作自行百度!


安装完maven后 所谓的{user_home}/.m2/repository找不见  
先运行命令行 mvn help:effective-settings

等下载完jar包后  这里的 <localRepository>就是本地仓库了   一般为/root/.m2/repository
 

完成后点击保存!-》点击立即构建!

在这里插入图片描述
可以在左下角 Build History 查看构建的日志
在这里插入图片描述
注意问题:
在这里插入图片描述
这里就是他有一个依赖没有找到,我们这个项目依赖是本地的。需要将jar包上传到linux服务器,然后通过maven的打包命令将其打入到服务器的maven本地仓库中;

操作:将你的jar包上传到服务器某个位置

#maven将jar包打入本地仓库命令
mvn install:install-file -Dfile=/home/temp/xxxx-1.0-SNAPSHOT.jar -DgroupId=com.xxxxxx.xxxx -DartifactId=xxxx -Dversion=1.0-SNAPSHOT -Dpackaging=jar

解读:
-Dfile 就是你jar包上传到服务器的位置
-DgroupId    是项目组织唯一的标识符
-DartifactId 就是项目的唯一的标识符
-Dversion   项目版本号
-Dpackaging 打包类型

出现这个说明就成功了;
在这里插入图片描述
我们项目是好多jar包依赖 最后整合到war中;每个jar的依赖按照上面的操作打入maven仓库即可;

下面说war包的:

前面的操作一样:新建任务-》源码管理-》构建环境-》
在这里插入图片描述
然后在用脚本来操作war包放入tomcat (tomcat安装教程自行百度)
在这里插入图片描述
在这里插入图片描述
输入脚本


#!/bin/sh
#kill tomcat pid
#这句尤为重要
export BUILD_ID=tomcat_mobile_build_id

# 1.关闭tomcat
pidlist=`ps -ef|grep tomcat_mobile|grep -v "grep"|awk '{print $2}'`
function stop(){
if [ "$pidlist" == "" ]
  then
    echo "----tomcat 已经关闭----"
    
 else
    echo "tomcat进程号 :$pidlist"
    kill -9 $pidlist
    echo "KILL $pidlist:"
fi
}

stop
pidlist2=`ps -ef|grep tomcat_mobile|grep -v "grep"|awk '{print $2}'`
if [ "$pidlist2" == "" ]
    then 
       echo "----关闭tomcat成功----"
else
    echo "----关闭tomcat失败----"
fi



# 2.移除原来tomcat中webapps中的项目文件夹
rm -rf /usr/local/tomcat_mobile/webapps/ROOT*
# 3.复制jenkins生成的war包到tomcat中webapps中
cp -r /var/lib/jenkins/workspace/baiyangjinrong-mobile/mobile/target/mobile.war  /usr/local/tomcat_mobile/webapps
sleep 3s
# 4.修改war包的名称
mv /usr/local/tomcat_mobile/webapps/mobile.war  /usr/local/tomcat_mobile/webapps/ROOT.war
# 5.启动tomcat
cd /usr/local/tomcat_mobile/bin
./startup.sh

这里可以参考:https://www.cnblogs.com/xxj0316/p/9467182.html

保存-》立即构建。成功后看你保存war包的地方有没有。项目有没有启动即可。

如果执行脚本遇到:

/tmp/jenkins550075740095459023.sh: line 50: ./startup.sh: Permission denied 标识没有权限执行.sh文件
解决:

#进入到tomcat的bin目录下执行
chmod u+x *.sh

这里的u 这里指文件所有者,+x 添加可执行权限,*.sh表示所有的sh文件。  
就表示对当前目录下的*.sh文件的所有者增加可执行权限

结束************************************************************************

如果需要更详细的教程可参考:

https://blog.csdn.net/hancoder/article/details/118233786

下面这是在b站找到教学视频:

https://www.bilibili.com/video/BV1kJ411p7mV?from=search&seid=6973410680776154468

拓展:
放其他机器
3.11.1 先到系统管理-》系统配置-》拉倒最下面 找到Publish over SSH 下面新增
填写:SSH server
name: 名称自定义
hostname: 机器ip
username: 机器的账号
Remote Directory:要将文件推送到机器的具体路径
再点高级:勾选 Use password authentication, or use a different key
填写:Passphrase / Password 密码
拉倒最下面:点击Test Configuration 出现success就算成功了;
3.11.2 回到项目-》配置 Post Steps
下拉选项,选择Send files or execute commands over SSH
SSH Server :
name:选择你要推送的服务器
点高级 Verbose output in console 勾选这个 这是控制台输出 推送的日志
Transger Set:
Source files: 需要上传的文件(注意:相对于工作区的路径。看后面的配置可以填写多个,默认用,分隔)例如项目叫/help-pay-server 但是jar包在help-pay-business/target/help-pay-business.jar下;所以这里需要填写 help-pay-business/target/help-pay-business.jar
Remove prefix:需要移除的前缀,一般都是/项目名/“下级目录” 例如此处:help-pay-business/target/help-pay-business.jar 如果只复制文件,这里就填写help-pay-business/target/
Exec command:就是把文件推送后要执行的命令

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值