#terraform #azure-pipelines
Вопрос:
Я хотел бы использовать betr-io/mssql в своей среде Terraform, которая находится в Azure DevOps.
Это мое providers.tf
provider "azurerm" {
alias = "main"
tenant_id = var.tenant_id
subscription_id = var.providers_azurerm["main"].subscription_id
features {
key_vault {
purge_soft_delete_on_destroy = true
recover_soft_deleted_key_vaults = true
}
}
}
provider "azurerm" {
tenant_id = var.tenant_id
subscription_id = var.providers_azurerm["subscription"].subscription_id
features {
key_vault {
purge_soft_delete_on_destroy = true
recover_soft_deleted_key_vaults = true
}
}
}
provider "betrio-mssql" {
debug = "false"
}
Это код терраформы в ‘main.tf’
locals {
}
terraform {
backend "azurerm" {
}
required_providers {
azurerm = {
source = "hashicorp/azurerm"
}
betrio-mssql = {
source = "betr-io/mssql"
version = "0.2.1"
}
}
}
В том ресурсе, который у меня есть …
resource "mssql_user" "auser" {
provider = betrio-mssql
server {
host = var.sql_host_name
database = var.sqldb_name
}
username = var.username
password = random_password.password[0].result
roles = [ "db_owner" ]
}
Но все равно получаю эту ошибку при инициализации
Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://www.terraform.io/docs/cli/plugins/signing.html
╷
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider
│ hashicorp/betrio-mssql: provider registry registry.terraform.io does not
│ have a provider named registry.terraform.io/hashicorp/betrio-mssql
│
│ All modules should specify their required_providers so that external
│ consumers will get the correct providers when using a module. To see which
│ modules are currently depending on hashicorp/betrio-mssql, run the
│ following command:
│ terraform providers
Есть идеи, что я делаю не так?
Я не смог найти много образцов по этому вопросу. Поэтому, публикуя здесь то, что я нашел, я пытался, но безуспешно. Если люди знают лучшие способы создания пользователей в базах данных, пожалуйста, не стесняйтесь.
Я знаю, что некоторые люди говорят, что это не обслуживание, связанное с терраформой, но этот пользователь создается для каждого Azure-DataFactory, который мы определяем? Каждый пользователь получает свою собственную схему с правами на нее, а также специальный пароль и строку подключения в Keyvault. Вот почему я хотел бы создать пароль из сценария терраформирования.
Ответ №1:
имя поставщика mssql
так в main.tf
нем должно быть
terraform {
...
required_providers {
...
mssql = {
source = "betr-io/mssql"
}
}
}