标签: terraform-provider-azure

如何使用 Terraform 在现有 VNET 中创建私有 AKS 集群

我正在尝试使用 terraform 配置私有 AKS 集群。我想要将我的私有 AKS 群集连接到我使用 Azure 门户创建的现有 VNET 。

Azure 门户中提供了虚拟网络选项。请找到下面的图片。

在此输入图像描述

但是, azurerm_kubernetes_cluster上的 terraform 文档有关如何实现这一目标的信息非常有限。

main.tf在下面找到我的

resource "azurerm_kubernetes_cluster" "kubernetes_cluster" {                                                                
  name                    = var.cluster_name                                                                                
  location                = var.location                                                                                    
  resource_group_name     = var.resource_group_name                                                                         
  private_cluster_enabled = true                                                                                            
                                                                                                                            
  default_node_pool {                                                                                                       
    name           = "default"                                                                                              
    node_count     = var.node_count                                                                                         
    vm_size        = var.vm_size                                                                                            
    max_pods       = var.max_pods_count                                                                                     
  }                                                                                                                         
                                                                                                                            
  kube_dashboard {                                                                                                          
    enabled = true                                                                                                          
  }                                                                                                                         
                                                                                                                            
  network_profile {                                                                                                         
    network_plugin = "azure"   
  }                                                                                             
} 
Run Code Online (Sandbox Code Playgroud)

请注意,VNET 和要创建的集群共享相同的位置和资源组。

任何有关如何使用 Terraform 将私有 AKS 集群配置到现有 VNET 的帮助将不胜感激。

azure kubernetes terraform terraform-provider-azure azure-aks

2
推荐指数
1
解决办法
4497
查看次数

Azure Terraform Web App专用端点虚拟网络

我正在尝试自动部署 azure 虚拟网络和 azure Web 应用程序。在部署这些资源的过程中,一切都很顺利,没有出现任何错误。所以我想尝试激活private endpoint网络应用程序。这是我在 terraform 上的配置。

resource "azurerm_virtual_network" "demo-vnet" {
  name                = "virtual-network-test"
  address_space       = ["10.100.0.0/16"]
  location            = var.location
  resource_group_name = azurerm_resource_group.rg-testing-env.name
}

