Jenkins 构建CICD

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 集群

增加节点

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

添加在这里插入图片描述

并发构建

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【极客时间-系列教程】Vim 实用技巧必知必会-基本概念和基础命令:应对简单的编辑任务

vim很强大,但它的入门确实是比较高,对于初学者来说,怎么退出都是一件很难的事情, 不管你有没有遇到过,反正我是遇到过退出比较难的问题 首先介绍几个常用的命令和按键 :q! 退出不保存:w 写入不退出:r 读文件:wq 写入…

Android面试官の小抄,可能是东半球最好的

面试官的小抄,Android面试&进阶一网打尽,让一部分人先学起来 背景 作为一名客户端开发者,能够明显的感觉到小程序这些年对原生市场带来的压迫感,比如现在的创业公司都是小程序探路,成熟了再推进客户端&#xff0…

用递归解饮料换购

乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。 请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始…

小程序与公众号下发统一消息接口返回45109

根据微信官方通告,自 2023 年 9 月 20 日起,下发统一消息接口将被收回,返回45109。链接见 小程序与公众号下发统一消息接口调整通知 | 微信开放社区各位开发者:下发统一消息 接口曾支持小程序与公众号统一的模板消息下发。由于小程…

揭密,这个微信群机器人的所有秘密在这里

技术长久不用就废了,我想把软件开发技术重新捡拾起来。 咱们“一起学英语”群已有三年时光,群里很多朋友互帮互助走到了今天。可是,即使再好玩的英语话题,也有谈腻的时候。 群里是不是应该引入一点好玩的东西? 人工智能…

51单片机+DS1302设计一个电子钟(LCD1602显示时间)

一、前言 电子钟是一种能够准确显示时间的设备,广泛应用于家庭、办公场所和公共场所,为人们提供了方便和准确的时间信息。本项目设计一个基于51单片机的电子钟,使用DS1302作为RTC时钟芯片,LCD1602作为显示屏,并通过串…

亚马逊、Shein、lazada自养号测评如何解决支付和环境问题?

年底旺季,平台风控都会大规模持续升级,针对风控升级如果测评环境没有进行相对应的更新可能会导致大批量砍单,或者F号,严重的店铺还会被关联。有人以为是支付卡的问题,也有人觉得是IP被关联了。其实他们讲的也没错&…

【万字长文】前端性能优化实践 | 京东云技术团队

一、引言 从一个假死页面引发的思考: 作为前端开发,除了要攻克页面难点,也要有更深的自我目标,性能优化是自我提升中很重要的一环; 在前端开发中,会偶遇到页面假死的现象, 是因为当js有大量计算…

mysql 中with的用法(2)

with递归练习主要用于表里面包含父节点id之类的 查询出对应的省份和市。 建表 CREATE TABLE tb(id VARCHAR(3), pid VARCHAR(3), name VARCHAR(64));INSERT INTO tb VALUES(002, 0, 浙江省); INSERT INTO tb VALUES(001, 0, 广东省); INSERT INTO tb VALUES(003, 002, 衢州市…

史上最强AI芯片!英伟达H200震撼来袭!141 GB 超大显存,Llama2推理性能翻倍,老黄赢麻了!

原创 作者 | 王二狗英伟达又一次打了所有人措手不及! 就在昨晚,老黄发布了新一代史上最强 AI芯片 NVIDIA HGX™ H200 。 141 GB 超大显存!带宽增加 2.4 倍 H200 拥有141GB 显存!相比之前的 H100和A100,容量几乎翻倍&…

SpringBoot整合Activiti7——定时器事件(九)

文章目录 定时器事件时间定义时间固定时间段时间周期 1.开始事件2.中间事件3.边界事件代码实现xml文件自定义服务任务监听器自定义用户任务监听器测试流程流程执行步骤 定时器事件 可以用在开始事件、中间事件、边界事件上,边界事件可以是中断和非中断边界事件 需要…

css实现元素四周阴影

前言 首先确定的是需要使用box-shadow这一属性 语法如下: box-shadow: h-shadow v-shadow blur spread color inset; h-shadow:表示水平方向上的阴影偏移量,必须指明,可以是正数、负数、0,如果为正数左方有阴影&…

安装MinGW并在codeblocks下使用

一、下载安装MinGW 1.下载MinGw安装器,下载地址 2. 安装 下载下来的知识一个安装器,我们双击安装会帮我们自动下载好相关文件 安装完成后会打开一个安装管理工具,在这个工具中我们选中想要安装的软件包然后安装到本地 选好以后在菜单栏选…

多区域LCC-HVDC一次调频二次调频

多区域LCC-HVDC高压直流互联一次二次调频,后续可加入双馈永磁风机调频,储能调频等。多个四机两区域模型互联。 目前实现的主要是区域之间的调频。

灯饰行业ERP有什么用?有哪些模块

在我们的生活当中会遇到各种类型的灯饰产品,这些商品有不同的设计特点和用料以及选型,并且在销售策略和价格策略等方面也比较灵活。 随着近些年灯饰行业同质化竞争愈演愈烈,国内很多的灯饰企业也遭遇较大的运营压力,尤其是采用传…

MySQL最新2023年面试题及答案,汇总版(7)【MySQL最新2023年面试题及答案,汇总版-第三十七刊】

文章目录 MySQL最新2023年面试题及答案,汇总版(7)01、NOW() 和 CURRENT_DATE() 有什么区别?02、CHAR和VARCHAR的区别?03、主键索引与唯一索引的区别?04、MySQL中有哪些不同的表格?05、SQL的生命周期?06、你…

浪潮服务器安装操作系统

文章目录 一、准备工作1.1 制作启动 U 盘 一、准备工作 一开始认为将镜像文件导入U盘即可,但实操中并不行,得首先将U盘制作成启动盘才行。   首先需要确定安装的版本,我这里要安装的是 CentOS 7.9 版本,镜像文件为 CentOS-7-x86…

Git企业开发级讲解(一)

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、Git初识1、提出问题2、如何解决--版本控制器3、注意事项 二、Git 安装1、Linux-centos2、…

【图的定义和术语,图的类型定义】

文章目录 图的定义和术语图的类型定义 图的定义和术语 图:G(V,E)V:顶点(数据元素)的有穷非空集合。 E:边的有穷集合。 无向图:每条边都是无方向的。 有向图:每条边都是有方向的。 …

绿盟远程安全评估系统 RSAS 使用体验-难用

最近领导让我用公司采购的RSAS对产品进行漏洞扫描,学习并使用了这个软件,体验就是真的很难用。使用遇到问题时,咨询售后服务,机器人需要有公司认证,不能随便问问题,也是无语了。咨询客服,客服回…