当前位置: 首页 > news >正文

Jenkins、GitLab部署项目

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" ]; thenkill -9 $pid
fi# 启动Spring Boot应用
BUILD_ID=dontKillMe
nohup java -jar $DEPLOY_DIR/$PROJECT_NAME.jar > $DEPLOY_DIR/nohup.out 2>&1 &echo "🎉部署完成......"

最后保存,即可进行Build

jenkins nohup 启动失败原因
参考链接:https://www.cnblogs.com/whm-blog/p/16779474.html

相关文章:

Jenkins、GitLab部署项目

1、安装JDK 1.1、下载openJdk11 yum -y install fontconfig java-11-openjdk1.2、查看安装的版本号 java -version1.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/…...

21.Redis之分布式锁

1.什么是分布式锁 在⼀个分布式的系统中, 也会涉及到多个节点访问同⼀个公共资源的情况. 此时就需要通过 锁 来做互斥控制, 避免出现类似于 "线程安全" 的问题. ⽽ java 的 synchronized 或者 C 的 std::mutex, 这样的锁都是只能在当前进程中⽣效, 在分布式的这种多…...

Mysql基础学习:mysql8 JSON字段查询操作

文章目录 一、查询JSON中某个属性值为XXX的数据量1、方式一2、方式二 二、查询的JSON中的value并去除双引号 一、查询JSON中某个属性值为XXX的数据量 1、方式一 select count(*)from table_namewhere JSON_CONTAINS(json-> $.filed1, "xxx")or JSON_CONTAINS(jso…...

搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四)

上一篇:搭建基于Django的博客系统增加广告轮播图(三) 下一篇:基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能(五) Sqlite3数据库迁移到MySQL 数据库 迁移原因 Django 的内置数据库 SQL…...

24年护网工具,今年想参加护网的同学要会用

24年护网工具集 吉祥学安全知识星球🔗http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&chksmc0e47813f793f105017fb8551c9b996dc7782987e19efb166ab665f44ca6d900210e6c4c0281&scene21…...

解决TrueNas Scale部署immich后人脸识别失败,后台模型下载异常,immich更换支持中文搜索的CLIP大模型

这个问题搞了我几天终于解决了,搜遍网上基本没有详细针对TrueNas Scale部署immich应用后,CLIP模型镜像下载超时导致人脸识别失败,以及更换支持中文识别的CLIP模型的博客。 分析 现象:TrueNas Scale安装immich官方镜像应用后&…...

面试高频问题----2

一、进程、线程、协程有什么区别? 1.进程:进程是操作系统中独立运行的程序实例,每个进程都有自己的内存空间和系统资源;进程之间相互独立,每个进程有自己的内存地址空间,一个进程无法直接访问另一个进程的…...

Nginx的配置文件-详细使用说明

Nginx的配置文件是Nginx服务器运行的核心,它决定了Nginx如何响应和处理各种请求。以下是对Nginx配置文件(通常名为nginx.conf)的详细解析,按照常见的结构和配置项进行分类: 1. 全局块 user:指定Nginx运行的用户和用户组。例如:user nginx;worker_processes:指定工作进…...

YOLOv5改进 | 卷积模块 | 提高网络的灵活性和表征能力的动态卷积【附代码+小白可上手】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 轻量级卷积神经网络由于其低计算预算限制了CNNs的深度(卷积层数)和宽度(通道数),…...

23、linux系统文件和日志分析

linux文件系统与日志分析 文件时存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区大大小是512字节。 inode:元信息(文件的属性 权限,创建者,创建日期等) block:块&#xff0c…...

安装VS2017后,离线安装Debugging Tools for Windows(QT5.9.2使用MSVC2017 64bit编译器)

1、背景 安装VS2017后,Windows Software Development Kit - Windows 10.0.17763.132的Debugging Tools for Windows默认不会安装,如下图。这时在QT5.9.2无法使用MSVC2017 64bit编译器。 2、在线安装 如果在线安装参考之前的文章: Qt5.9.2初…...

路由策略实验2

对R7,重发布直连路由 对R2,做双向 对R3同样 先不改优先级 查看,知道所有给R3的路由为151,全部为OSPF。 知道了是错误的,先把3,4之间的线路断掉 接着对R3,让优先级全部回到100(displa…...

Linux网络-守护进程版字典翻译服务器

文章目录 前言一、pid_t setsid(void);二、守护进程翻译字典服务器(守护线程版)效果图 前言 根据上章所讲的后台进程组和session会话,我们知道如果可以将一个进程放入一个独立的session,可以一定程度上守护该进程。 一、pid_t se…...

Python 推导式详解:高效简洁的数据处理技巧

推导式是 Python 提供的一种简洁而强大的语法,用于创建列表、集合和字典。它可以让代码更简洁、更易读,同时提高运行效率。 基本语法 列表推导式 基本语法: [expression for item in iterable if condition]示例: # 生成平方…...

车联网安全入门——ICSim模拟器使用

文章目录 车联网安全入门——ISCim模拟器使用介绍主要特点:使用场景: 安装使用捕获can流量candumpcansnifferwiresharkSavvyCAN主要特点:使用场景: 重放can报文cansendSavvyCAN 总结 车联网安全入门——ISCim模拟器使用 &#x1…...

leetcode - 20.有效的括号(LinkedHashMap)

leetcode题目有效的括号,分类是easy,但是博主前前后后提交了几十次才通过,现在记录一下使用Java语言的写法。 题目链接: 20.有效的括号 题目描述: 给定一个只包括 (,),{,},[&…...

多维数组的动态内存分配(malloc和new)

一.区别指针类型 动态分配二维数组的内存不要赋值给行指针,而要赋值给二级指针。 二.分配动态二维数组的方法 1.使用指针数组 然后对指针数组的每一个元素分别malloc一维数组 2.直接使用malloc // 分配了一个指针数组,row为二维数组行数 int **p (i…...

71、评测OrangePi AIpro开发板和USB CAMERAOAK视频解码+推理+编码+推流测试

基本思想:csdn赞助了OrangePi AIpro开发板,花点时间简单和oak深度相机绑定测试一下,反正之前玩过atlas 200 dk A2,应该差不多,引用了之前的usb相机,方便小伙伴测试使用 第一步:系统刷机,参考官方吧,懒得刷机了,参考官方手册即可链接:https://pan.baidu.com/s/1umXM3i…...

为什么需要开局调用函数?

初始化操作:在你的应用程序启动时,可能需要执行一些初始化操作,例如设置默认值、加载配置、建立数据库连接等。开局调用函数可以帮助你集中管理这些操作,确保它们在应用程序启动时顺利执行。 统一入口:通过一个统一的…...

QT-demo:0轴分布图表

版本:5.9 第一种: 使用 PyQt5 和 Matplotlib 库 安装所需的库: pip install PyQt5 matplotlib创建和显示图表: import sys import numpy as np import matplotlib.pyplot as plt from PyQt5.QtWidgets import QApplication, QMainWindow f…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...