LINUX.ORG.RU
ФорумJob

Добавить поддержку NAT сети в terraform-provider-virtualbox

 , ,


0

2

Добрый день!

Заказ разместил здесь:

https://freelansim.ru/tasks/272253

Есть terraform провайдер для virtualbox https://github.com/terra-farm/terraform-provider-virtualbox

В нем отсутствует поддержка Сети NAT.

Вот ссылки на документацию сети NAT для virtualbox

https://www.virtualbox.org/manual/ch06.html#network_nat_service

https://www.virtualbox.org/sdkref/interface_i_network_adapter.html#a7cdb4cf56...

https://www.virtualbox.org/manual/ch08.html#vboxmanage-natnetwork

Я уже пытался добавить сеть NAT в terraform-provider-virtualbox, но оно не работало

Больше ссылок и информации здесь.

https://github.com/terra-farm/terraform-provider-virtualbox/issues/75

Скорее всего нужно будет добавить в библиотеку go-virtualbox.

Вот мои наработки - https://github.com/terra-farm/go-virtualbox/pull/11

Такой вариант устроит? Если да - напиши мне в почту isage.dna at gmail.com

resource "virtualbox_natnetwork" "vmnet10" {
    name = "vmnet10"
    dhcp = true
    network = "192.168.6.0/24"
}

resource "virtualbox_vm" "squid" {
  count     = 2
  name      = format("node%02d", count.index + 1)
  image     = "virtualbox.box"
  cpus      = 1
  memory    = "256 mib"

  network_adapter {
    type           = "hostonly"
    host_interface = "vboxnet0"
  }

  network_adapter {
    type           = "natnetwork"
    nat_network = "vmnet10"
  }
}
$ ./terraform show
# virtualbox_natnetwork.vmnet10:
resource "virtualbox_natnetwork" "vmnet10" {
    dhcp    = true
    id      = "vmnet10"
    name    = "vmnet10"
    network = "192.168.6.0/24"
}

# virtualbox_vm.squid[0]:
resource "virtualbox_vm" "squid" {
    cpus   = 1
    id     = "33b77412-e417-44f0-9576-f1be3b674704"
    image  = "virtualbox.box"
    memory = "256 mib"
    name   = "node01"
    status = "running"

    network_adapter {
        device                 = "IntelPro1000MTServer"
        host_interface         = "vboxnet0"
        ipv4_address           = "192.168.56.111"
        ipv4_address_available = "yes"
        mac_address            = "080027417123"
        status                 = "up"
        type                   = "hostonly"
    }
    network_adapter {
        device                 = "IntelPro1000MTServer"
        ipv4_address           = "192.168.6.13"
        ipv4_address_available = "yes"
        mac_address            = "0800279E2056"
        nat_network            = "vmnet10"
        status                 = "up"
        type                   = "natnetwork"
    }
}

# virtualbox_vm.squid[1]:
resource "virtualbox_vm" "squid" {
    cpus   = 1
    id     = "50f1de45-9d93-41dd-855a-38b78b8cd651"
    image  = "virtualbox.box"
    memory = "256 mib"
    name   = "node02"
    status = "running"

    network_adapter {
        device                 = "IntelPro1000MTServer"
        host_interface         = "vboxnet0"
        ipv4_address           = "192.168.56.110"
        ipv4_address_available = "yes"
        mac_address            = "08002755B360"
        status                 = "up"
        type                   = "hostonly"
    }
    network_adapter {
        device                 = "IntelPro1000MTServer"
        ipv4_address           = "192.168.6.12"
        ipv4_address_available = "yes"
        mac_address            = "0800272FA943"
        nat_network            = "vmnet10"
        status                 = "up"
        type                   = "natnetwork"
    }
}
iSage ★★★★ ()
Последнее исправление: iSage (всего исправлений: 1)
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=0