Jenkins、GitLab部署项目

news2024/9/21 18:45:28

1、安装JDK

1.1、下载openJdk11

yum -y install fontconfig java-11-openjdk

1.2、查看安装的版本号

java -version

1.3、配置环境变量

vim /etc/profile

在最底部添加即可

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64
export PATH=$JAVA_HOME/bin:$PATH

1.4、生效配置

source /etc/profile

2、安装Maven

2.1、下载maven安装包

进入官网:https://maven.apache.org/download.cgi
选择liunx版本的:apache-maven-3.9.7-bin.tar.gz

wget https://dlcdn.apache.org/maven/maven-3/3.9.7/binaries/apache-maven-3.9.7-bin.tar.gz

2.2、解压

tar -zxvf apache-maven-3.9.7-bin.tar.gz  -C /usr/local/

2.3、配置环境变量

vim /etc/profile

在最底部添加即可

export MAVEN_HOME=/usr/local/apache-maven-3.9.6
export PATH=$MAVEN_HOME/bin:$PATH

1.4、生效配置

source /etc/profile

3、安装Git

3.1、下载git

yum -y install git

3.2、查看安装的版本号

git --version

4、安装Jenkins

4.1、下载Jenkins

#先下载ca-certificates,防止报证书过期问题,再下载包
yum install -y ca-certificates
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.375.4-1.1.noarch.rpm

4.2、安装

rpm -ivh jenkins-2.375.4-1.1.noarch.rpm

4.3、进入jenkins的安装执行目录

cd /usr/bin

4.4、启动jenkins,并指定端口号

 ./jenkins --httpPort=19091

4.5、查看默认密码

cat /var/lib/jenkins/secrets/initialAdminPassword

4.6、修改配置文件的权限为root

vim /usr/lib/systemd/system/jenkins.service

在这里插入图片描述
设置端口号为19091
在这里插入图片描述

4.7、重启jenkins

cd /usr/bin
 ./jenkins --httpPort=19091

4.8、关闭防火墙,或者开放19091端口

#1. 关闭防火墙
systemctl stop firewalld 

#2. 防火墙开放8080端口
firewall-cmd --zone=public --add-port=19091/tcp --permanent
systemctl restart firewalld   #重启

4.9、浏览器访问

http://192.168.184.132:19091

4.10、输入上一步记录的默认密码

在这里插入图片描述
在这里插入图片描述
选(无),后面根据自己的需要装,怕有一些插件安装太慢下载失败浪费时间。当然也可以在这里下载,只勾选自己需要的,不熟悉的先不勾
在这里插入图片描述

4.11、创建管理员账户

admin即可
在这里插入图片描述

4.12、设置中文显示

先下载插件:Locale、Localization: Chinese (Simplified)
在这里插入图片描述

在这里插入图片描述
重启完,刷新浏览器重新进入界面
在这里插入图片描述

P.S. 如果Jenkins重启,那么汉化会继续汉化不完全,需要设置语言为英文显示,然后重启Jenkins,再继续设置为中文显示,这是一个系统Bug

4.13、插件下载

先下载一些基本的插件,其他的根据自己的需求下载
Deploy to container(支持自动化将代码部署到tomcat容器)
Maven Integration(jenkins 利用maven编译,打包,所需插件)
Node.js(打包前端vue项目所需插件)
Git (git插件,从托管平台拉取代码)
GiteeorGithuborGitlab(托管平台插件)
Publish Over SSH(ssh传输到另一台服务器)

4.14、全局工具配置

P.S. 记住先安装对应插件,不然找不到对应设置板块

4.15、Maven配置

路径为第二步自己安装的本地路径,以自己实际的路径为准
在这里插入图片描述

5、安装GitLab

参考链接
清华开源软件rpm下载:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

5.1、安装依赖

yum install -y curl policycoreutils openssh-server openssh-clients
#启动ssh服务&设置为开机启动
systemctl enable sshd
systemctl start sshd
安装Postfix
Postfix是一个邮件服务器,GitLab发送邮件需要用到
#安装postfix
yum install -y postfix
 
