Terraformを使用してvSphereにCoreOS仮想マシンを展開しようとするのは本当に困難です。私は、このようなネットワーク構成などの仮想マシンのカスタマイズの詳細を渡すために仮想マシンと点火プロバイダを作成するために、テラフォームののvSphere provierを使用していTerraformを使用してvSphereにCoreOS仮想マシンを導入する
# Configure the VMware vSphere Provider. ENV Variables set for Username and Passwd.
provider "vsphere" {
vsphere_server = "192.168.105.10"
allow_unverified_ssl = true
}
provider "ignition" {
version = "1.0.0"
}
data "vsphere_datacenter" "dc" {
name = "Datacenter"
}
data "vsphere_datastore" "datastore" {
name = "vol_af01_idvms"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}
data "vsphere_resource_pool" "pool" {
name = "Cluster_rnd/Resources"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}
data "vsphere_network" "network" {
name = "VM Network"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}
data "vsphere_virtual_machine" "template" {
name = "coreos_production"
datacenter_id = "${data.vsphere_datacenter.dc.id}"
}
# Create a folder
resource "vsphere_folder" "TestPath" {
datacenter_id = "${data.vsphere_datacenter.dc.id}"
path = "Test"
type = "vm"
}
#Define ignition data
data "ignition_networkd_unit" "vmnetwork" {
name = "00-ens192.network"
content = <<EOF
[Match]
Name=ens192
[Network]
DNS=8.8.8.8
Address=192.168.105.27/24
Gateway=192.168.105.1
EOF
}
data "ignition_config" "node" {
networkd = [
"${data.ignition_networkd_unit.vmnetwork.id}"
]
}
# Define the VM resource
resource "vsphere_virtual_machine" "vm" {
name = "terraform-test"
folder = "${vsphere_folder.TestPath.path}"
resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
datastore_id = "${data.vsphere_datastore.datastore.id}"
num_cpus = 2
memory = 1024
guest_id = "other26xLinux64Guest"
network_interface {
network_id = "${data.vsphere_network.network.id}"
}
disk {
name = "terraform-test.vmdk"
size = "${data.vsphere_virtual_machine.template.disks.0.size}"
eagerly_scrub = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
}
clone {
template_uuid = "${data.vsphere_virtual_machine.template.id}"
}
extra_config {
guestinfo.coreos.config.data.encoding = "base64"
guestinfo.coreos.config.data = "${base64encode(data.ignition_config.node.rendered)}"
}
}
:
は、これまでのところ、これは私が使用しているテラフォームファイルであります。
仮想マシン定義でextra_configプロパティを正しく使用しているかどうかはわかりません。そのプロパティのドキュメントはhereです。
仮想マシンは作成されますが、ネットワーク設定は適用されません。これは、イグニッションプロビジョニングが正しく機能していないことを意味します。
この特定のシナリオ(Vsphere環境とCoreOS仮想マシン)でTerraformを適切に設定する方法、特にguestinfoの設定については、どのような指針もありがとうございます。
テラフォームのv0.11.1、provider.ignition v1.0.0デベロッパー、provider.vsphere v1.1.0デベロッパー
のVMware ESXiの、6.5.0、5310538
CoreOS 1520.0.0
良い出発点は、レンダリングされた点火設定を出力して、それが予想通りであるかどうかを確認することです。それを行う方法についてガイダンスが必要な場合は、手を差し伸べてください。 – DanCat
@DanCat私はすでにそれを行い、ファイルは正しいです。 githubからの[this](https://github.com/coreos/tectonic-installer/issues/1729#issuecomment-323556282)のコメントに基づいて、私は自分の問題がそのvAppオプション設定に関係していると思っています。 (私たちが適切なVMwareライセンスを所有していないため、仮想マシンには欠けている)。私はVMwareのサポートに私の状況を説明する電子メールを送って、私は答えを待っています。 – amarruedo