来源: Datanyze 市场分析
Jenkins 流水线 执行在与代码一起存储的 Jenkinsfile
中声明的持续交付任务。 流水线插件 在其源码树中包含了一个相当全面的 教程。插件是增强 Jenkins 环境功能以满足组织或用户特定需求的主要手段。使用流水线,您可以配置 Jenkins 自动部署关键基础设施,例如 Redis 数据库。
Jenkins 流水线是 Jenkins 的持续交付 (CD) 端。它们使用 Jenkinsfile
声明式脚本来定义流水线的行为。您可以在 Groovy 中编写脚本并从中运行 shell 脚本,因此几乎可以使其执行任何操作。
Jenkinsfile
指示 Jenkins 从凭据存储中导出一些环境变量以连接到 Redis 服务器,然后以部署配置文件作为参数执行 Python 流水线脚本。例如,一个 deployment-configuration-file.json
文件如下所示:
{
"database": {
"name": "made-with-jenkins",
"port": 12345,
"size": "S",
"operation": "CREATE"
}
}
{
"name": "{NAME}",
"type": "redis",
"memory_size": 343597383
}
您可以使用 Docker Desktop 快速启动并运行 Jenkins 实例,暴露端口 8080(Web GUI)和 50000(入站代理)。
docker run --name jenk -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk11
安装将在 docker-cli 输出中生成一个首次运行密码。
然后打开 Jenkins URL http://localhost:8080/ 并输入密码以解锁您的实例并开始安装。
等待插件完成安装过程。
如果您使用现有的 Jenkins 服务器实例,您可以从该机器的命令行界面安装 Python 和自定义库。
可以使用以下命令通过 shell 访问 Jenkins 的 Docker 实例
docker exec -it -u root jenk bash
Python 流水线脚本需要库 click
和 requests
。它还需要 Python。
apt-get update
apt-get install -y python3-pip
pip install --upgrade pip
pip install click
pip install requests
Dockerfile
中,该 Dockerfile 基于 Jenkins 基础镜像构建:FROM jenkins:latest
USER root
RUN apt-get update
RUN apt-get install -y python-pip
# Install app dependencies
RUN pip install --upgrade pip
RUN pip3 install click
RUN pip3 install requests
使用左侧菜单,选择 管理 Jenkins,然后选择 管理凭据,然后单击链接 (全局)。
在此处,您可以指定种类 (Kind): 密文 (Secret text),用于连接 Redis REST 端点所需的 4 个秘密信息
如果您使用私有代码仓库,您可能还希望在此处包含一个个人访问令牌。
在仪表盘中,点击 新建项目。
输入流水线名称,然后选择 流水线 类型。
在出现的流水线配置页面中,勾选 GitHub 复选框并输入 git 克隆 URL,包括读取仓库所需的任何凭据。对于 GitHub 访问,密码应为个人访问令牌,而不是实际用户密码。
向下滚动此页面到 高级项目选项,您可以直接粘贴 Jenkinsfile
,或者如果文件存在于 git 仓库中,则可以指定文件名。
Jenkinsfile
,其中包含凭据到环境变量的映射,以及 2 个独立阶段——一个始终成功的 Hello World 阶段,以及一个调用 Python 脚本的构建阶段。将其粘贴到流水线脚本部分。pipeline {
agent any
environment {
REDIS_SERVER_FQDN = credentials('REDIS_SERVER_FQDN')
REDIS_SERVER_PORT = credentials('REDIS_SERVER_PORT')
REDIS_USER = credentials('REDIS_USER')
REDIS_PASS = credentials('REDIS_PASS')
}
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
stage('build') {
steps {
git branch: 'main', url: 'https://github.com/masyukun/redis-jenkins-pipeline.git'
sh 'python3 jenkins-re-pipeline.py --deployfile deployment-configuration-file.json'
}
}
}
}
作业配置完成后,点击“保存”。
点击您创建的流水线
示例输出:您应该在“Shell 脚本”折叠面板中看到 Redis REST 服务的详细响应。
还有一个“Git”输出日志,以防您需要在此级别调试问题。无论何时您更新远程 git 仓库中的分支,都应该在该日志中看到最新更改已成功检出到本地 Jenkins git 仓库的证据。
https://服务器名称:8443
打开您的 Redis Enterprise 安全管理 UI,然后点击 数据库 菜单项,以验证您的数据库是否已使用 deployment-configuration-file.json
文件中指定的名称、端口和大小创建。恭喜!您已成功使用 Jenkins 流水线部署了 Redis Enterprise 数据库!
当前的 GitHub 仓库地址为: https://github.com/masyukun/redis-jenkins-pipeline