Jenkins 构建CICD

news2024/11/25 4:53:08

jekins

GitLab

GitLab安装

https://gitlab.cn/install/?version=ce

CentOS 下安装

1. 安装和配置必须的依赖项

在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。

sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

(可选)下一步,安装 Postfix 以发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装极狐GitLab 后配置外部 SMTP 服务器。

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

在安装 Postfix 的过程中可能会出现一个配置界面,在该界面中选择“Internet Site”并按下回车。把“mail name”设置为您服务器的外部 DNS 域名并按下回车。如果还有其它配置界面出现,继续按下回车以接受默认配置。

2. 下载/安装极狐GitLab

配置极狐GitLab 软件源镜像。

curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash

在这里插入图片描述

接下来,安装极狐GitLab。确保您已正确设置您的 DNS,并更改 https://gitlab.example.com 为您要访问极狐GitLab 实例的 URL。安装包将在该 URL 上自动配置和启动极狐GitLab。

对于 https 站点,极狐GitLab 将使用 Let’s Encrypt 自动请求 SSL 证书,这需要有效的主机名和入站 HTTP 访问。您也可以使用自己的证书或仅使用 http://(不带s)。

如果您想为初始管理员用户(root)指定自定义密码,请查看文档。如果未指定密码,将自动生成随机密码。

执行如下命令开始安装:

# 配置自己的访问地址  http://192.168.153.105
# sudo EXTERNAL_URL="http://192.168.153.105" yum install -y gitlab-jh
sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-jh

在这里插入图片描述
安装完成:
安装完成

3. 访问极狐GitLab 实例并登录

除非您在安装过程中指定了自定义密码,否则将随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中(出于安全原因,24 小时后,此文件会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码)。使用此密码和用户名 root 登录。

head /etc/gitlab/initial_root_password

/etc/gitlab/initial_root_password

3.1 修改密码

修改密码

3.2 常用命令

gitlab常用命令

有关安装和配置的详细说明,请参阅我们的文档。

gitlab-ctl start

4. 后续配置

完成安装后,请参考建议的后续配置,包括身份验证选项和注册限制的配置。

Docker 下安装

https://docs.gitlab.cn/jh/install/docker.html

1. 安装Docker

1.更新yum源

yum update

2.安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加镜像

//国外镜像
yum-config-manager --add-repo https://download.docker,com/1inux/centos/docker-ce.repo 
//阿里镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/1inux/centos/docker-ce.repo

4.查看源中可使用版本

Tist docker-ce --showdupTicates sort -r

5.安装指定版本

yum insta11 docker

6.配置开机启动项

systemct] start docker
systemctI enable docker
docker version
2. 设置卷位置

在设置其他所有内容之前,请配置一个新的环境变量 $GITLAB_HOME,指向配置、日志和数据文件所在的目录。 确保该目录存在并且已授予适当的权限。

对于 Linux 用户,将路径设置为 /srv/gitlab

export GITLAB_HOME=/srv/gitlab

对于 macOS 用户,使用用户的 $HOME/gitlab 目录:

export GITLAB_HOME=$HOME/gitlab

GITLAB_HOME 环境变量应该附加到您的 shell 的配置文件中,以便它应用于所有未来的终端会话:

Bash:~/.bash_profile
ZSH:~/.zshrc
极狐GitLab 容器使用主机装载的卷来存储持久数据:

本地位置 容器位置 使用

$GITLAB_HOME/data	/var/opt/gitlab	用于存储应用程序数据。
$GITLAB_HOME/logs	/var/log/gitlab	用于存储日志。
$GITLAB_HOME/config	/etc/gitlab	用于存储极狐GitLab 配置文件。
3. 安装gitLab

hostname 可以配置域名或者ip

sudo docker run --detach \
  --hostname 192.168.153.104 \
  --publish 443:443 --publish 80:80\
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  registry.gitlab.cn/omnibus/gitlab-jh:latest

在这里插入图片描述

3.1 查看启动日志

在这里插入图片描述

3.2 查看密码
docker exec -it gitlab /bin/bash
head /etc/gitlab/initial_root_password

在这里插入图片描述

新建项目,测试
在这里插入图片描述

jenkins (war包方式)

https://www.jenkins.io/zh/download/

系统要求

最低推荐配置:

  • 256MB可用内存
  • 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)

为小团队推荐的硬件配置:

  • 1GB+可用内存
  • 50 GB+ 可用磁盘空间

软件配置:

  • Java 8—​无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。

安装JDK

jenkins.war 包可能运行不了,需要安装java11版本
在这里插入图片描述

## 查看jdk版本
yum search java|grep jdk
## 下载 jdk11
yum install -y java-8-openjdk
       or
yum install -y java-11-openjdk

在这里插入图片描述

启动jenkins

在这里插入图片描述

