问题标签 [packer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1645 浏览

packer - Packer: Using npm install in packer script - fails with command not found error

I've been playing with packer lately and found it an amazing tool. But I'm failing to use installed tools in the installation script.

Here's an example packer template I've been playing with (I've know there are better ways to use this with scripts and provisioners. but for simplicity sake I'm learning with this) :

And I'm getting the following error message:

amazon-ebs: sudo: npm: command not found

I know npm installs with nodejs (at least from my experience) so I'm probably missing something. I guess this would also happen when I try to use similar platform install tools as:pip, gem etc...

0 投票
2 回答
584 浏览

amazon-web-services - 从打包程序实例下载文件

  • 我正在使用 Packer 创建 AMI。
  • 因此,Packer 创建了一个临时安全组和密钥对等并启动了一个 Insatnce。在我的用例中,安装完所有软件包后,我需要运行一些测试。因此,结果是在 Packer 启动的同一个实例上生成的。

我想要那些结果。基本上我想在触发打包程序构建的机器上下载结果文件。打包程序本身是否有办法下载任何或任何其他方式。

在此先感谢您的帮助。

0 投票
1 回答
9770 浏览

amazon-web-services - 如何使 EC2 用户数据在使用 Packer 制作的全新 AMI 上工作

我可以很好地构建 AMI 映像。但是他们已经停止使用 EC2 用户数据:

有用户数据:

我可以启动一个普通的 Ubuntu 映像:

它有效:

/tmp/i_have_user_data

但是,如果我使用 Packer 基于该 AMI 构建一个 AMI:

...并以与以前相同的方式运行,/tmp 中没有任何内容。但是,如果您运行ec2metadata,显然会有用户数据:

我很确定这是一个状态问题,删除状态文件将使这一切神奇地工作。或者,有一个技巧可以让云最终的新贵脚本工作,这可能是坏的。反正我还没找到。

更新

我通过将用户数据脚本变成了一个bootook来使它工作:

仍在寻找他们停止工作的原因。Cloud Init 的文档越来越好,但仍有一段路要走。

0 投票
2 回答
24828 浏览

docker - Docker 镜像格式

我想在没有 docker 的情况下构建一个 Docker 映像。我看过Packer,但它需要在构建器主机上安装 Docker。

我查看了Docker Registry API 文档,但似乎没有这些信息。

我猜该图像只是一个 tarball,但我想查看格式的完整规范,即需要什么格式以及是否需要任何元数据文件。我可以尝试从注册表下载图像并查看里面的内容,但没有关于如何获取图像本身的信息。

我的项目的想法是实现一个脚本,该脚本从我编译的 atefacts 创建图像并将其上传到注册表。我想为此目的使用 OpenEmbedded,本质上这将是对 Bitbake 的扩展。

0 投票
1 回答
264 浏览

mysql - PERL PAR Packer MYSQL libmysql_.dll

我有在 mysql db 中执行一些更新/插入的 perl 脚本。我使用PAR::Packer. 我将它复制到另一台机器上(未安装 perl)并运行 PAR 包,由于缺少libmysql_.dll ,它失败并抛出错误。

0 投票
2 回答
4242 浏览

amazon-web-services - 在构建期间将 ebs 卷与打包器连接

我不确定这是否是正确的方法,但我想做的是通过打包程序缩短图像的构建时间。所需的步骤之一是复制大约 10GB 的数据并使其成为图像的一部分。目前我正在使用 shell 配置程序将其 sftp 到图像中。这需要很长时间。相反,我希望这些数据已经在 EBS 卷中,可以在构建时附加。由于它将作为块设备安装在亚马逊自己的网络中,因此传输将比 sftp 快得多。

我尝试在打包器中寻找这种方法,但那里没有太多。我将尝试看看是否可以使用 amazon-ebs 构建器中的 ami_block_device_mappings 可选参数来附加 ebs 卷。

如果有更好的方法我不知道请告诉我。谢谢。

0 投票
1 回答
1225 浏览

jenkins - Packer、Jenkins、Cloudformation,如何让它们协同工作?

首先,我很抱歉这个问题是在stackoverflow而不是堆栈交换下,我没有足够的积分来问它。

我创建了一个打包器模板,在其中创建了我的图像(图像包括我的应用程序的代码、nginx、php-fpm 和...)如果您以前使用过打包器,您将知道在过程结束时它会给你image_id,我需要使用这个image id来更新我在aws上的cloudformation模板,cloudformation模板将根据来自packer的image_id创建一个启动配置。稍后启动配置将用于创建一个自动缩放组,该组连接到 ELB(ELB 不在 cloudformation 下)。

以下是我的问题:

1-自动化从打包程序获取 id 和更新 cloudformation 模板的过程的最佳方法是什么?(详细说明,我需要以某种方式获取 id,现在我唯一能想到的是 bash 命令,但是如果我以后想使用詹金斯,这会导致问题。还有其他选择吗?)

2-假设我设法获得了 id,现在更新 cloudformation 模板的最佳策略是什么?(目前 aws CLI 是我唯一的选择更好的解决方案)?

2-如何使用詹金斯自动化这些整个过程?

0 投票
1 回答
3677 浏览

debian - 使用 Preseed 在 /etc/apt/sources.list 中设置镜像

我想自动创建我的 Debian 映像。

到目前为止,使用 Packer 0.7.1 和 Preseed 效果很好,我唯一不能正确的是/etc/apt/sources.list.

我希望它是这样的:

使用我当前的脚本,我只能获得最后两行,这不足以通过apt-get install.

这就是我尝试设置镜子和 apt 的方式preseed_wheezy.cfg

此外,这是我的打包器 JSON 文件和完整的preseed_wheezy.cfg

我为每一个建议感到高兴。

0 投票
2 回答
4388 浏览

vagrant - Packer + Vagrant - 从 ISO 创建 AMI

是否可以从 ISO 创建 AMI?

我正在实现一个构建系统,它使用基础 iso,修改它,安装东西,然后在 .ovf 和 A​​MI 中输出它。

.ovf 有效。但是对于 AMI,我能想到的只是它需要预先存在的 AMI。这个对吗?

有什么方法可以使用 iso 并生成 AMI?

谢谢。

0 投票
2 回答
2831 浏览

bash - Packer - 用于克隆私有存储库的 Shell 脚本配置器 - 自动启动 EC2 实例

我环顾四周,试图找出一种方法让 Packer 构建下载一个私有存储库,用于 ec2 ami 构建,该构建将用于在自动启动配置下启动新实例,让新创建的 ec2 实例获取私人回购。

似乎获取私有存储库最安全的方法是使用部署密钥,但我相信我必须手动将每个部署密钥添加到每个实例的存储库中……这违背了自动化目的,除非我做错了什么.

我想知道如何通过打包程序克隆私有存储库,无论是通过 shell 脚本还是其他方式。我知道我可以使用 Chef,但是当我唯一想做的事情是克隆 github 存储库时,我认为我不应该安装另一个依赖项。

我是否必须编写使用 https github 克隆 url 的发送/预期类型的​​脚本?

任何和所有的帮助表示赞赏。