【问题标题】:Upload a file to S3 using Chef使用 Chef 将文件上传到 S3
【发布时间】:2018-07-25 05:47:25
【问题描述】:
我正在使用 Chef 自动安装分布式软件。它有多个节点,在主节点上,它在文件中创建一个加密密钥。该文件应该存在于所有从节点上。我打算将此文件从主节点发布到 S3 并下载到从节点上。我知道我们可以使用 s3_file 食谱从 s3 下载文件。我不知道如何在 Chef 中将文件上传到 s3。因此,如果 s3 上传不可用,寻找如何上传到 S3 或其他解决方法的建议。谢谢
【问题讨论】:
标签:
amazon-web-services
amazon-s3
file-upload
chef-infra
cookbook
【解决方案1】:
Chef 对此没有任何具体规定,我强烈建议您不要在 Chef 中处理此问题,因为当多个节点同时启动时,您必须处理各种竞争条件 :) 可能只是手动创建和上传密钥到您的秘密管理系统(带有 ACL 的 S3 存储桶是一个简单的选项,但也有 SSM 参数存储,或更新的 AWS Secrets Manager),然后只需处理来自 Chef 的下载端。
【解决方案2】:
您可以使用 AWS CLI 将文件上传到 s3。如果是 Windows,则使用 PowerShell 上传文件,否则使用终端脚本执行此操作。首先,您需要安装 AWS CLI,然后使用 AWS s3 cp 命令将本地文件上传到 AWS。