KVMがTerraformを介してVMゲストを展開しようとしています。
ゲスト仮想マシンがデプロイされましたが、IPを取得できません。
私は何が間違っていましたか?
これは私のmain.tfです。
terraform {
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
}
}
}
provider "libvirt" {
uri = "qemu:///system"
}
resource "libvirt_volume" "centos7-qcow2" {
name = "centos7.qcow2"
pool = "default"
source = "http://......qcow2"
format = "qcow2"
}
data "template_file" "user_data" {
template = "${file("${path.module}/cloud_init.cfg")}"
}
data "template_file" "cloudinit_network" {
template = "${file("${path.module}/network.cfg")}"
vars = {}
}
resource "libvirt_cloudinit_disk" "commoninit" {
name = "commoninit.iso"
user_data = "${data.template_file.user_data.rendered}"
network_config = data.template_file.cloudinit_network.rendered
}
resource "libvirt_domain" "gw2" {
name = "gw2"
memory = "8192"
vcpu = 4
cloudinit = libvirt_cloudinit_disk.commoninit.id
qemu_agent = true
network_interface {
addresses = ["10.100.86.201"]
bridge = "br0"
#wait_for_lease = true
}
boot_device {
dev = [ "hd", "network"]
}
disk {
volume_id = "${libvirt_volume.centos7-qcow2.id}"
}
console {
type = "pty"
target_type = "serial"
target_port = "0"
}
graphics {
type = "spice"
listen_type = "address"
autoport = true
}
}
output "ips" {
value = libvirt_domain.gw2.*.network_interface.0.addresses
}
私のnetwork.cfgファイル:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp6: false
ご協力ありがとうございます!
私のTerraformバージョン:linux_amd64のTerraform v1.0.10
- プロバイダregistry.terraform.io/dmacvicar/libvirt v0.6.11
- プロバイダーregistry.terraform.io/hashicorp/template v2.2.0
答え1
libvirt_network
使用すべき事項は次のとおりです。
mode = "bridge"
ファイルの下でnetwork.cfg
次のものを使用する必要があります。
network:
version: 1
config:
- type: physical
name: eth0
subnets:
- type: static
address: 10.94.13.27/22
gateway: 10.94.13.1
dns_nameservers: [ 10.94.244.11 ]
これはcloud initが固定IPを設定することを意味します。