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