#启动postfix并设置为开机启动
systemctl enable postfix
systemctl start postfix
开放ssh以及http服务(80端口)
#开放ssh、http服务
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
 
 说明允许ssh服务通过成功
#重载防火墙规则
firewall-cmd --reload

5.2、下载gitlab

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.6.4-ce.0.el7.x86_64.rpm

5.3、安装gitlab

rpm -ivh gitlab-ce-16.6.4-ce.0.el7.x86_64.rpm

5.4、安装gitlab,安装完gitlab需要修改配置文件,并加载

vim /etc/gitlab/gitlab.rb

在这里插入图片描述
修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效即可启动Gitlab。注意,启动过程较长,需要耐心等待。

5.5、gitlab安装目录

gitlab组件日志路径:/var/log/gitlab

gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件

应用代码和组件依赖程序:/opt/gitlab

各个组件存储路径: /var/opt/gitlab/

仓库默认存储路径 /var/opt/gitlab/git-data/repositories

版本文件备份路径:/var/opt/gitlab/backups/

nginx安装路径:/var/opt/gitlab/nginx/

redis安装路径:/var/opt/gitlab/redis

5.6、GitLab常用命令汇总

#查看服务状态
gitlab-ctl status
使用控制台实时查看日志
#查看所有的logs; 按 Ctrl-C 退出
gitlab-ctl tail
#拉取/var/log/gitlab下子目录的日志
gitlab-ctl tail gitlab-rails
#拉取某个指定的日志文件
gitlab-ctl tail nginx/gitlab_error.log
#启动关闭gitlab
gitlab-ctl start
gitlab-ctl stop #停止
gitlab-ctl status #查看状态
gitlab-ctl restart #重启
gitlab-ctl reconfigure #更新配置文件
gitlab-ctl help #帮助
gitlab-rake gitlab:check SANITIZE=true --trace 检查gitlab
#gitlab 默认的日志文件存放在/var/log/gitlab 目录下
gitlab-ctl tail #查看所有日志
#禁止 Gitlab 开机自启动
systemctl disable gitlab-runsvdir.service
#启用 Gitlab 开机自启动
systemctl enable gitlab-runsvdir.service

6、Gitlab创建项目

6.1、创建项目demo333

在这里插入图片描述

6.2、填写项目名称demo333

在这里插入图片描述
Command line instructions

Git global setup
配置这个提交,显示的就是下面配置的姓名和邮箱

git config --global user.name "Administrator"
git config --global user.email "admin@example.com"

Create a new repository

git clone git@192.168.184.132:robin/demo333.git
cd demo333
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Existing folder

cd existing_folder
git init
git remote add origin git@192.168.184.132:robin/demo333.git
git add .
git commit -m "Initial commit"
git push -u origin master

Existing Git repository

cd existing_repo
git remote add origin git@192.168.184.132:robin/demo333.git
git push -u origin --all
git push -u origin --tags

6.3、在本地创建项目

6.4、添加本地项目和远程仓库的关联

git init 
git add *
git commit -m "first commit"
git remote add origin git@192.168.184.132:robin/demo333.git
git push origin master

7、在jenkins创建任务

7.1、创建一个FreeStyle project

在这里插入图片描述

7.2、描述

大概填写即可
在这里插入图片描述

7.3、源码管理

配置gitlab仓库的地址
在这里插入图片描述

7.4、配置构建触发器

配置触发器,比如推送代码到远程仓库,即可自动开始重新构建部署项目
因为使用的是gitlab,所以下方选择gitlab的;如果是gitee、github选择对应的即可
在这里插入图片描述
把上面图片的webhook url和secret填写到gitlab的
在这里插入图片描述
最后可以点击Test测试,是否连通

7.5、Build Steps

#!/bin/bash

# 配置部署之后jar包的名称
PROJECT_NAME="demo"

