【发布时间】:2021-08-04 21:55:24
【问题描述】:
我正在使用 cloud-init 在 Azure 中创建多个 VM,它们是并行创建的,当其中任何一个失败时,我可以在日志中看到:
错误:执行“/tmp/terraform_876543210.sh”时出错:进程以状态1退出
但我无法确定哪个 VM 出现故障,我需要对它们中的每一个进行 ssh 并检查 脚本路径似乎是为配置 Terraform
定义的有没有办法为 cloud-init 覆盖它,例如:/tmp/terraform_vmName_876543210.sh?
我没有使用配置器,而是 cloud-init,知道如何强制 terraform 覆盖 terraform sh 文件吗?
在我的脚本下面:
resource "azurerm_linux_virtual_machine" "example" {
name = "example-machine"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
size = "Standard_F2"
admin_username = "adminuser"
network_interface_ids = [
azurerm_network_interface.example.id,
]
admin_ssh_key {
username = "adminuser"
public_key = file("~/.ssh/id_rsa.pub")
}
os_disk {
caching = "ReadWrite"
storage_account_type = "Standard_LRS"
}
source_image_reference {
publisher = "Canonical"
offer = "UbuntuServer"
sku = "16.04-LTS"
version = "latest"
}
custom_data = base64encode(templatefile(
"my-cloud-init.tmpl", {
var1 = "value1"
var2 = "value2"
})
)
}
还有我的 cloud-init 脚本:
## template: jinja
#cloud-config
runcmd:
- sudo /tmp/bootstrap.sh
write_files:
- path: /tmp/bootstrap.sh
permissions: 00700
content: |
#!/bin/sh -e
echo hello
【问题讨论】:
标签: terraform terraform-provider-azure cloud-init