Azure Microsoft监视代理无法配置Terraform

Azure Microsoft监视代理无法配置Terraform,azure,terraform,terraform-provider-azure,Azure,Terraform,Terraform Provider Azure,尝试使用Terraform将MMA代理安装为VM部署的一部分。我确信失败是由于我正在使用的扩展的语法造成的,但是我没有运气确定它应该是什么。代理已安装,但不会加入日志分析工作区。我将工作区ID和主键存储在密钥库中,并在执行时将它们传递到Terraform中。从VM上的扩展日志来看,它似乎获得了正确的工作区ID,但我无法判断它是否正确接收了密钥。以下是我使用的Terraform语法: resource "azurerm_virtual_machine_extension" "lawks-test"

尝试使用Terraform将MMA代理安装为VM部署的一部分。我确信失败是由于我正在使用的扩展的语法造成的,但是我没有运气确定它应该是什么。代理已安装,但不会加入日志分析工作区。我将工作区ID和主键存储在密钥库中,并在执行时将它们传递到Terraform中。从VM上的扩展日志来看,它似乎获得了正确的工作区ID,但我无法判断它是否正确接收了密钥。以下是我使用的Terraform语法:

resource "azurerm_virtual_machine_extension" "lawks-test" {
  name = "MMA_${azurerm_virtual_machine.test.name}"
  location             = "${azurerm_resource_group.test.location}"
  resource_group_name  = "${azurerm_resource_group.test.name}"
  virtual_machine_name = "${azurerm_virtual_machine.test.name}"
  publisher            = "Microsoft.EnterpriseCloud.Monitoring"
  type                 = "MicrosoftMonitoringAgent"
  type_handler_version = "1.0"

  settings = <<SETTINGS
        {
          "workspaceId": "${data.terraform_remote_state.corerg.on_workspace_id}"
        }
        SETTINGS

  protected_settings = <<PROTECTED_SETTINGS
        {
          "workspaceKey": "${var.on_laws_key}"
        }
        PROTECTED_SETTINGS
资源“azurerm\u虚拟机\u扩展”“草坪测试”{
name=“MMA_${azurerm_virtual_machine.test.name}”
location=“${azurerm_资源_组.test.location}”
resource_group_name=“${azurerm_resource_group.test.name}”
virtual_machine_name=“${azurerm_virtual_machine.test.name}”
publisher=“Microsoft.EnterpriseCloud.Monitoring”
type=“MicrosoftMonitoringAgent”
键入\u handler\u version=“1.0”

设置=刚刚测试过,下面是一个工作示例:

resource "azurerm_resource_group" "test" {
  name     = "acctestRG1"
  location = "UK West"
}

resource "azurerm_virtual_network" "test" {
  name                = "acctvn"
  address_space       = ["10.0.0.0/16"]
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
}

resource "azurerm_subnet" "test" {
  name                 = "acctsub"
  resource_group_name  = "${azurerm_resource_group.test.name}"
  virtual_network_name = "${azurerm_virtual_network.test.name}"
  address_prefix       = "10.0.2.0/24"
}

resource "azurerm_network_interface" "test" {
  name                = "acctni"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"

  ip_configuration {
    name                          = "testconfiguration1"
    subnet_id                     = "${azurerm_subnet.test.id}"
    private_ip_address_allocation = "dynamic"
  }
}

resource "azurerm_virtual_machine" "test" {
  name                  = "acctvm1z"
  location              = "${azurerm_resource_group.test.location}"
  resource_group_name   = "${azurerm_resource_group.test.name}"
  network_interface_ids = ["${azurerm_network_interface.test.id}"]
  vm_size               = "Standard_DS2_v2"

  storage_image_reference {
    publisher = "MicrosoftWindowsServer"
    offer     = "WindowsServer"
    sku       = "2016-Datacenter-smalldisk"
    version   = "latest"
  }

  storage_os_disk {
    name              = "myosdisk1"
    caching           = "ReadWrite"
    create_option     = "FromImage"
    managed_disk_type = "Standard_LRS"
  }

  os_profile {
    computer_name  = "hostname1"
    admin_username = "testadmin"
    admin_password = "Password1234!qwe"
  }

  os_profile_windows_config {
    provision_vm_agent = "true"
  }
}

resource "azurerm_virtual_machine_extension" "test" {
  name                 = "omsagent"
  location             = "${azurerm_resource_group.test.location}"
  resource_group_name  = "${azurerm_resource_group.test.name}"
  virtual_machine_name = "${azurerm_virtual_machine.test.name}"
  publisher            = "Microsoft.EnterpriseCloud.Monitoring"
  type                 = "MicrosoftMonitoringAgent"
  type_handler_version = "1.0"

  settings = <<SETTINGS
        {
          "workspaceId": "workspaceId"
        }
SETTINGS

  protected_settings = <<PROTECTED_SETTINGS
        {
          "workspaceKey": "workspaceKey"
        }
PROTECTED_SETTINGS # NOTICE THIS STARTS EXACTLY AT THE START OF THE STRING
}
resource“azurerm\u资源组”测试{
name=“acctestRG1”
地点=“英国西部”
}
资源“azurerm_虚拟_网络”“测试”{
name=“acctvn”
地址空间=[“10.0.0.0/16”]
location=“${azurerm_资源_组.test.location}”
resource_group_name=“${azurerm_resource_group.test.name}”
}
资源“azurerm_子网”测试{
name=“acctsub”
resource_group_name=“${azurerm_resource_group.test.name}”
virtual_network_name=“${azurerm_virtual_network.test.name}”
地址前缀=“10.0.2.0/24”
}
资源“azurerm_网络_接口”“测试”{
name=“acctni”
location=“${azurerm_资源_组.test.location}”
resource_group_name=“${azurerm_resource_group.test.name}”
ip_配置{
name=“testconfiguration1”
subnet_id=“${azurerm_subnet.test.id}”
私有\u ip\u地址\u分配=“动态”
}
}
资源“azurerm\u虚拟机”“测试”{
name=“acctvm1z”
location=“${azurerm_资源_组.test.location}”
resource_group_name=“${azurerm_resource_group.test.name}”
network_interface_id=[“${azurerm_network_interface.test.id}”]
vm\u size=“标准\u DS2\u v2”
存储\图像\参考{
publisher=“MicrosoftWindowsServer”
offer=“WindowsServer”
sku=“2016数据中心小型磁盘”
version=“最新”
}
存储操作系统磁盘{
name=“myosdisk1”
缓存=“读写”
创建\u option=“FromImage”
托管磁盘\u type=“标准\u LRS”
}
操作系统配置文件{
计算机\u name=“主机名1”
admin\u username=“testadmin”
admin_password=“Password1234!qwe”
}
操作系统配置文件windows配置文件{
准备金_vm_agent=“true”
}
}
资源“azurerm\u虚拟机\u扩展”“测试”{
name=“omsagent”
location=“${azurerm_资源_组.test.location}”
resource_group_name=“${azurerm_resource_group.test.name}”
virtual_machine_name=“${azurerm_virtual_machine.test.name}”
publisher=“Microsoft.EnterpriseCloud.Monitoring”
type=“MicrosoftMonitoringAgent”
键入\u handler\u version=“1.0”

设置=感谢回复。我通过尝试手动安装发现了问题所在。azurerm_log_analytics_工作区资源有两个与ID相关的属性:

id - The Log Analytics Workspace ID

我不正确地尝试使用“id”,这是错误的。一旦我使用了“workspace\u id”属性,安装工作正常…没有更改地形代码的格式


我经常发现Terraform缺少的一点是文档。

你应该传递字符串给那些人,你传递给他们的是什么?另外,看看这里,我觉得没问题,除了可能
设置
受保护的设置
应该正好位于字符串的开头(关闭的设置)您可以检查用于在Azure和vm之间进行交互的代理是否工作正常。@4c74356b41感谢DSC上的链接…其中包含一些有用的信息…只是没有解决我试图解决的问题。我正在传递字符串…您可以在日志文件中看到它正在获取我传入的工作区ID。我在输出中的任何地方都没有看到guid,所以我不知道。正确格式化地形文件,开始with@4c74356b41我不明白你对格式化的最初评论是什么意思。我的格式有什么不对?你可以接受你自己的答案,并考虑我的回答。
id - The Log Analytics Workspace ID
workspace_id - The Workspace (or Customer) ID for the Log Analytics Workspace