初始化

http://192.168.153.103:8080/

  • 输入密钥初始化

在这里插入图片描述

  • 选择推荐插件安装
    在这里插入图片描述
    在这里插入图片描述

安装Maven

apache-maven-3.9.5-bin.tar.gz

# 解压
[root@localhost ~]# tar zxvf apache-maven-3.9.5-bin.tar.gz
# 移动
[root@localhost ~]# mv apache-maven-3.9.5 /usr/local/maven
# 检查可运行
[root@localhost ~]# /usr/local/maven/bin/mvn -v
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /usr/local/maven
Java version: 11.0.20, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-1.el7_9.x86_64
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

安装Maven 插件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

构建item

选择maven 构建项目
在这里插入图片描述
复制远程仓库地址,如果出现以下提示,则需要安装一下git
在这里插入图片描述
在这里插入图片描述

配置maven

在这里插入图片描述

自动构建配置

安装 Publish Over SSH 插件

在这里插入图片描述

配置 Publish over SSH

远程git信息
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

GitLab钩子

下载插件Build Authorization Token Root

在这里插入图片描述
构建请求配置如下:
在这里插入图片描述

构建触发器配置

在这里插入图片描述
测试
在这里插入图片描述

gitLab中配置 WebHooks
配置网络设置

允许访问请求,防止配置Hooks时出现以下异常
在这里插入图片描述

在这里插入图片描述

项目 Hooks配置

在这里插入图片描述

测试

gitlab 模拟测试
在这里插入图片描述

提交代码测试在这里插入图片描述

几种构建方式

  • 快照依赖构建/Build whenever a SNAPSHOT dependency is built
    • 当依赖的快照被构建时执行本job
  • 触发远程构建 (例如,使用脚本)
    • 远程调用本job的restapi时执行本job
  • job依赖构建/Build after other projects are built
    • 当依赖的job被构建时执行本job
  • 定时构建/Build periodically
    • 使用cron表达式定时构建本job
  • 向GitHub提交代码时触发Jenkins自动构建/GitHub hook trigger for GITScm polling
    • Github-WebHook出发时构建本job
  • 定期检查代码变更/Poll SCM
    • 使用cron表达式定时检查代码变更,变更后构建本job
定时构建

表达式配置:https://crontab.guru/
在这里插入图片描述

配置邮箱

Jenkins 凭证配置

在这里插入图片描述

SMTP server 配置

检查选用邮箱的Smtp配置信息
在这里插入图片描述

在这里插入图片描述

邮件通知 配置

在这里插入图片描述

触发配置

在这里插入图片描述

项目构建后操作配置

在这里插入图片描述
测试
在这里插入图片描述

自动化部署到Docker容器中

手动打包测试

dockerfile

FROM openjdk:11
EXPOSE 8080

WORKDIR /root

ADD jarfile/demo*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]

打包
docker build -t demo .

自动构建

修改ssh 发送文件位置

Jenkins 集群

增加节点

在这里插入图片描述
在这里插入图片描述

添加在这里插入图片描述

并发构建

项目并发构建配置
在这里插入图片描述

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

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

相关文章

C# 将PDF文档转换为Word文档

一.开发框架: .NetCore6.0 工具:Visual Studio 2022 二.思路: 1.使用SHA256Hash标识文档转换记录,数据库已经存在对应散列值,则直接返还已经转换过的文档 2.数据库没有对应散列值记录的话,则保存上传PDF…

Nginx 版本信息泄露解决方案

Nginx 【CVE-2021-23017;CVE-2022-41742】 【影响】 攻击者可能使用泄露的版本信息来确定该版本服务器有哪些安全漏洞,据此展开进一步的攻击。以下是百度的请求示例,也是有版本泄露: 【解决方案】 在Server节点增加以下配置: #…

一张图搞懂什么是BCD8421编码

如图所示 BCD8421编码的意义是 用四位二进制数表达一位的十进制数 因此十进制下的0~9在BCD8421编码下与其二进制表达是一样的 而多位的十进制数 比如说“10” 则需要将它拆分成两个单独的数“1”和“0” 分别用BCD8421编码表示这两个数 十进制“1” -> 0001 十进…

labview实现仪器的控制visa

*IDN? 是识别大多数仪器的查询指令。仪器会回应一个用于描述仪器的识别字符串。如果仪器不接受该指令,请在仪器手册中查询仪器能识别的指令列表。 如下图所示: 程序如下:

场景案例∣企业如何打造数智采购商城,赋能企业提速降本增效

从1998年第一个电商平台成立至今,已经有25年。 随着数字化经济加快发展,大数据、云计算、物联网及人工智能的进一步应用,近年来电商化采购模式也强势崛起,在企业采购领域掀起革命性的巨浪。 而随着市场需求的变化多样,…

『MySQL快速上手』-⑨-复合查询

