【发布时间】:2020-10-27 21:37:17
【问题描述】:
我正在使用 terraform 进行 Azure 部署,并尝试将 ssh 密钥存储在 Azure 保管库中。如果密钥不存在于保险库中,我想创建并存储 ssh 密钥,否则我想重用密钥(如果存在)。
这是我尝试过的
- 首先独立创建保管库,因为它包含我的所有密钥
- 使用数据来测试密钥是否存在,但当密钥不存在时,我总是收到第 11 行错误。我不知道该怎么做。
- 注意:tls_private_key 不得重新运行,因为 ssh 密钥会更改。
data "azurerm_resource_group" "rg_transverse" {
name = "k8s-transversal-rg"
}
# Retrieving vault
data "azurerm_key_vault" "data-cluster-vault" {
name = "k8s-transverse-vault"
resource_group_name = data.azurerm_resource_group.rg_transverse.name
}
data "azurerm_key_vault_secret" "data-cluster-key-public-openssh" {
name = "cluster-key-public-openssh"
key_vault_id = "${data.azurerm_key_vault.data-cluster-vault.id}"
}
output "secret_value2" {
value = "${data.azurerm_key_vault_secret.data-cluster-key-public-openssh.value}"
}
# Creating ssh key only if doesn't exist
resource "tls_private_key" "cluster-key" {
count = (data.azurerm_key_vault_secret.data-cluster-key-public-openssh.value == "" ) ? 1 : 0
algorithm = "RSA"
rsa_bits = "4096"
}
# store ssh key into vault if created
resource "azurerm_key_vault_secret" "cluster-key-public-openssh" {
depends_on = [tls_private_key.cluster-key]
count = (data.azurerm_key_vault_secret.data-cluster-key-public-openssh.value == "" ) ? 1 : 0
name = "cluster-key-public-openssh"
value = tls_private_key.cluster-key[count.index].public_key_openssh
key_vault_id = data.azurerm_key_vault.data-cluster-vault.id
}
有什么想法吗? 谢谢
【问题讨论】:
标签: terraform