使用 Chef 将文件上传到 S3

Upload a file to S3 using Chef

我正在使用 Chef 自动安装分布式软件。它有多个节点,在主节点上,它在文件中创建加密密钥。该文件应该存在于所有从属节点上。我打算将此文件从主节点发布到 S3 并在从节点上下载。我知道我们可以使用 s3_file cookbook 从 s3 下载文件。我不知道如何在 Chef 中将文件上传到 s3。因此,寻找建议如何上传到 S3 或者如果 s3 上传不可用,其他解决方法是什么。谢谢

您可以使用 AWS CLI 将文件上传到 s3。如果是 windows 则使用 PowerShell 上传文件,否则使用终端脚本上传文件。首先,您需要安装 AWS CLI,然后使用 AWS s3 cp 命令将本地文件上传到 AWS。

Chef 对此没有任何具体规定,我强烈建议不要在 Chef 中处理此问题,因为当多个节点同时启动时,您必须处理各种竞争条件:)可能只是创建并上传手动密钥到您的秘密管理系统(带有 ACL 的 S3 存储桶是一个简单的选项,但也有 SSM Parameter Store,或更新的 AWS Secrets Manager),然后只需处理来自 Chef 的下载端。