当 Terraform 脚本引用的内容 link 更新时,Azure Runbook 的内容未更新
Content of the Azure Runbook not getting updated when the content link referred to by the Terraform script is updated
我正在使用 azurerm_automation_runbook 模块创建 Azure Automation Runbook。下面是我正在使用的代码。
resource "azurerm_automation_runbook" "automation_runbook" {
name = var.automation_runbook_name
location = var.location
resource_group_name = var.resource_group_name
automation_account_name = var.automation_account_name
runbook_type = "PowerShell"
log_verbose = "true"
log_progress = "true"
publish_content_link {
uri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/c4935ffb69246a6058eb24f54640f53f69d3ac9f/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1"
}
}
我能够使用上面的代码成功创建一个 Runbook。但问题是当我将 publish_content_link
块中的 uri
更改为 https://raw.githubusercontent.com/azureautomation/automation-packs/master/200-connect-azure-vm/Runbooks/Connect-AzureVM.ps1 并应用(terraform apply
检测到更改并成功应用)时,新的 PowerShell 脚本不是反映在 Azure 门户的 Azure Automation Runbook 中,它仍然显示旧的 PowerShell 脚本。
任何有关如何解决此问题的帮助将不胜感激。
我在我的环境中对此进行了测试,我注意到仅更改 publish_content_link
中的 uri 并没有真正对 runbook 脚本进行任何更改。
为了在脚本中应用更改,您还必须更改 Runbook 的 name
而不是仅更改 uri
.
因此,在您更改 terraform 代码中的名称和 uri 并进行应用后。它将在门户中使用新名称和内容重新创建 Runbook。
输出:
或
如果您只想更改内容而不更改名称,那么您可以将 link 中的脚本保存在本地并将内容传递给已创建的 runbook,它将成功更新内容。
我也用下面的代码测试了这个:
provider "azurerm"{
features{}
}
provider "local" {}
data "azurerm_resource_group" "example" {
name = "ansumantest"
}
resource "azurerm_automation_account" "example" {
name = "account1"
location = data.azurerm_resource_group.example.location
resource_group_name = data.azurerm_resource_group.example.name
sku_name = "Basic"
}
# added after the runbook was created
data "local_file" "pscript" {
filename = "C:/Users/user/terraform/runbook automation/connect-vm.ps1"
}
resource "azurerm_automation_runbook" "example" {
name = "Get-AzureVMTutorial"
location = data.azurerm_resource_group.example.location
resource_group_name = data.azurerm_resource_group.example.name
automation_account_name = azurerm_automation_account.example.name
log_verbose = "true"
log_progress = "true"
description = "This is an example runbook"
runbook_type = "PowerShell"
content = data.local_file.pscript.content # added this to update the content
}
输出:
我正在使用 azurerm_automation_runbook 模块创建 Azure Automation Runbook。下面是我正在使用的代码。
resource "azurerm_automation_runbook" "automation_runbook" {
name = var.automation_runbook_name
location = var.location
resource_group_name = var.resource_group_name
automation_account_name = var.automation_account_name
runbook_type = "PowerShell"
log_verbose = "true"
log_progress = "true"
publish_content_link {
uri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/c4935ffb69246a6058eb24f54640f53f69d3ac9f/101-automation-runbook-getvms/Runbooks/Get-AzureVMTutorial.ps1"
}
}
我能够使用上面的代码成功创建一个 Runbook。但问题是当我将 publish_content_link
块中的 uri
更改为 https://raw.githubusercontent.com/azureautomation/automation-packs/master/200-connect-azure-vm/Runbooks/Connect-AzureVM.ps1 并应用(terraform apply
检测到更改并成功应用)时,新的 PowerShell 脚本不是反映在 Azure 门户的 Azure Automation Runbook 中,它仍然显示旧的 PowerShell 脚本。
任何有关如何解决此问题的帮助将不胜感激。
我在我的环境中对此进行了测试,我注意到仅更改 publish_content_link
中的 uri 并没有真正对 runbook 脚本进行任何更改。
为了在脚本中应用更改,您还必须更改 Runbook 的 name
而不是仅更改 uri
.
因此,在您更改 terraform 代码中的名称和 uri 并进行应用后。它将在门户中使用新名称和内容重新创建 Runbook。
输出:
或
如果您只想更改内容而不更改名称,那么您可以将 link 中的脚本保存在本地并将内容传递给已创建的 runbook,它将成功更新内容。
我也用下面的代码测试了这个:
provider "azurerm"{
features{}
}
provider "local" {}
data "azurerm_resource_group" "example" {
name = "ansumantest"
}
resource "azurerm_automation_account" "example" {
name = "account1"
location = data.azurerm_resource_group.example.location
resource_group_name = data.azurerm_resource_group.example.name
sku_name = "Basic"
}
# added after the runbook was created
data "local_file" "pscript" {
filename = "C:/Users/user/terraform/runbook automation/connect-vm.ps1"
}
resource "azurerm_automation_runbook" "example" {
name = "Get-AzureVMTutorial"
location = data.azurerm_resource_group.example.location
resource_group_name = data.azurerm_resource_group.example.name
automation_account_name = azurerm_automation_account.example.name
log_verbose = "true"
log_progress = "true"
description = "This is an example runbook"
runbook_type = "PowerShell"
content = data.local_file.pscript.content # added this to update the content
}
输出: