Openstack-尝试引导映像时,仅允许卷支持的服务器使用零磁盘的风味

问题描述

我尝试使用openstack_compute_instance_v2从k3Os映像配置实例。

我的openstack提供程序无需磁盘即可提供风味。

整个block-device-mapping文档对我来说还不是很清楚。

我想做的是从映像启动实例,然后使用cloud-init机制在给定的存储上安装os,重新引导并从此新存储中启动。

到目前为止,我使用这样的代码

resource "openstack_images_image_v2" "osimage" {
  name = "k3os-amd64.iso"
  image_source_url = "https://github.com/rancher/k3os/releases/download/v0.19.2-dev.4/k3os-amd64.iso"
  container_format = "bare"
  disk_format      = "raw"
  properties = {
    os_distro   = "k3os"
    kernel_args = "k3os.mode=install k3os.debug=true k3os.datasources=openstack"
  }
}
resource "openstack_compute_instance_v2" "node" {
  for_each = local.nodes
  image_id = openstack_images_image_v2.osimage.id
  ... 
  block_device {
    uuid                  = openstack_images_image_v2.osimage.id
    boot_index            = 0
    delete_on_termination = true
    source_type           = "image"
    destination_type      = "local"
  }

  block_device {
    boot_index            = 1
    delete_on_termination = true
    source_type           = "blank"
    destination_type      = "volume"
    volume_size           = each.value.volume_size
    volume_type           = each.value.volume_type
  }
}

这导致我出错:

错误消息:{“ forbidden”:{“ message”:“只允许卷支持的服务器使用零磁盘的风味。”,“ code”:403}}

我也尝试对第一个block_device使用boot_index = 1,但根据this code,它必须为0,

否则加注Mapping image to local is not supported

我尝试了许多其他组合,并且只能从openstack_blockstorage_volume_v3引导,并将image_id设置为我的图像。但是,此安装程序始终从该卷启动,并且不允许我在安装后从目标卷启动。

对于任何提示,我将很高兴如何最终将我的block_devices配置为引导映像以进行安装过程,并在重新引导后使用目标存储作为主要的可引导设备。

我还尝试将boot_index=0设置在空白block_device上,并将boot_index=1设置为从iso映像创建的卷,因此从理论上讲,虚拟机应检查第一个设备是否不可引导并从第二个卷运行系统(例如在常规PC中),但在“没有可启动设备”上失败。错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)