# 项目存放的路径
JENKINS_HOME="/robin/project"

#分支名称
BRANCH_NAME="master"

# jar包存放的路径
DEPLOY_DIR="/robin/deploy"

# 代码地址
GITLAB_REPO="http://192.168.184.128/robin/demo222.git"

mkdir -p $JENKINS_HOME
mkdir -p $DEPLOY_DIR

# 清空部署目录
rm -rf $DEPLOY_DIR/*

# 进入项目目录
cd $JENKINS_HOME

# 从GitLab拉取代码
git clone --branch $BRANCH_NAME $GITLAB_REPO .

# 使用Maven打包项目
mvn clean package

# 切换到项目根目录
cd $JENKINS_HOME

# 复制构建后的jar文件到部署目录
cp target/*.jar $DEPLOY_DIR/$PROJECT_NAME.jar

# 杀掉之前的进程
pid=`ps -ef | grep $PROJECT_NAME.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]; then
    kill -9 $pid
fi

# 启动Spring Boot应用
BUILD_ID=dontKillMe
nohup java -jar $DEPLOY_DIR/$PROJECT_NAME.jar > $DEPLOY_DIR/nohup.out 2>&1 &

echo "🎉部署完成......"

最后保存,即可进行Build

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1696718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

aosp14的分屏接口ISplitScreen接口获取方式更新-学员疑问答疑

背景: 有学员朋友在学习马哥的分屏pip自由窗口专题时候,做相关分屏做小桌面项目时候,因为原来课程版本是基于android 13进行的讲解的,但是现在公司已经开始逐渐进行相关的android 14的适配了,但是android 14这块相比a…

lspci 显示当前设备的PCI总线信息

lspci 显示当前设备的PCI总线信息 lspci 显示当前设备的PCI总线信息显示当前主机的所有PCI总线信息:以数字方式显示PCI厂商和设备代码同时显示数字方式还有设备代码信息以树状结构显示PCI设备的层次关系:更多信息 lspci 显示当前设备的PCI总线信息 lspc…

探索 Mistral 新发布的具有原生函数调用功能的 7B 模型【附notebook文件】

引言 Mistral 发布了新版的 7B 模型,这次更新引入了原生函数调用功能。对于开发者和 AI 爱好者来说,这一更新极具吸引力,因为它增强了模型的功能和实用性。在这篇博客中,我们将深入探讨这些新功能,展示如何使用该模型…

python表达式解析的陷阱与技巧

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:表达式的复杂性 二、案例分析:表达式的解读 三、陷阱揭示…

架构与思维:4大主流分布式算法介绍(图文并茂、算法拆解)

介绍 本文聚焦高并发场景下分布式一致性算法的分析和讨论 分布式场景下困扰我们的3个核心问题(CAP):一致性、可用性、分区容错性。 1、一致性(Consistency): 无论服务如何拆分,所有实例节点同一…

【安全产品】基于HFish的MySQL蜜罐溯源实验记录

MySQL蜜罐对攻击者机器任意文件读取 用HFish在3306端口部署MySQL蜜罐 配置读取文件路径 攻击者的mysql客户端版本为5.7(要求低于8.0) 之后用命令行直连 mysql -h 124.222.136.33 -P 3306 -u root -p 可以看到成功连上蜜罐的3306服务,但进行查询后会直接lost con…

解决CLion调试时无法显示变量值的问题

1 问题描述 使用CLion的时候,调试时无法显示变量的值,例如: 图来自StackOverflow。 2 解决办法 可以尝试切换调试器解决,在Linux下,CLion支持GDB和LLDB,如果GDB不行,可以切换到LLDB。 切换方…

定积分求解过程是否变限问题 以及当换元时注意事项

目录 定积分求解过程是否变限问题 文字理解: 实例理解: 易错点和易混点: 1:定积分中的换元指什么? 2: 不定积分中第一类换元法和第二类换元法的本质和区别 3: df(x) ----> df(x)这…

001 仿muduo库实现高性能服务器组件_项目简介

​🌈个人主页:Fan_558 🔥 系列专栏:仿muduo 🌹关注我💪🏻带你学更多知识 文章目录 一、项目简介二、所需知识储备三、什么是muduo四、Reactor模式单Reactor单线程:单I/O多路复⽤业务…

车载电子电器架构 —— 应用软件开发(下)

车载电子电器架构 —— 应用软件开发(下) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证…

美军配备人工智能武器的机器狗引发伦理争议

近日,美国海军陆战队特种作战司令部(MARSOC)的一项测试引发了全球关注:他们正在评估一种由“幽灵机器人”公司研发的最新型机器狗,并考虑为其配备“玛瑙工业”公司提供的武器系统。这一消息犹如在平静的湖面投下一颗石…

Star-CCM+中滞环的实现—场平均监视

前言 前文有介绍过通过更新事件来实现滞环,但是更新事件的方法比较繁琐,应用起来比较困难,本文将介绍一种简单的方法来实现滞环功能。即通过场平均监视来实现,具体方法如下: 一 创建场平均监视 首先在检测量下创建“场平均监视”,具体操作步骤如下图所示: 二 创建质量…

看这两位东北圣女美吗?如何描写美女的大长腿?

看这两位东北圣女美吗?如何描写美女的大长腿? 最近署名为懂球娘娘的一篇描写东北圣女的文章火了,文中描述了海棠朵朵与辛芷蕾这两位娇媚动人的角色。其美艳动人的形象和魅力四溢的描写让人为之倾倒。 这种通过文字展现人物魅力的能力让人佩服…

中间件-------RabbitMQ

同步和异步 异步调用 MQ MQ优势:①服务解耦 ②异步调用 ③流量削峰 结构 消息模型 RabbitMQ入门案例,实现消息发送和消息接收 生产者: public class PublisherTest {Testpublic void testSendMessage() throws IOException, TimeoutExce…

【Visual Studio】没法进断点

文章目录 先看看文心一言给的回答 开发过程中,没法进断点的情况还是很少的(指的是一直进不去的情况,热重载导致的都可以通过重启ide解决),但还是有极少数情况下会出现。 先看看文心一言给的回答 如果Visual Studio无…

2024年NGFW防火墙安全基准-防火墙安全功效竞争性评估实验室总结报告

Check Point 委托 Miercom 对 Check Point 下一代防火墙 (NGFW) 开展竞争性安全有效性测试, 选择的竞品分别来自 Cisco、Fortinet 和 Palo Alto Networks。对 Zscaler 的测试涉及他们的 SWG(安全网关)。测试内容包括验证防病毒、反恶意软件、…

文本处理工具grep及sed

文章目录 一、grep文本处理工具二、sed文本处理工具基本用法sed脚本格式搜索替代 一、grep文本处理工具 选项含义-color对匹配到的文本着色显示-m 次数匹配到规定的次数后停止-v显示不被命令匹配到的行,即取反-i忽略字符大小写-n显示匹配的行号-c统计匹配的行数-o仅显示匹配到…

乡村振兴的乡村文化传承与活化:活化乡村传统文化,传承乡村文化基因,打造具有文化魅力的美丽乡村

目录 一、引言 二、乡村文化的独特价值与现状 三、活化乡村传统文化的策略 1、挖掘乡村文化资源 2、创新文化表达方式 3、加强文化产业发展 四、传承乡村文化基因的途径 1、加强文化教育 2、培育文化人才 3、弘扬文化精神 五、打造具有文化魅力的美丽乡村 1、规划乡…

输入输出(1)——C++的输入输出概述

目录 一、C的输入输出 (一) C的输入输出 (二)C语言的scanf和printf 二、C的输入输出流 (一) iostream类库中有关的类 (二) iostream.h头文件的流对象和重载运算符 一、C的输入输出 (一) C的输入输出 之前用到的输入输出,都是以终端…