自动化部署:从GitLab到S3的完整指南

在现代软件开发中,自动化部署是提高效率和减少人为错误的关键步骤。本文将介绍如何使用Jenkins自动化从GitLab获取源代码并推送到AWSS3的流程,这对于托管静态网站尤其有用。

先决条件

本文假设已经拥有一个在AWSS3上的静态网页,如果没有,请参考AWS官方文档。同时,应该已经在GitLab上添加了项目。

安装Jenkins

下载并安装最新版本的Jenkins(截至本文撰写时,LTS版本为2.89.2)。安装后,将更新站点的URL从https更改为http:

Jenkins -> 插件管理器 -> 高级(标签页)-> 更新站点:http://updates.jenkins.io/update-center.json

安装Git插件(版本3.7.0)。

可选:安装Green Balls插件,将成功球变为绿色。

设置从GitLab拉取项目

建立本地机器与GitLab之间的SSH认证。获取私钥文件/.ssh/id_rsa并创建Git凭据。如果还没有SSH密钥对,可以参考GitLab文档创建。

在Jenkins中创建Git凭据:

Jenkins -> 凭据 -> 系统 -> 全局凭据(无限制) -> 添加凭据

选择SSH用户名与私钥类型,粘贴私钥。

在Jenkins中添加Git用户名和电子邮件到Git属性:

管理Jenkins -> 配置系统,在Git插件部分添加Git用户名和电子邮件。

创建Jenkins项目/作业

Jenkins中创建新项目/作业:

Jenkins-> 新建项目,输入作业名称,选择“自由风格项目”,点击“确定”。

在配置页面的“源代码管理”部分,填写Git项目URL并选择要使用的凭据(在步骤2中创建)。

点击“保存”。此时,可以通过点击“立即构建”测试Jenkins作业是否可以从Git获取项目。如果成功,应该看到一个蓝色或绿色的球。可以通过点击蓝色/绿色球查看日志。

要检查项目是否正确从Git拉取到Jenkins工作空间,请点击“工作空间”。应该看到与Git仓库中相同的文件。

将项目推送到Amazon S3

创建一个用户以允许访问S3桶。在AWS在线控制台中:

IAM(服务)-> 用户,点击“添加用户”,输入想要的用户名,勾选“程序访问”,点击“下一步权限”,选择“直接附加策略”标签页,搜索's3',选择'AmazonS3FullAccess',点击“下一步审查”,点击“创建用户”。

记下用户的“访问密钥ID”和“秘密访问密钥”,因为在此之后将无法再次获取。

安装并配置S3cmd(命令行客户端访问S3):

在终端中:

sudo easy_install pip sudo pip install s3cmd

配置S3cmd:

s3cmd —configure

输入访问密钥ID和秘密访问密钥,并接受其他默认问题(除非区域不是美国,请输入不同的区域)。

使用以下命令找到S3cmd的位置:

which s3cmd

更新Jenkins作业以使用S3cmd将代码推送到S3:

返回Jenkins中创建的作业并点击“配置”,转到“构建”部分,输入:

PATH="/usr/local/bin:$PATH" s3cmd sync . s3://optimus.com --delete-removed --exclude '.git/'

解释:

第一行告诉Jenkins通过将S3cmd的位置添加到PATH来找到s3cmd命令。

第二行使用s3cmd将所有内容(.)复制到名为optimus.com的S3桶中,--delete-removed将从S3中删除已删除的文件,--exclude '.git/'排除将git目录同步到S3。

点击“保存”,然后点击“立即构建”。通过检查作业的日志,应该看到Jenkins从Git拉取代码并将其推送到AWS S3。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485