我正在尝试使用 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
我正在尝试自动部署 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,发现它刚刚关闭。 …
如何在 terraform 中检查具有两个值的变量字符串。
\n我想用两个字符串值检查变量中的字符串,类似于下面的代码。
\nvirtual_network_type = var.vnet_type == "External" || "Internal" ? var.vnet_type : null\n\nRun Code Online (Sandbox Code Playgroud)\n但 terraform 抛出以下错误消息
\nError: 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\nRun Code Online (Sandbox Code Playgroud)\n我们可以在地形中做到这一点吗?
\n使用 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 来创建和部署逻辑应用程序。
我们还在逻辑应用中创建了工作流程。
我们希望自动创建逻辑应用程序及其中的工作流程。
例如,请参阅下面的工作流程:
https://learn.microsoft.com/en-us/azure/logic-apps/tutorial-build-schedule-recurring-logic-app-workflow
我尝试按照以下链接通过 Azure Dev Ops Pipeline 使用 Terraform 部署应用程序服务
我的地形文件如下:
网络应用程序.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
我试图提供一个简单的使用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) 我是Terraform的新手,所以甚至不确定这样的事情是否可行。举例来说,假设我有一个模板,该模板中部署了一个Azure资源组和一个密钥库。然后说我有另一个模板,可以将虚拟机部署到同一资源组中。是否可以在不破坏密钥库和资源组的情况下使用虚拟机模板进行破坏?我们试图将大型解决方案的各个部分划分开来,而不必将其全部放在一个模板中,并且我们希望能够独立管理每个部分而又不影响其他部分。
在相关说明中...我们将状态文件存储在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
Terraform 中是否有 if else 选择?Azure 门户中已经手动配置了许多资源。有没有办法通过在 Terraform 中的 if else select 语句来检测资源,以便如果资源退出,那么我将其用作数据,否则创建资源。