Packer - 1st:如何在机器中创建文件。第二:将机器导出到ova文件
Packer - 1st: How to create a file in the machine. 2nd: Export machine to ova file
我使用 Packer 创建一个模板文件,该文件通过 API 部署到我们的提供商。
该模板是使用 kickstart anaconda-ks.cfg.
从 CentOS 7.4 最小 ISO 文件构建的
在那个 kickstart 文件中,我正在配置要在我的模板中安装的包,在 kickstart 文件的 post-config 部分,我 运行 不同的 bash
命令来配置它。在这个 post-config 上,我还 运行 一些 cat > /path/file.sh <<EOF
将一些文件放在磁盘上。
第一名
其中一个文件非常大,虽然我尝试将其拆分成多个部分,但最后一个文件冻结了模板创建。我看不出我的代码有什么问题。在我看来,最后一个 cat >> /path/file.sh <<EOF
只是冻结了 Packer 的工作。
问题是是否有像 Terraform
中那样的任何方法来使用 Packer 目录结构中某处的模板文件,该文件将用作在我的模板中创建该 /path/file.sh
文件的源.
第二名
模板完成后,我需要将其导出到 .ova
文件,因为我的提供商不接受任何其他文件类型。
在我的 json 文件中,我使用的是构建器类型 virtualbox-iso
和 post-处理器类型 vagrant
,我想知道我该如何做最后一个部分 - 导出到 ova。
我的第一个想法是使用 ovftool
,但由于我是 packer 的新手,我不知道如何将其插入到我的 Packer 代码中。
请帮忙。
谢谢。
- 使用file provisioner
- 在您的模板中设置
"format": "ova"
并删除 vagrant
post-处理器,除非您也需要一个 vagrant box。 *) 见 virtualbox-iso: format
*) 如果你真的需要,你应该 运行 一个 shell-local post-provisioner 与 vagrant 并行将 ovf 转换为 ova 而不是设置格式,因为 vagrant box 很可能必须包含 ovf。
我使用 Packer 创建一个模板文件,该文件通过 API 部署到我们的提供商。
该模板是使用 kickstart anaconda-ks.cfg.
从 CentOS 7.4 最小 ISO 文件构建的在那个 kickstart 文件中,我正在配置要在我的模板中安装的包,在 kickstart 文件的 post-config 部分,我 运行 不同的 bash
命令来配置它。在这个 post-config 上,我还 运行 一些 cat > /path/file.sh <<EOF
将一些文件放在磁盘上。
第一名
其中一个文件非常大,虽然我尝试将其拆分成多个部分,但最后一个文件冻结了模板创建。我看不出我的代码有什么问题。在我看来,最后一个 cat >> /path/file.sh <<EOF
只是冻结了 Packer 的工作。
问题是是否有像 Terraform
中那样的任何方法来使用 Packer 目录结构中某处的模板文件,该文件将用作在我的模板中创建该 /path/file.sh
文件的源.
第二名
模板完成后,我需要将其导出到 .ova
文件,因为我的提供商不接受任何其他文件类型。
在我的 json 文件中,我使用的是构建器类型 virtualbox-iso
和 post-处理器类型 vagrant
,我想知道我该如何做最后一个部分 - 导出到 ova。
我的第一个想法是使用 ovftool
,但由于我是 packer 的新手,我不知道如何将其插入到我的 Packer 代码中。
请帮忙。
谢谢。
- 使用file provisioner
- 在您的模板中设置
"format": "ova"
并删除vagrant
post-处理器,除非您也需要一个 vagrant box。 *) 见 virtualbox-iso: format
*) 如果你真的需要,你应该 运行 一个 shell-local post-provisioner 与 vagrant 并行将 ovf 转换为 ova 而不是设置格式,因为 vagrant box 很可能必须包含 ovf。