2017-09-22 1 views
0

私はリモートHyperVクラスター上のリソースを管理するカスタムTerraformプロバイダーに取り組んでいます。TerraformのカスタムプロバイダーがプロビジョニングにIPを渡す

VMリソースが作成されたら、私はremote-execプロビジョナを起動したいと思います。

どのようにしてhost-argumentをremote-execプロビジョナに渡すのですか?

たとえば、ホストの値にtestのIPを入力したいとします。 (DHCPによってIPが提供された後)

provisioner "hyperv-winrm" { 
    vm_name  = "test" 

    connection { 
    type  = "winrm" 
    user  = "Administrator" 
    password = "${var.admin_password}" 
    host  = "<<IP/DNS GOES HERE>>" 
    } 
} 
+0

あなたはVMを作成するために、テラフォームを使用している方法を示しすることはできますか? AFAIK TerraformにはHyperVプロバイダーがないので、ここで何をしているのかよく分かります。 – ydaetskcoR

+0

@ydaetskcoR私自身のHyperVプロバイダを開発しています。ありがとう。 –

+0

よかった。答えは '$ {self.private_ip}'を使うことにほとんど変わりはありませんが、それはその属性を属性としてエクスポートするリソースに依存しています。 – ydaetskcoR

答えて

0

ここに答えがあります。リソースから

は、関数を作成:(更新が指定でき、削除等。)

func resourceVMCreate(d *schema.ResourceData, meta interface{}) error { 

    // Create VM 
    // Wait for IP 

    // Set connection info which will be used by provisioner 
    d.SetConnInfo(map[string]string{ 
     "type": "winrm", 
     "host": *vm.IpAddress, 
     "user": *vm.UserName, 
     "password": *vm.Password 
    } 

    return err 
} 
関連する問題