文章目录 1.基本查询回顾2.多表查询案例3.自链接案例4.子查询4.1 单行子查询4.2 多行子查询4.3 多列子查询4.4 在from子句中使用子查询5.合并查询5.1 union5.2 union all1.基本查询回顾 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J;

du_命令可以像find_命令那样列出最大的文件吗

【赠送】IT技术视频教程,白拿不谢!思科、华为、红帽、数据库、云计算等等_厦门微思网络的博客-CSDN博客文章浏览阅读418次。风和日丽,小微给你送福利~如果你是小微的老粉,这里有一份粉丝福利待领取...如果你是新粉关注到了小微&am…

Git企业开发级讲解(二)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、添加⽂件--场景⼀1、操作2、演示 二、查看 .git ⽂件1、tree .git命令2、内容讲解3、总结…

Riskified: 2023年电商政策滥用问题恶化,正严重挑战商家盈利底线

2023年11月14日,中国上海 —— 近日,由全球领先的电子商务欺诈和风险智能解决方案提供商 Riskified 发布的《政策滥用及其对商家的影响:2023年全球参考基准》报告显示,政策滥用问题正进一步恶化,超过九成电商商家正在承…

常用的Linux命令;Linux常用命令用法及实现方式

1.系统工作命令 (1)echo命令:echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为“echo [字符串] [$变量]”。 (2)date命令:date命令用于显示或设置系统的时间与日期,语法格式为“date [指定的格式]”。 (3)timedate…

微信怎么群发消息?答案在这,1分钟就能学会!

微信群发消息是一种方便快捷的消息发送方式,该功能允许用户一次性给多个好友发送相同的内容。一般来说,群发消息比较适用于发送节日祝福、通知、品牌推广等场景。微信怎么群发消息?本文将给大家详细介绍微信群发消息的操作方法,只…

列出目录内最大十个文件并排序

在Linux中,可以使用以下命令列出目录内最大的十个文件并排序: find ./ -type f -print0 | xargs -0 du -h | sort -rh | head -n 10 find ./ -type f -print0: find命令用于在指定目录下查找文件。这里,我们在当前目录下查找所有的文件&…

【Nginx】CentOS 安装Nignx

CentOS上安装Nginx: 1. 打开终端:使用SSH或者直接在服务器上打开终端。 2. 更新系统:运行以下命令以确保您的系统软件包列表是最新的: sudo yum update3. 安装Nginx:运行以下命令以安装Nginx: sudo yum…

应用在微波炉触摸屏中的低功耗触摸芯片

微波炉(microwave oven/microwave),顾名思义,就是一种用微波加热食品的现代化烹调灶具。微波是一种电磁波。微波炉由电源,磁控管,控制电路和烹调腔等部分组成。电源向磁控管提供大约4000伏高压,…

Nodejs操作缓存数据库-Redis

Hi I’m Shendi Nodejs专栏 Nodejs操作缓存数据库-Redis 在服务端开发中,缓存数据库也是不可或缺的,可以提高程序并发以及方便后续扩展,而目前最常用的莫过于Redis了 安装依赖 和之前的mysql一样,redis的依赖最常用的就是redis …

创意无限:7大AI绘画软件揭示人工智能的绘画魅力!

本篇文章将为大家推荐7款2023年好用的AI绘画软件,为艺术家和设计师提供了创作灵感和效率的提升。 1、即时设计 即时设计是一款依托于浏览器运行的在线设计工具,可使用它进行UI设计、原型制作,以及团队项目管理等,功能十分强大&a…

el-table本地与线上的样式不一致出现错乱

使用el-table的时候有几个表头是循环出来的,出现在本地运行的时候,表头内el-input输入框样式正常,但是发布以后出现样式错乱问题 线上样式错乱:​ 本地正常: 出现这个问题的原因是我有几个表头是循环出来的&#xff0…

问题 D: 过山车(二分图)

首先,绘制二分图 核心思想: 对于每一个左边端点,查找每个右边端点, 若右边端点无对象,则暂时作为该左端点的对象 若右边端点有对象,递归查询其对象是否有其他选择 (1.若有其他选择&#xf…

全网最全synchronized锁升级过程

一、前言 在面试题中经常会有这么一道面试题,谈一下synchronized锁升级过程? 之前背了一些,很多文章也说了,到底怎么什么条件才会触发升级,一直不太明白。 实践是检验真理的唯一标准,今天就和大家一起实…

uniapp+vite+vue3开发跨平台app,运行到安卓模拟器调试方法

因为没有使用hbuilder开发uniapp,而是使用了vscode和vite来开发的,所以怎么将这个程序运行到安卓模拟器调试开发呢?其实方法很简单,使用android studio创建一个模拟器或者其他mumu模拟器,然后将项目使用hbuilder打开&a…