与 Jenkins、Nexus、Ansible 工具等整合

大约 2 分钟

# 工具介绍

首先介绍下这些工具是干什么的:

  • Jenkins CI/CD:基于Java开发的持续集成工具;
  • Nexus:依赖仓库,Maven 仓库管理器;
  • Ansible:自动化运维工具,基于 Python 开发的自动化运维工具;
  • Gitee/GitHub/GitLab:代码管理工具/平台。

# 整合 Demo

# 1. Jenkins 中 Maven 配置

Jenkins --> Global Tool Configuration

图片

图片

# 2. 新建 Maven 仓库

在代码仓库新建一个 Maven 的 Hello World 项目。

图片

# 3. 在 Jenkins 中新建 Item

  1. 新建

    图片

  2. 添加描述

    图片

  3. 源码管理配置仓库地址和凭证信息

    图片

  4. 新增构建设置

    使用 maven 构建:

    图片

    或者使用 ansible 执行剧本构建。

    如果 ansible 有单独服务器,则需要安装 SSH 插件,远程 SSH 执行脚本:

    图片

  5. 构建后操作

    写了个重启脚本,拿到当前执行项目的 pid,kill,然后 nohup 重启程序的 jar。

    图片

  6. 构建触发器

# Gitee 平台配置

Gitee 文档:https://gitee.com/help/articles/4183 (opens new window)

安装 Gitee 插件:

图片

选择需要触发构建的策略:

图片

添加 WebHooks:

图片

图片

# GitHub 平台配置

类似的安装 pull request 插件:

图片

然后配置:

图片

登录 GitHub,Settings>>Webhooks 中,此时会生成一个新的 webhook,也是选择自己需要触发构建的策略后保存。

# 4. 测试构建是否正常

图片

此时就完成了。

# 总结

根据配置的触发策略,开发者完成一个任务,提交 Pull Request 或者管理者代码审查后合并 PR,会触发 Jenkins 构建并自动发布重启项目,减少了团队手动运维的时间成本。

以上只是 GitOps 的一个简单例子,实际上不限于以上这些工具,Jenkins 有一个 JenkinsX (opens new window) 的版本专门为 GitOps 而生,也可以将 Jenkins 换成 Argo CD (opens new window) 等。

上次编辑于: 2024年5月11日 00:01