我正在尝试使用Packer创建自定义AMI。
我希望在自定义AMI上安装一些特定的软件,而我的设置存储在S3存储桶中。但是似乎没有像cfn-init那样在packers中直接下载S3文件的方法。
那么,有没有办法在EC2实例上使用packers下载文件呢?
我正在尝试使用Packer创建自定义AMI。
我希望在自定义AMI上安装一些特定的软件,而我的设置存储在S3存储桶中。但是似乎没有像cfn-init那样在packers中直接下载S3文件的方法。
那么,有没有办法在EC2实例上使用packers下载文件呢?
我可以想象一种情况,这种方法是无效的。
在使用aws构建镜像时,您使用本地凭据。虽然正在构建镜像,但此构建程序映像具有packer用户,而不是您的凭据,因此无法访问S3(如果为私有)
一种选择 https://github.com/enmand/packer-provisioner-s3
第二个选择是使用local-shell provisioner将S3文件下载到您的计算机上,然后使用file provisioner将其上传到构建器映像中的正确文件夹,然后可以使用remote-shell对文件进行任何其他处理。我选择这个选项,尽管它需要更多代码,但当我分享我的构建时,其他人不需要安装其他东西,这样更加通用
第三个选择是等待。在2019年,packer GitHub发表了一个增强功能,可以使用本地车辆提供S3直通功能,但它不在官方路线图中。
wget
命令;如果您在 Windows 上,则使用 Powershell 的(New-Object System.Net.WebClient).DownloadFile
命令即可。 - Adil B