ฉันใช้ Terraform เพื่อจัดเตรียมเครื่องเสมือนในสภาพแวดล้อม ESXi ฉันทำสิ่งนี้โดยนำเข้า Ubuntu Focal Cloud Image ด้วยตนเองเป็นเทมเพลตและทำการโคลนเครื่องเสมือนจากมันด้วยพารามิเตอร์ที่ให้มาโดยการรวมกันของคุณสมบัติ vApp และ extra_config:
vapp {
คุณสมบัติ = {
"ชื่อโฮสต์" = "การทดสอบพื้นผิว"
# ผู้ใช้อูบุนตู
"รหัสผ่าน" = "xxx"
"ข้อมูลผู้ใช้" = base64encode(ไฟล์("${path.module}/cloudinit/kickstart.yml"))
}
}
extra_config = {
"guestinfo.metadata" = base64encode(ไฟล์("${path.module}/cloudinit/metadata.yml"))
"guestinfo.metadata.encoding" = "ฐาน 64"
"guestinfo.userdata" = base64encode(ไฟล์("${path.module}/cloudinit/userdata.yml"))
"guestinfo.userdata.encoding" = "ฐาน 64"
}
น่าเสียดายที่ cloud-init ไม่ได้ใช้อะไรจากข้อมูลเมตา/userdata.yml เหตุผลน่าจะเป็นในขณะที่ sudo DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force
ผลตอบแทน พบแหล่งข้อมูล 2 แห่ง = ทั้งหมด: OVF VMware
, cloud_id
เห็นเท่านั้น อ๊อฟ
.
การผ่านของ extra_config ใช้งานได้ vmware-rpctool 'info-get guestinfo.userdata'|base64 --decode.vmware-rpctool
ให้เนื้อหาที่ถูกต้อง - ดังนั้นปัญหาจะต้องอยู่ที่ไหนสักแห่งใน cloud-init
ฉันจะบอก cloud-init ให้บังคับใช้เพียงไฟล์ วีเอ็มแวร์
แหล่งข้อมูล?