我对封隔器很陌生。我听说您可以添加一个迷途的后处理器,以获得一个简单的VM来测试您的新映像。基于这些例子,我认为下面的代码会起作用。但是,我得到了这个错误。
* Post-processor failed: ovf file couldn't be found这是我的封隔器配置/代码。
source "digitalocean" "test" {
image = "ubuntu-20-10-x64"
region = "nyc1"
size = "s-1vcpu-1gb"
snapshot_name = "me-image-{{isotime \"2006-01-02T15:04\"}}"
snapshot_regions = [
"nyc1", "sgp1", "lon1", "nyc3", "ams3", "fra1", "tor1", "sfo2", "blr1",
"sfo3"
]
tags = ["delete"]
ssh_username = "root"
}
# a build block invokes sources and runs provisioning steps on them.
build {
sources = ["source.digitalocean.test"]
provisioner "file" {
source = "jump_host"
destination = "/tmp"
}
post-processor "vagrant" {
keep_input_artifact = true
provider_override = "virtualbox"
output = "out.box"
}
}我的包装版本是1.6.6
我的流浪版是2.2.10
发布于 2021-10-18 18:20:00
这是不可能的
我想要packer做的是为数字海洋建立一些东西,然后给我一个副本,这样我就可以测试它,而不需要支付来自数字海洋的vm,也不需要互联网。这是不可能的,经过一些思考,这是合理的原因。
Digitalocean并不只是下载Ubuntu20ISO并将其扔到服务器上。他们配置和更改映像,使其在硬件上得到优化。期望他们的特殊映像在某些标准VM上运行,在消费硬件上运行是不现实的。另外,我甚至不确定有什么方法可以从DO下载快照。
但在尝试做这件事时,我忽略了流浪汉的全部意义。如果我正在测试一个数字海洋图像,我将永远需要连接和支付数字海洋。“流浪汉”的设计是为了让我在不需要每次点击界面的情况下很容易做到这一点。所以我甚至不应该把这个放在家里的电脑上。
PS:非常感谢你@RedGrin-抱怨花时间增加了这个月的旧帖子。
发布于 2021-10-15 21:25:02
有同样的问题-通过蛮力[偶然]找到了答案。
所以我和你在同一条船上,但我设法找到了解决方案的提示-- 这里
警告:我正在使用导出的.vmdk,所以这可能不是您的解决方案,因为您正在寻找从数字海洋直接获取它的方法?
暗示
build {
sources = ["source.null.autogenerated_1"]
post-processor "shell-local" {
inline = ["echo Doing stuff..."]
}
post-processors {
post-processor "vagrant" {
--> include = ["image.iso"]
output = "proxycore_{{.Provider}}.box"
vagrantfile_template = "vagrantfile.tpl"
}
post-processor "vagrant-cloud" {
access_token = "${var.cloud_token}"
box_tag = "hashicorp/precise64"
version = "${local.version}"
}
}
}这不是在Vagrant 页面上列出的,而是在上。我只是想试试运气,结果成功了。
工作实例
source "null" "example" {
communicator = "none"
}
build {
sources = ["source.null.example"]
post-processor "artifice" {
files = ["example-disk001.vmdk", "example.ovf"]
keep_input_artifact = true
}
post-processor "vagrant" {
include = ["example-disk001.vmdk", "example.ovf"]
keep_input_artifact = true
provider_override = "virtualbox"
}
}https://stackoverflow.com/questions/66129963
复制相似问题