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-openjdkor
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 8080WORKDIR /rootADD jarfile/demo*.jar /root/app.jar
ENTRYPOINT ["java","-jar","/root/app.jar"]

打包
docker build -t demo .

自动构建

修改ssh 发送文件位置

Jenkins 集群

增加节点

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

添加在这里插入图片描述

并发构建

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上课笔记(11.11之前笔记)

一.数据结构的分类 1.数据结构中分为四大类:线性表,哈希表,树,图。 2.线性表(line table):呈现线性结构的一种数据结构。具有顺序性,也就是所有数据都是有序的; 数组&…

Mozilla 面向基于 Debian 的 Linux 发行版

导读Mozilla 公司今天发布新闻稿,表示面向 Debian、Ubuntu 和 Linux Mint 等基于 Debian 的发行版,推出了.deb 格式的 Firefox Nightly 浏览器安装包,便于用户在上述发行版中更轻松地安装。 本次更新的亮点之一在于采用 APT 存储库&#xff0…

C++20 Text formatting

C20 Text formatting 格式化字符串&#xff0c; 和 python 类似。 std::formatter - cppreference.com string — Common string operations — Python 3.12.0 documentation 新格式库位于 <format> 头文件中。格式库基于 Python3 中的 str.format() 方法建模。格式…

css实现元素四周阴影

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

Spring全家桶源码解析--2.3 Spring bean 的依赖注入--@Autowired@Value

文章目录 前言一、Autowired&Value&#xff1a;1.1 Autowired&#xff1a;1.2 Value&#xff1a; 二、依赖注入&#xff1a;2.1 注入点获取&#xff1a;2.2 通过 populateBean 入口依赖注入2.2.1 populateBean &#xff1a;主要通过 postProcessProperties 方法进行依赖注入…

医院安全(不良)事件管理系统源码 不良事件报告全套源码

不良事件管理系统是一种专为企业或组织设计的软件工具&#xff0c;用于跟踪、记录和管理不良事件。该系统可以有效地整合不良事件的收集、分类、分析和报告&#xff0c;帮助企业及时识别和处理不良事件&#xff0c;从而降低风险和损失。通过实时监控和自动化报告&#xff0c;该…

论文精读 MediaPipe Hands

MediaPipe Hands:On-device Real-time Hand Tracking MediaPipe手势&#xff1a;设备上的实时手势跟踪 论文地址&#xff1a;2006.10214.pdf (arxiv.org) 源码地址&#xff1a;GitHub - vidursatija/BlazePalm: PyTorch 目录 摘要 介绍 架构 BlazePalm Detector Hand L…

蓝桥杯算法心得——拼数(排列型回溯dfs)

大家好&#xff0c;我是晴天学长&#xff0c;排列型的dfs&#xff0c;在一些需要暴搜的题中很中很重要&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .拼数 2) .算法思路 超级递归 1.遍历数组&#…

玩了个锤子游戏小程序搭建流程:探索深度与逻辑的结合

随着移动互联网的普及&#xff0c;小程序已经成为了越来越多用户的选择。在这个背景下&#xff0c;玩了个锤子游戏小程序应运而生&#xff0c;它为用户提供了一个全新的游戏体验。那么&#xff0c;如何搭建这样一个小程序呢&#xff1f;本文将为大家详细介绍玩了个锤子游戏小程…

GoLong的学习之路(二十三)进阶,语法之并发(go最重要的特点)(锁,sync包,原子操作)

这章是我并发系列中最后的一章。这章主要讲的是锁。但是也会讲上一章channl遗留下的一些没有讲到的内容。select关键字的用法&#xff0c;以及错误的一些channl用法。废话不多说。。。 文章目录 select多路复用通道错误示例并发安全和锁问题描述互斥锁读写互斥锁 syncsync.Wait…

go学习之接口知识

文章目录 接口1.接口案例代码展示2.基本介绍3.基本语法4.应用场景介绍5.注意事项和细节6.接口编程经典案例7.接口与继承之间的比较8.面向对象编程--多态1&#xff09;基本介绍2&#xff09;快速入门3&#xff09;接口体现多态的两种形式 9.类型断言1&#xff09;先看一个需求2&…

单独设置echarts图例样式

参考&#xff1a;echarts-legend legend: [{data: [{name: 正常,icon: rect}],itemWidth: 16,itemHeight: 4,top: 6%,left: 35%,textStyle: {color: #626C78,fontSize: 14}},{data: [{name: 异常,icon: rect}],itemWidth: 16,itemHeight: 4,top: 6%,left: 50%,textStyle: {col…

2013年01月16日 Go生态洞察:并发不是并行

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

京东数据运营与分析:如何全面获取电商销售数据?

随着电商行业的快速发展&#xff0c;数据分析成为了电商运营中一个非常重要的环节&#xff0c;这一环往往能够帮助品牌方来提升销售业绩和管理效率。然而&#xff0c;如何获取到电商平台中详细、全面的销售数据是很多电商品牌方所关心的问题&#xff0c;事实上&#xff0c;第三…

GitHub加速配置

1. 找到要加速的域名 GitHub&#xff1a;github.com&#xff08;这只是加载主页面的&#xff09;GitHub下载&#xff1a;codeload.github.com&#xff08;不唯一&#xff0c;自己去下载链接看&#xff09; 2. 用域名到DNS解析服务器地址 ITDOG 3. 修改 Hosts 文件 依据解…

ai批量剪辑矩阵无人直播一站式托管系统源头技术开发

一、剪辑技术开发 智能剪辑&#xff1a;咱们研发公司自主研发的&#xff0c;包括算法&#xff0c;算法是阶乘算法&#xff0c;无限产出&#xff0c;六大剪辑模式已经满足当下需求了&#xff0c;当然剪辑出的视频可以一键发布&#xff0c;也可以内部批量发布&#xff0c;都可以的…

100G 最小封装光模块——SFP112光模块

10月易天团队远赴英国格拉斯哥参加展会&#xff0c;在ECOC展会上认识和学习了许多新的产品和技术&#xff0c;其中一款备受关注的是100G SFP112光模块&#xff0c;据说它是全球最小封装的模块。下面就跟着小易一起来了解一下这位新晋级的“大咖”吧&#xff01; 100G SFP112采…

基于SpringBoot的SSMP整合案例(实体类开发与数据层开发)

实体类开发 导入依赖 Lombok&#xff0c;一个Java类库&#xff0c;提供了一组注解&#xff0c;简化POJO实体类开发<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId> </dependency>lombok版本由SpringB…

k8s笔记资源限制,亲和和性 污点和容忍

镜像下载失败 当宿主机资源不足时&#xff0c;会把pod kill &#xff0c;在其他node 重建 在宿主机放可能多的资源 requests(请求) limits(限制) 超出百分比 容器 pod namespace级别 pod使用资源过多&#xff0c;导致宿主机资源不足&#xff0c;会导致重建pod cpu 内存限…