【问题标题】:How to download file from S3 into EC2 instance using packers to build custom AMI如何使用打包程序将文件从 S3 下载到 EC2 实例中以构建自定义 AMI
【发布时间】:2018-09-27 07:26:11
【问题描述】:

我正在尝试使用打包程序创建自定义 AMI。 我想在自定义 AMI 上安装一些特定软件,并且我的设置存在于 S3 存储桶中。但似乎没有像 cfn-init 那样直接在打包程序中下载 S3 文件的方法。

那么有没有办法使用打包程序在 EC2 实例上下载文件。

【问题讨论】:

  • 您应该能够将任何文件下载到您的 Packer AMI。如果您运行的是基于 Linux 的操作系统,请使用 wget;如果您使用的是 Windows,请使用 Powershell 的 (New-Object System.Net.WebClient).DownloadFile 命令。
  • 假设存储桶是打开的

标签: amazon-s3 amazon-ec2 packer


【解决方案1】:

在实例中安装awscli 并使用iam_instance_profile 授予实例从S3 获取文件的权限。

【讨论】:

    【解决方案2】:

    我可以设想一个无效的实例。

    在 aws 上构建映像时,您使用本地凭据。虽然映像正在构建,但此构建打包程序映像有一个打包程序用户,而不是您,因此不是您的凭据,并且无法访问 S3(如果是私有的)

    一个选项https://github.com/enmand/packer-provisioner-s3

    两个选项,使用本地外壳配置器,您使用 aws S3 cp 将 S3 文件下拉到您的机器,然后文件配置器上传到构建器映像中的正确文件夹,然后您可以使用远程外壳执行任何其他操作处理文件。之所以选择这个,是因为虽然代码比较多,但是共享构建的时候比较通用,其他的不需要安装其他的东西

    三个选项等待和等待。 2019 年打包器 GitHub 中提到了一项增强功能,可以使用本地汽车提供 S3 直通,但不在官方路线图上。

    【讨论】:

      【解决方案3】:

      假设 awscli 已安装在 Ec2 上,请在 shell 配置程序中使用以下示例命令。

      sudo aws s3 cp s3://bucket-name/path_to_folder/file_name /home/ec2-user/temp

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-16
        • 1970-01-01
        • 2021-02-05
        • 1970-01-01
        • 2017-04-27
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多