簡體   English   中英

讀取文件並將 output 保存到 local_file

[英]Read file and save output to local_file

我正在嘗試讀取 azurerm_linux_virtual_machine 上的文件內容並將其保存到 local_file,以便 ansible 劇本稍后可以引用它。 目前.tf 看起來像這樣

resource "azurerm_linux_virtual_machine" "vm" {
name                  = myvm
location              = myzone
resource_group_name   = azurerm_resource_group.azureansibledemo.name
network_interface_ids = [azurerm_network_interface.myterraformnic.id]
size                  = "Standard_DS1_v2"

os_disk {
    name              = "storage"
    caching           = "ReadWrite"
    storage_account_type = "Premium_LRS"
}

source_image_reference {
    publisher = "Canonical"
    offer     = "UbuntuServer"
    sku       = "16.04-LTS"
    version   = "latest"
}

computer_name  = myvm
admin_username = "azureuser"
disable_password_authentication = true
custom_data = base64encode(file("telnet.sh"))

admin_ssh_key {
    username       = "azureuser"
    public_key     = tls_private_key.ansible_ssh_key.public_key_openssh
}

boot_diagnostics {
    storage_account_uri = azurerm_storage_account.mystorageaccount.primary_blob_endpoint
}


}

output "myoutput" {
    value = file("/tmp/output.yml")
}

resource "local_file" "testoutput" {
  content = <<-DOC
    ${file("/tmp/output.yml")}
    DOC
    filename = "test.yml"
}

但是當我運行 terraform 計划時,我收到以下錯誤

Error: Invalid function argument

  on main.tf line 181, in resource "local_file" "testoutput":
 181:     ${file("/tmp/output.yml")}

Invalid value for "path" parameter: no file exists at /tmp/output.yml; this
function works only with files that are distributed as part of the
configuration source code, so if this file will be created by a resource in
this configuration you must instead obtain this result from an attribute of
that resource.

output myoutput 很好並且沒有返回錯誤,這只發生在我添加資源 local_file 時。 有沒有辦法將文件的 output 獲取到 local_file?

TF不支持將遠程文件復制到本地。

解決方法是在local-exec中使用scp ,如此處所示 例如:

provisioner "local-exec" {
  command = "scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${var.openstack_keypair} ubuntu@${openstack_networking_floatingip_v2.wr_manager_fip.address}:~/client.token ."
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM