我目前正在使用 Terraform 和一些 Powershell 来自动化我所有的基础设施,我正在寻找一种完全自动化的方法来为我的所有 VM 配置更新管理。我能够部署自动化帐户、Log Analytics 工作区和链接服务资源来管理两者之间的连接。但是,我无法在自动帐户上启用更新管理服务。
是否有任何可自动化的方式(ps、tf、api 等)让我可以简单地为我的自动化帐户启用更新管理?
azure azure-powershell azure-resource-manager terraform-provider-azure
我需要帮助每周安排 ec2 卷快照,并且需要使用 terraform aws 的云监视规则存档\删除超过 1 个月的备份。
请指导我使用 terraform 编写云监视规则。
问候, 公羊
terraform terraform-template-file terraform-provider-azure terraform-provider-aws terraform-provider-gcp
如何使用 Terraform 11.14 启用 Azure Key Vault 日志记录?
我正在使用 VScode 编辑器运行 Terraform,该编辑器使用 PowerShell 作为默认 shell,当我尝试验证它或通过 VScode、外部 PowerShell 或 CMD 运行 terraform init/plan/apply 时,会出现相同的错误。
\n\n在我添加虚拟机创建代码之前,代码运行没有任何问题。我已经将 Variables.tf、terraform.tfvars 和下面的主要 Terraform 代码组合在一起。
\n\nterraform.tfvars
\n\nweb_server_location       = "West US 2"\nresource_prefix           = "web-server"\nweb_server_address_space  = "1.0.0.0/22"\nweb_server_address_prefix = "1.0.1.0/24"\nEnvironment               = "Test"\n变量.tf
\n\nvariable "web_server_location" {\n  type = string\n}\n\nvariable "resource_prefix" {\n  type = string\n}\n\nvariable "web_server_address_space" {\n  type = string\n}\n\n#variable for network range\n\nvariable "web_server_address_prefix" {\n  type = string\n}\n\n#variable for Environment\nvariable "Environment" {\n  type = string\n}\nterraform_example.tf
\n\n# Configure the Azure Provider\nprovider "azurerm" …我正在使用模块。这是我的文件结构 - Provisioner 和模块是不同的文件夹。堆栈中的 main.tf 调用模块。
  > provisioner 
        >stack
           |--main.tf
           |--variables.tf
  > module (folder)  
    |--aks
    |     |--main.tf
    |     |--outputs.tf
    |     |--variables.tf
    |
    |--postgresql
    |     |--main.tf
    |     |--outputs.tf
    |     |--variables.tf
当我在 provsioner 目录中运行“terraform apply”命令时,预计会在应用完成后返回输出。我没有得到输出。当我运行 'terraform output' 时,我得到-“状态文件要么没有定义输出,要么所有定义的输出都是空的。请在您的配置中使用 output 关键字定义一个输出并运行 terraform refresh 使其可用。如果您正在使用插值,请确认插值不为空”
我想知道为什么会这样?
我正在尝试创建一个具有公共 IP 和私有 IP 配置的应用程序网关(标准 V2),但在创建时仅创建公共 IP,而找不到私有 IP 配置。我在我的 terraform 代码中根本没有看到任何错误。我不确定我在哪里遗漏了东西。下面是我的地形代码。
provider "azurerm" {
  version = "=1.44"
}
provider "null" {
  version = "=2.1"
}
resource "azurerm_public_ip" "appgwip" {
  name                = "appgwtestpip"
  location            = "Southeast Asia"
  resource_group_name = "myrgname"
  allocation_method   = "Static"
  sku  = "Standard"
}
resource "azurerm_application_gateway" "appgw" {
    depends_on  = [azurerm_public_ip.appgwip]
    name = "testappgw-sea"
    resource_group_name = "myrgname"
    location  = "Southeast Asia"
    sku {
        name = "Standard_v2"
        tier = "Standard_v2"
        capacity = 2
    }
    gateway_ip_configuration {
        name = "APPGW-IPCONFIG-test" …azure terraform azure-application-gateway terraform-provider-azure
我正在尝试使用 azurerm_resource_group_template_deployment
resource "azurerm_resource_group_template_deployment" "my-arm-template" {
  parameters_content = { 
    location            = azurerm_resource_group.my_rg.location
  }
  name                = "my_name"
   ...
}
我收到一个错误:
Inappropriate value for attribute "parameters_content": string required.
我应该如何定义 parameters_content 部分?
我正在尝试创建一种动态方法来在由最终用户配置的多个环境中创建虚拟机。尝试使用嵌套循环进行循环。展平函数、计数等,但还没有找到实现我的目标的方法。我有 terrafrom.tfvars 具有以下结构:
Bigip_devices = {
    main_hub = {
      region             = "eastus"
      azs                = ["1"]            #Azure availabilty zones
      vnet_name               = "vnet-main"   # Vnet name to deploy to
      bigip_instance_count = 2            # Number of instnaces to delpoy
      cluster             = "yes"         # Deploy as a cluster or stand alone device
      version             = ""            # Leave blank for default value
      sku                 = ""            # Leave blank for default value - f5-bigip-virtual-edition-25m-best-hourly
      offer               = ""            # Leave blank for default value - f5-big-ip-best
      instance_type …我正在使用 terraform 版本 0.14.3。我有一个用于创建 Azure 网络接口卡的模块,如下所示:
resource "azurerm_network_interface" "nic" {
  name                = var.nic_name
  location            = var.location
  resource_group_name = var.rg_name
  ip_configuration {
    name                          = var.ipconfig_name
    subnet_id                     = var.subnet_id
    private_ip_address_allocation = "Dynamic"
  }
}
其输出定义为:
output "nic_id" {
     value = azurerm_network_interface.nic.id 
}
我在这个父模块中调用这个模块:
module "NIC" {
  source = "./NIC"
  for_each = var.nics
  nic_name      = each.value.nic_name
  location      = "eastus2"
  rg_name       = "abc-test-rg"
  ipconfig_name = each.value.ipconfig_name
  subnet_id     = <subnet_id>
}
output "nic_ids" {
  value = [for k in module.NIC.nic_id : k.id]
} 
NIC 值定义如下: …
我正在尝试部署带有 Terraform 的 VM 扩展的 Azure Windows VM,它将为 Windows VM 安装 ADDS 角色。
我的本地计算机上有一个名为install_adds.ps1的用于安装的 Powershell 脚本文件
VM Extension的Terraform文件如下:
resource "azurerm_virtual_machine_extension" "main" {
  name                 = "extensionTest"
  virtual_machine_id   = azurerm_virtual_machine.main.id
  publisher            = "Microsoft.Azure.Extensions"
  type                 = "CustomScript"
  type_handler_version = "2.0"
  settings = <<SETTINGS
    {
        "commandToExecute": "powershell.exe ./install_adds.ps1"
    }
SETTINGS
}
我已部署 VM 扩展 Terraform 文件但无法正常工作
我认为我的 Terraform 文件语法错误,并且 Windows 不运行我的 PowerShell 脚本。
有什么方法可以通过 Terraform VM 扩展文件运行我的本地 PowerShell 脚本吗?