resource "azurerm_subnet" "front_end" {
  name                 = "Front_End-Subnet"
  address_prefixes     = ["10.100.5.0/28"]
  virtual_network_name = azurerm_virtual_network.demo-vnet.name
  resource_group_name  = azurerm_resource_group.rg-testing-env.name
  delegation {
    name = "testing-frontend"
    service_delegation {
      name    = "Microsoft.Web/serverFarms"
      actions = ["Microsoft.Network/virtualNetworks/subnets/action"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在网络应用程序本身上,我设置了此配置

resource "azurerm_app_service_virtual_network_swift_connection" "web-app-vnet" {
  app_service_id = azurerm_app_service.app-test.example.id
  subnet_id      = azurerm_subnet.front_end.id
}
Run Code Online (Sandbox Code Playgroud)

注意:在我的第一次部署中,swift 失败了,因为我没有在虚拟网络上进行委派,因此我必须在子网上添加委派才能运行 terraform。

设置好所有配置后,我运行我的 terraform,一切运行顺利,没有错误。完成后,我检查了我的网络应用程序Private Endpoint,发现它刚刚关闭。 …

azure-virtual-network terraform-provider-azure

2
推荐指数
1
解决办法
6891
查看次数

如何在 terraform 中检查具有两个值的变量字符串

如何在 terraform 中检查具有两个值的变量字符串。

\n

我想用两个字符串值检查变量中的字符串,类似于下面的代码。

\n
virtual_network_type = var.vnet_type == "External" || "Internal" ? var.vnet_type : null\n\n
Run Code Online (Sandbox Code Playgroud)\n

但 terraform 抛出以下错误消息

\n
Error: Invalid operand\n\xe2\x94\x82 \n\xe2\x94\x82   on ../../modules/test/test-instance.tf line 51, in resource "azurerm_api_management" "apim_demo":\n\xe2\x94\x82   51:  virtual_network_type = var.vnet_type == "External" || "Internal" ? var.vnet_type : null\n\xe2\x94\x82 \n\xe2\x94\x82 Unsuitable value for right operand: a bool is required.\n\xe2\x95\xb5\n
Run Code Online (Sandbox Code Playgroud)\n

我们可以在地形中做到这一点吗?

\n

terraform terraform-provider-azure

2
推荐指数
1
解决办法
8012
查看次数

Azure 静态 Web 应用程序 - 使用 Terraform 的应用程序设置

使用 Terraform,我创建了一个 Azure 静态 Web 应用程序,如下所示。但文档 没有演示如何设置资源的应用程序设置。对于普通的Azure功能应用程序,我们可以看到app_settings参数。但是如何为使用 Terraform 创建的 Azure 静态 Web 应用程序设置应用程序设置?

resource "azurerm_static_site" "example" {
  name                = "example"
  resource_group_name = "example"
  location            = "West Europe"
}
Run Code Online (Sandbox Code Playgroud)

我喜欢为 Azure 静态 Web 应用程序设置参数AAD_CLIENT_ID并配置身份提供程序,如 Microsoft文档中所示。AAD_CLIENT_SECRET

terraform terraform-provider-azure

2
推荐指数
1
解决办法
4502
查看次数

通过 Terraform 和 Azure 的逻辑应用工作流程

我们有 Terraform 来创建和部署逻辑应用程序。

我们还在逻辑应用中创建了工作流程。

我们希望自动创建逻辑应用程序及其中的工作流程。

例如,请参阅下面的工作流程:

在此输入图像描述 https://learn.microsoft.com/en-us/azure/logic-apps/tutorial-build-schedule-recurring-logic-app-workflow

terraform-provider-azure

2
推荐指数
1
解决办法
2万
查看次数

Terraform Plan 停留在 Terraform:ADO 管道中的计划任务

在此输入图像描述我尝试按照以下链接通过 Azure Dev Ops Pipeline 使用 Terraform 部署应用程序服务

Azure开发运营实验室

我的地形文件如下:

网络应用程序.tf

terraform {
  required_version = "~> 1.0" 
  backend "azurerm" {
    storage_account_name = "__terraformstorageaccount__"
    container_name       = "terraform"
    key                  = "terraform.tfstate"
    }
}

provider "azurerm" {
  tenant_id       = var.tenant_id
  client_id       = var.client_id
  client_secret   = var.client_secret
  subscription_id = var.subscription_id
  features {}
}

resource "azurerm_resource_group" "dev" {
  name     = var.resource_group_name
  location = var.resource_group_location
}

resource "azurerm_app_service_plan" "dev" {
  name                = var.appserviceplan
  location            = var.resource_group_location
  resource_group_name = var.resource_group_name

  sku {
    tier = "Free"
    size = …
Run Code Online (Sandbox Code Playgroud)

azure azure-web-app-service azure-devops azure-pipelines terraform-provider-azure

2
推荐指数
1
解决办法
4269
查看次数

Terraform Azure Key Vault - 超出了上下文截止日期

我试图提供一个简单的使用keyvault方法,但出现以下错误:azureterraform

错误:检索contactKeyVault:keyvault.BaseClient#GetCertificateContacts:发送请求失败:StatusCode=0 -- 原始错误:超出上下文截止时间

这是我的地形片段:

# data "azurerm_client_config" "current" {}
data "azuread_client_config" "current" {}

resource "azurerm_key_vault" "aks_key_vault" {
  name                        = var.aks_kv_name
  location                    = var.location
  resource_group_name         = var.rg_name
  enabled_for_disk_encryption = true
  tenant_id                   = data.azuread_client_config.current.tenant_id
#   soft_delete_retention_days  = var.aks_kv_soft_delete_retention_days
#   purge_protection_enabled    = false

  sku_name = var.aks_kv_sku

  access_policy {
    tenant_id = data.azuread_client_config.current.tenant_id
    object_id = data.azuread_client_config.current.object_id

    key_permissions     = var.aks_kv_key_permissions
    secret_permissions  = var.aks_kv_secret_permissions
    storage_permissions = var.aks_kv_storage_permissions
  }
  tags = merge(var.common_tags)
}

Run Code Online (Sandbox Code Playgroud)

这是variables.tf

# Key Vault related variables
aks_kv_name …
Run Code Online (Sandbox Code Playgroud)

azure terraform terraform-provider-azure

2
推荐指数
1
解决办法
1万
查看次数

Terraform的分层部署

我是Terraform的新手,所以甚至不确定这样的事情是否可行。举例来说,假设我有一个模板,该模板中部署了一个Azure资源组和一个密钥库。然后说我有另一个模板,可以将虚拟机部署到同一资源组中。是否可以在不破坏密钥库和资源组的情况下使用虚拟机模板进行破坏?我们试图将大型解决方案的各个部分划分开来,而不必将其全部放在一个模板中,并且我们希望能够独立管理每个部分而又不影响其他部分。

在相关说明中...我们将状态文件存储在Azure存储帐户中。如果我们将部署分解为多个分区的部署...每个部署应该有自己的状态文件还是应该都使用相同的状态文件?

terraform terraform-template-file terraform-provider-azure

1
推荐指数
1
解决办法
674
查看次数

Terraform with Azure - 如何创建存储帐户?

在与 Terraform 战斗了一天后,我在这里呼救。

Terraform v0.11.11
+ provider.azurerm v1.20.0
Run Code Online (Sandbox Code Playgroud)

我正在尝试从头开始创建一个新的资源组和一个存储帐户。看起来可以在没有存储帐户的情况下创建资源组:

resource "azurerm_resource_group" "rg1" {
  name     = "myResourceGroup"
  location = "West Europe"
}
Run Code Online (Sandbox Code Playgroud)

资源组已创建,目前不存在存储帐户。所以在这一点上我很高兴。我执行destroy并从头开始。

现在,在代码中,创建资源组后,我想创建一个存储帐户,因为稍后其他资源需要引用它。azurerm_storage_account需要的唯一引用是对资源组的引用。

关于 azurerm_storage_account 的信息 https://www.terraform.io/docs/providers/azurerm/d/storage_account.html

代码现在看起来像这样:

resource "azurerm_resource_group" "rg1" {
  name     = "myResourceGroup"
  location = "West Europe"
}

data "azurerm_storage_account" "stacc1" {
  name                     = "mystorageaccount"
  resource_group_name      = "${azurerm_resource_group.rg1.name}"
}
Run Code Online (Sandbox Code Playgroud)

我运行计划命令并获得以下输出:

$ terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will …
Run Code Online (Sandbox Code Playgroud)

azure terraform azure-storage-account terraform-provider-azure

1
推荐指数
1
解决办法
3359
查看次数

如果存在现有资源,则将其用作数据

Terraform 中是否有 if else 选择?Azure 门户中已经手动配置了许多资源。有没有办法通过在 Terraform 中的 if else select 语句来检测资源,以便如果资源退出,那么我将其用作数据,否则创建资源。

terraform terraform-provider-azure

1
推荐指数
1
解决办法
187
查看次数