Pipeline,简单来说,就是一套运行于 Rancher 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。
Rancher Pipeline 主要在 Rancher 环境中用于运行持续集成、持续交付和持续部署任务,讲到 pipeline 就是敏捷开发的延伸的产物,我们不得不说持续集成、持续交付和持续部署。持续集成:频繁地(一天多次)将代码集成到主干。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。好处主要有两个:闲言少叙,不懂的直接可以看官网, 官网地址 。直接整 demo 了。
1、Ranche Pipeline 是 Rancher V1.6.13 更新发布的新功能。所以如果不是 V1.6.13 首先要进行 Rancher 的升级, 升级方法
2、升级到 V1.6.13 后,我们就可以在 应用商店 中搜索 "Pipeline",点击部署就 OK 了。部署完成后会在 UI 多出一个流水线的页面。(这里环境是之前部署好了)
3、Rancher Pipeline 中,Rancher 用户可以同时使用 GitHub 与 GitLab 进行基于 OAuth 的身份验证,无需插件,即可在单一环境中同时拉取、使用和管理托管在 GitHub 和 GitLab 的代码。
案例是 gitlab 中的 OAuth 验证:
1、因为的 gitlab 是私有化,所以点击私有化部署。
2、填写 gitlab 地址
3、点击 gitlab 验证
这里的 NAME 随意填。Redirect URI 填写第一个图片提供的地址。
将 Application id 和 Secret 记录回填到第一个页面
这样一个 pipeline 准备完毕。接下来讲一下 java demo
首先我们先介绍 Pipeline 的几个基本概念:
配置 Source Code,配置一个想要发布的项目。
添加一个 stage,第一个配置应该是打包编译, 命名为 build。可以在串行或并行这两种任务运行方式中自由选择,也良好集成的审批系统可以很大程度地提高 CI/CD pipeline 的安全可控性。
添加一个构建的 task, 因为是 java 的 gradle 项目,所以需要一个 gradle 依赖。
看一下 gradle 的 Dockerfile, 通过 Dockerfile 构建成镜像,上传到自己的镜像库。
- FROM openjdk:8-jdk
- CMD ["gradle"]
- ENV GRADLE_HOME /opt/gradle
- ENV GRADLE_VERSION 2.14.1
- ARG GRADLE_DOWNLOAD_SHA256=cfc61eda71f2d12a572822644ce13d2919407595c2aec3e3566d2aab6f97ef39
- RUN set -o errexit -o nounset 10 && echo "Downloading Gradle"11 && wget --no-verbose --output-document=gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip"12 13 && echo "Checking download hash"14 && echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check -15 16 && echo "Installing Gradle"17 && unzip gradle.zip18 && rm gradle.zip19 && mv "gradle-${GRADLE_VERSION}" "${GRADLE_HOME}/"20 && ln --symbolic "${GRADLE_HOME}/bin/gradle" /usr/bin/gradle 21 22 && echo "Adding gradle user and group"23 && mkdir -p /home/gradle/.gradle 24 && chown --recursive root:root /home/gradle 25 26 && echo "Symlinking root Gradle cache to gradle Gradle cache"27 && ln -s /home/gradle/.gradle /root/.gradle
- # Create Gradle volume
- USER root
- VOLUME "/home/gradle/.gradle"
- WORKDIR /home/gradle
- RUN set -o errexit -o nounset 35 && echo "Testing Gradle installation"36 && gradle --version
通过 gradle 的镜像下的 gradle 环境构建。
接下来我打包上传到制品库
更新 stack
这就是一个简单的 pipeline 流程。
拉取源码 -->> 构建 --->> 打包 --->> 发布。
我们可以根据实际情况定义适合当时情景的 Pipeline。
推荐 Rancher Pipeline 的文章
初探 Rancher Pipeline 视频教程来源: http://www.bubuko.com/infodetail-2448400.html