GitLab CI/CD 完全指南:从 Runner 安装到 Pipeline 实践
一、GitLab CI/CD 与 Runner 简介GitLab CI/CD 是 GitLab 内置的一套强大的持续集成、持续交付和持续部署工具。它通过项目根目录下的一个名为 .gitlab-ci.yml 的文件来定义和管理整个 CI/CD 流水线 (Pipeline)。 GitLab Runner 是执行 .gitlab-ci.yml 文件中定义任务(Jobs)的代理程序。它是一个独立的开源项目,可以安装在与 GitLab 实例不同的服务器上。Runner 接收来自 GitLab 的任务,在指定的环境中执行,并将结果(日志、产物等)回传给 GitLab。 二、安装 GitLab Runner官方推荐在独立的服务器上安装 GitLab Runner,以避免与 GitLab 实例争抢资源。不建议使用 Docker 或 Kubernetes 安装 Runner,因为这可能会给调用 docker, kubectl 等外部工具带来不便。 1. 使用官方仓库安装 (推荐)这是在主流 Linux 发行版上最简单的安装方式。 a. 添加 GitLab 官方仓库 1...
Jenkins 全方位指南:从入门到 CI/CD 实践
引言在现代软件开发实践中,持续集成和持续部署 (CI/CD) 是不可或缺的一环。Jenkins 作为开源 CI/CD 领域的领导者,以其强大的功能和灵活的扩展性,被广泛应用于自动化构建、测试和部署流程。本文将为您提供一份全面的 Jenkins 指南,从基本概念、安装部署,到核心的 Jenkinsfile 语法,再到与 GitLab/GitHub 的实战集成,帮助您快速掌握并应用 Jenkins 构建高效的自动化流水线。 同时,我们也会探讨 Jenkins 与另一个流行的 CI/CD 工具——GitLab CI 的差异,以帮助您在不同场景下做出更合适的选型。 GitLab CI vs. Jenkins:差异与选型在选择 CI/CD 工具时,了解不同工具的特点至关重要。 特性 GitLab CI Jenkins 集成度 与 GitLab 代码仓库深度集成,开箱即用。 独立于代码仓库,通过插件与各类平台(GitHub, GitLab, Bitbucket等)集成。 配置方式 基于 .gitlab-ci.yml 文件,语法...
SonarQube 全方位指南:从 Docker 安装到 CI/CD 集成
一、前言:为何需要 SonarQube?在现代软件开发中,代码质量是项目成功与否的关键因素之一。一个充满技术债、Bug 和安全漏洞的项目,不仅难以维护,更会随着时间的推移变得愈发脆弱。虽然优秀的程序员会努力编写高质量的代码,但完全依赖人的自觉性和经验是不可靠的。 SonarQube 是一个业界领先的开源平台,用于持续检查代码质量。它通过静态代码分析,可以检测出代码中的 Bug、漏洞 (Vulnerabilities) 和坏味道 (Code Smells),并提供详细的报告和改进建议。将 SonarQube 集成到 CI/CD 流水线中,可以建立起自动化的代码质量门禁,确保不合规的代码无法进入生产环境,从而持续提升团队的整体代码质量。 本指南将详细介绍如何使用 Docker 部署 SonarQube,并将其与 GitLab CI、Maven 等工具链集成。 二、使用 Docker 安装 SonarQube官方推荐使用 Docker 进行部署,方便快捷。 1. 版本选择SonarQube 提供多个版本,主要区别在于功能和支持的语言: Community Edition (...
nexus3配置docker
安装nexus3 docker 123456789101112131415161718192021mkdir -p /usr/local/nexus3chown -R 200 /usr/local/nexus3docker run -d \--privileged=true \--name=nexus3 \-u root \-p 8081:8081 \# 这几个端口给docker私有仓库使用,故在需要使用 Docker 的机器上修改 `/etc/docker/daemon.json`:{"insecure-registries": ["你的服务器IP:8001", "你的服务器IP:8002", "你的服务器IP:8003"]}-p 8001:8001 \-p 8002:8002 \-p 8003:8003 \# 启动容器时加入时间挂载,使用宿主机时间-v /etc/localtime:/etc/localtime:ro \-v /usr/share/zoneinfo/Asia/...
gitlab安装与更新
安装官方文档链接:https://docs.gitlab.cn/jh/index.html 使用外部 PostgreSQL 服务配置 GitLab:https://docs.gitlab.cn/jh/administration/postgresql/external.html 以下安装方式使用内置postgresql 安装必要组件1yum -y install curl policycoreutils-python openssh-server perl rpm方式源地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 123wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpmrpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpm Docker方式12345678910111213141516mkdir -p ~/data/gitla...
在Windows中安装极狐GitLab Runner(解决 Host key verification failed.)
摘自:https://blog.csdn.net/chqaz123/article/details/131029045 在运行runner的机子上,配置SSH密钥123git config --global user.name "输入你的用户名"git config --global user.email "输入你的邮箱"ssh-keygen -t rsa -C "邮箱名称" 该过程禁止设置密码 复制用户目录下id_rsa.pub的内容 将该数据填入GitLab配置公钥置处 下载GitLab Runner 下载GitLab Runner二进制文件,新建一个文件夹(不要有中文),并将二进制文件放入该文件夹,重命名为“gitlab-runner.exe” 执行部署安装指令如果代码没有子模块 直接开始运行runner,切记使用管理员权限 12.\gitlab-runner.exe install.\gitlab-runner.exe start 如果代码有子模块 必须在install的时候输入当前机子上的用户账...
Trivy 容器安全扫描完全指南:安装、使用与 CI/CD 集成
概述Trivy(tri 发音为 trigger,vy 发音为 envy)是一个简单而全面的安全扫描器,专注于容器和其他工件的漏洞/错误配置检测。 核心特点: 🔍 简单易用,只需安装二进制文件即可开始扫描 🛡️ 全面检测操作系统和语言包漏洞 ⚙️ 支持基础设施即代码(IaC)配置检测 🚀 适用于 CI/CD 流程集成 官方资源: 📖 官方文档 💻 GitHub 仓库 核心功能检测类型Trivy 检测两种主要的安全问题: 类型 说明 示例 漏洞 软件或操作系统中的缺陷、弱点 CVE 漏洞、过时的依赖包 配置错误 部署配置中的安全隐患 IaC 文件中的不安全配置 扫描目标Trivy 可以扫描三种不同的工件: 容器镜像: 📦 Docker 镜像 🔍 检测系统包和应用依赖漏洞 ✅ 支持多种镜像仓库 文件系统: 💾 主机文件系统 🖥️ 虚拟机镜像 📂 解压的容器文件系统 Git 存储库: 🔗 远程 Git 仓库 📁 本地代码库 🔍 IaC 文件扫描 运行模式Trivy 支持两种运行模式: 模式 适...
蓝绿部署,金丝雀发布,(灰度发布),AB测试
转自:https://www.jianshu.com/p/0df88fe4a1e3 随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁;随着互联网行业的兴旺,产品迭代的频率也是越来越快,服务上线速度逐步提升。有上线、有部署,就有风险。有风险,就对业务有影响,然后就有了一系列减少这种风险的部署方案:蓝绿部署、金丝雀发布(灰度发布),也有适应产品迭代频率的AB测试。 蓝绿部署蓝绿色部署是一种通过运行两个相同的称为 BLUE 和 GREEN 的生产环境来减少停机时间和降低风险的技术。 蓝绿部署,以颜色命名,简单的理解就是,线上有两套集群环境,在架构图中,一套标记成蓝色,称为蓝色集群BLUE;一套标记为绿色,称为绿色集群GREEN。通过将流量引入两个集群,完成系统升级切换。 步骤一:部署绿色集群,这个时候是初始状态,蓝色集群承担全部责任,接收全部流量,等待被替换。绿色集群刚刚部署,还没有投入使用,流量为0,等待验证和上线。 步骤二:蓝色集群流量不变,向绿色集群引入流量。这个过程可以分成几个阶段完成。第一个阶段,引入少量非实时流量,仅用于数据测试;第二个阶段,引入...
nexus-docker镜像清理
先清理mainfests方法1 - Cleanup Policies查看docker repo 比如你的docker repo名字叫做test-repo,然后在nexus3首页的seatch下面找到docker,点进去随便查看一个已经上传的镜像 记住上面的Name选项,之后要用到 设定清理策略(clean policies) 在nexus3 设置中找到 Cleanup Policies 点击 Create Cleanup Policy 创建一个新的清理策略 注意到Asset Name Matcher区域,这里可以填写RE表达式,过滤的是第一步中得到的Name选项。比如你想要过滤所有以clean结尾的rabbitmq镜像,你可以这么编写你的表达式: 1v2/rabbitmq/manifests/.*-clean 如果你想要清理所有的镜像,而不只是rabbitmq 1v2/.*/manifests/.*-clean 当然你也可以根据情况选择是否设置镜像过期时间一起配合使用(注意这里的三个条件是逻辑与的关系)配置完成后,不要忘了点击下方进行预览,以...
