Azure Linux vmss扩展

时间:2020-04-02 18:14:47

标签: terraform terraform-provider-azure

我已使用Linux vmss的新terraform模块将监视代理作为自定义扩展包括在内,但是,当一切完成后,实例不具有“最新模型”,并手动重新启动vmss以获取更新的模型但我不想手动干预。先前的模块不需要手动重新映像即可获得最新的模块。我有想念什么吗?

扩展名的代码

 "azurerm_virtual_machine_scale_set_extension" "oms" {
 name                         = "OmsAgentForLinux"
 depends_on                   = [azurerm_linux_virtual_machine_scale_set.vmss]
 virtual_machine_scale_set_id = azurerm_linux_virtual_machine_scale_set.vmss.id
 publisher                    = "Microsoft.EnterpriseCloud.Monitoring"
 type                         = "OmsAgentForLinux"
 type_handler_version         = "1.11"
  settings = <<-BASE_SETTINGS
 {
  "workspaceId" : "xxxx"
 }
 BASE_SETTINGS

 protected_settings = <<-PROTECTED_SETTINGS
 {
 "workspaceKey" : "xxxxx"
  }
 PROTECTED_SETTINGS
 }

用于创建Azure vmss的模块

  resource "azurerm_linux_virtual_machine_scale_set" "example" {
  name                = "example-vmss"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  sku                 = "Standard_F2"
  instances           = 1
  admin_username      = "administer"

 admin_ssh_key {
 username   = "administer"
 public_key = file("~/.ssh/id_rsa.pub")
  }

 source_image_reference {
 publisher = "Canonical"
 offer     = "UbuntuServer"
 version   = "latest"
  }

 os_disk {
  storage_account_type = "Standard_LRS"
 caching              = "ReadWrite"
  }

  network_interface {
  name    = "example"
  primary = true

    ip_configuration {
    name      = "internal"
    primary   = true
    subnet_id = azurerm_subnet.internal.id
     }
     }
    }

旧模块未指定操作系统

 "azurerm_virtual_machine" "demovm"

1 个答案:

答案 0 :(得分:0)

这是预期行为,因为默认情况下,升级策略设置为手动。在这种模式下,当您更新比例集模型时,现有VM不会发生任何事情。

how to add an extension to all VMs in my virtual machine scale set

如果更新策略设置为自动,请重新部署模板 具有新的扩展名属性将更新所有VM。

如果更新策略设置为手动,请先更新扩展程序,然后 然后手动更新VM中的所有实例。

在这种情况下,如果您不想手动干预,则可以尝试使用自动升级策略。

参考: