我已使用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"
答案 0 :(得分:0)
这是预期行为,因为默认情况下,升级策略设置为手动。在这种模式下,当您更新比例集模型时,现有VM不会发生任何事情。
从how to add an extension to all VMs in my virtual machine scale set,
如果更新策略设置为自动,请重新部署模板 具有新的扩展名属性将更新所有VM。
如果更新策略设置为手动,请先更新扩展程序,然后 然后手动更新VM中的所有实例。
在这种情况下,如果您不想手动干预,则可以尝试使用自动升级策略。
参考: