linux-如何使用jenkins将bitbucket中的存储库同步到S3
作者:互联网
背景:我有一个存储库,例如master.develop分支和example.com.我的主分支仓库通过jenkins构建将更改推送到/ efs / prod并开发分支仓库通过jenkins构建将更改推送到/ efs / qa.现在,我在repo的develop分支中设置了一个名为/ s3的文件夹,以将更改推送到亚马逊S3,为此,我在jenkins中使用了“ Publish Artifacts to S3 Bucket”插件.
要求:我能够将位桶上传文件移动到aws s3,但是当有人在位桶仓库中删除文件时,则无法将其与AWS s3同步.
我已经按照下面的来源将存储库更改移至s3
http://www.devops-share.com/upload-builds-from-jenkins-to-s3/
有人可以让我知道如何让jenkins将位桶存储库与S3同步.
解决方法:
一种可能的解决方案是在jenkins实例上安装aws-cli,使用aws configure进行设置,理想情况下,授予其特定的权限,以通过IAM策略将其上传到特定的S3存储桶.
下一步实际上是上传您的数据,在jenkins处理/构建/编译代码后,从您想要同步到S3的目录中运行以下命令:
aws s3同步. s3:// YOUR_BUCKET_NAME
如果要排除某些目录,请添加–exclude“ folder_name / **”
如aws-cli docs中所述:“以递归方式将新文件和更新文件从源目录复制到目标.”
它不会删除源目录中不存在但存储桶中存在的文件.
如果您确实想要这种行为,则可以在每次上传之前先删除存储桶中的内容,但这会导致停机.因此,可以考虑使用一个CloudFront设置来缓存存储桶中的内容,并在aws s3同步成功结束后从Jenkins清除此缓存. .
要使CloudFront缓存无效,请参阅docs
标签:bitbucket,jenkins,amazon-web-services,jenkins-plugins,linux 来源: https://codeday.me/bug/20191025/1929497.html