Я использую Terraform для предоставления виртуальных машин в среде ESXi. Я делаю это, однажды вручную импортировав Ubuntu Focal Cloud Image в качестве шаблона и клонировав из него виртуальные машины с параметрами, предоставленными комбинацией свойств vApp и extra_config:
вап {
свойства = {
"имя хоста" = "терраформ-тест"
# пользователь убунту
"пароль" = "ххх"
«пользовательские данные» = base64encode (файл («$ {path.module}/cloudinit/kickstart.yml»))
}
}
extra_config = {
"guestinfo.metadata" = base64encode(file("${path.module}/cloudinit/metadata.yml"))
"guestinfo.metadata.encoding" = "base64"
"guestinfo.userdata" = base64encode(file("${path.module}/cloudinit/userdata.yml"))
"guestinfo.userdata.encoding" = "base64"
}
К сожалению, cloud-init ничего не применяет из metadata/userdata.yml. Причина, по-видимому, в том, что пока sudo DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force
урожаи Найдено 2 источника данных = все: OVF VMware
, cloud_id
только видит овф
.
Передача материала extra_config работает, vmware-rpctool 'информация-получить guestinfo.userdata'|base64 --decode
дает правильное содержимое - поэтому проблема должна быть где-то в cloud-init.
Как указать cloud-init принудительно использовать только VMware
источник данных?