Mar*_*obo 4 azure azure-virtual-machine terraform
在使用 Terraform 部署 Azure VM 后,我尝试在 Azure VM 上运行 bash 脚本。我尝试过不同的方法,但没有一个有效。对于“custom_data”,我假设该文件将被上传并执行,但是我什至没有在虚拟机内看到该文件。
我还查看了“azurerm_virtual_machine_extension”,但这并没有给我上传文件的选项,只能执行命令或从远程位置下载(由于要求无法使用 fileUris):
resource "azurerm_virtual_machine_extension" "test" {
name = "hostname"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
virtual_machine_name = "${azurerm_virtual_machine.test.name}"
publisher = "Microsoft.Azure.Extensions"
type = "CustomScript"
type_handler_version = "2.0"
settings = <<SETTINGS
{
"commandToExecute": "sh my_script.sh"
}
SETTINGS
tags = {
environment = "Production"
}
}
Run Code Online (Sandbox Code Playgroud)
resource "azurerm_virtual_machine" "middleware_vm" {
name = "${var.middleware_vm}"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.middleware.name}"
network_interface_ids = ["${azurerm_network_interface.middleware.id}"]
vm_size = "Standard_DS4_v2"
storage_os_disk {
name = "centos_os_disk"
caching = "ReadWrite"
create_option = "FromImage"
managed_disk_type = "Premium_LRS"
}
storage_data_disk {
name = "managed_backup_disk"
create_option = "Empty"
caching = "ReadWrite"
disk_size_gb = "256"
managed_disk_type = "Premium_LRS"
lun = 0
}
storage_image_reference {
publisher = "OpenLogic"
offer = "CentOS"
sku = "7.5"
version = "latest"
}
os_profile {
computer_name = "${var.middleware_vm}"
admin_username = "middlewareadmin"
custom_data = "${file("scripts/middleware_disk.sh")}"
}
Run Code Online (Sandbox Code Playgroud)
在 azurerm_virtual_machine_extension 中,您可以使用:
protected_settings = <<PROTECTED_SETTINGS
{
"script": "${base64encode(file(var.scfile))}"
}
PROTECTED_SETTINGS
Run Code Online (Sandbox Code Playgroud)
请参考我的回答
| 归档时间: |
|
| 查看次数: |
9284 次 |
| 最近记录: |