使用 terraform 很长时间后,我决定开始学习 azure bicep。到目前为止,我正在努力掌握逻辑。到目前为止,我已经尝试了存储帐户和密钥库的部署。我在这里所做的事情如下。
这正如我所期望的那样。
所以我想向前迈出一步。这就是我有点困惑的地方。
我想做的是使用相同的二头肌模板来创建一个新的秘密,但在不同的资源组中创建到不同的密钥保管库中。
现在,根据我对 azure 文档的理解,该模板带有默认值scope,在我的具体情况下,它以我的默认订阅为目标,并从终端运行我的二头肌模板,我使用命令
az deployment group create -f ./template.bicep -g <resource-group-name>
Run Code Online (Sandbox Code Playgroud)
这是我的模板:
// Default values I'm using to test
param keyVaultName string = '<keyvault-name>'
param managedIdentityName string = 'test-managed-identity'
param tenantCodes array = [
'elhm'
'feor'
]
// I'm using prefix so I dont need to create additional arrays
var keyVaultKeyPrefix = 'Client-Key-'
var storagePrefix = 'sthrideveur'
// Get a reference to key vault
resource keyVault 'Microsoft.KeyVault/vaults@2021-06-01-preview' …Run Code Online (Sandbox Code Playgroud) 我正在学习二头肌以及如何使用来部署天蓝色资源。我一直在进行密钥保管库部署,如下所示:
resource keyVault 'Microsoft.KeyVault/vaults@2021-06-01-preview' existing = {
name: keyVaultName
}
// Create key vault keys
resource keyVaultKeys 'Microsoft.KeyVault/vaults/keys@2021-06-01-preview' = [for tenantCode in tenantCodes: {
name: '${keyVault.name}/${keyVaultKeyPrefix}${tenantCode}'
properties: {
keySize: 2048
kty: 'RSA'
// storage key should only needs these operations
keyOps: [
'unwrapKey'
'wrapKey'
]
}
}]
Run Code Online (Sandbox Code Playgroud)
我现在想做的是以这种格式为每个部署创建一个 GUID,例如:
b402c7ed-0c50-4c07-91c4-e075694fdd30
Run Code Online (Sandbox Code Playgroud)
我找不到任何来源来实现这一目标。
谁能指导我走上正确的道路。
非常感谢您的帮助以及对初学者的耐心
我正在尝试自动部署 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,发现它刚刚关闭。 …
编辑:发现问题。我没有安装秘密驱动程序的插件。一旦安装,我就能让它工作
我在这里面临一个问题,我不知道我还能尝试什么来解决这个问题。
我有一个 aks 运行在一个 pod 上,该 pod 运行一个基本的 Web 应用程序todo list。没有什么太花哨或复杂的。我在这里尝试做的是授予 aks 集群访问 keyvault 的权限以及GET传递给 pod 的秘密。秘密只是一个ASPNETCORE_ENVIRONMENT: Development。
按照文档,我使用 helm 安装存储库:
helm repo add csi-secrets-store-provider-azure https://azure.github.io/secrets-store-csi-driver-provider-azure/charts
helm install csi csi-secrets-store-provider-azure/csi-secrets-store-provider-azure
Run Code Online (Sandbox Code Playgroud)
我在azure中创建了一个服务原则:
SERVICE_PRINCIPLE_CLIENT_SECRET = az ad sp create-for-rbac --skip-assignment --name sp-aks-keyvault
我查询了 clientId 和 Secret 并将它们传递到我的集群,如下所示:
kubectl create secret generic secrets-store-creds --from-literal clientid="ClientID" --from-literal clientsecret="Password"
Run Code Online (Sandbox Code Playgroud)
一旦一切都设置好了。我设置了这些部署。
部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp-deployment
namespace: default
labels:
app: webapp
spec:
replicas: 1
selector:
matchLabels: …Run Code Online (Sandbox Code Playgroud) 我有一个问题一直困扰着我,我在 Microsoft 网站上找不到答案。
我对实现一个 azure 数据浏览器很感兴趣,所以我想弄清楚这个资源的定价。当我前往 azure 定价页面并寻找数据探索时。我看到有 2 个定价列。一种用于 VM,一种用于Markup. 这是让我困惑的一点。这是什么Markup?我不完全理解它的用途以及为什么存在。