Terraform для настройки виртуальной машины, предоставляемой в Vsphere Hypervisor - PullRequest
0 голосов
/ 23 февраля 2020

Я могу подготовить виртуальную машину с помощью провайдера Vsphere и присоединиться к домену, но когда я попытался скопировать файл или выполнить команды powershell на подготовленном сервере, он не работает. в моем шаблоне я включил количество

resource "vsphere_virtual_machine" "vm" {

  count = var.vm_count
  resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id
....
}

, что позволит создавать несколько виртуальных машин на основе проверки ввода

в настройке windows

   customize {
      windows_options {
        computer_name = "${var.host_prefix}${count.index + 1}"
        join_domain           = "domainname"
        domain_admin_user     = "username"
        domain_admin_password = "password"
        time_zone             = "004"
      }

с включенным DHCP для

  network_interface {

      }

с приведенным выше кодом я могу создать виртуальную машину и успешно добавить их в контроллер домена.

Публикуйте, что я хотел бы включить iis в каждой виртуальной машине, я написал приведенный ниже код

  resource "null_resource" "example_provisioner" {


      connection {
        host =  "${var.host_prefix}${count.index + 1}"
        type  = "winrm"
        user  = "username"
        password = "password"
        insecure = false
        agent = true
      }



  // copy our example script to the server
  provisioner "file" {
    source      = "e://iis.ps1"
    destination = "c://iis.ps1"
  }


  // change permissions to executable and pipe its output into a new file
  provisioner "remote-exec" {
    inline = [
      "powershell.exe c://iis.ps1",
       ]
  }
  }

ниже является ошибкой нулевого предоставления, когда я использую имя хоста = "${var.host_prefix}${count.index + 1}". PS E: \ terraform \ vmware> план terraform var.host_prefix Введите значение: abchostname

var.vm_count Введите значение: 1

Ошибка: ссылка на «count» в неисчисляемом контексте

в строке 140 base.tf, в ресурсе "null_resource" "example_provisioner":

 140:     host = "${var.host_prefix}${count.index + 1}"

Объект "count" может использоваться только в блоках "resource" и "data", и только если установлен аргумент "count".

может кто-нибудь помочь мне выполнить команды powershell на вновь подготовленных виртуальных машинах с использованием ресурса vpshere с параметрами count.

...