Создание БД и пользователя с Terraform для DBaaS
Для безопасной работы с чувствительными данными, такими как пароль пользователя, можно воспользоваться переменными Terraform. Для этого объявите переменную c параметром sensitive = true
. Для таких переменных Terraform будет скрывать вывод в консоль.
1variable "db_user_password" { 2 type = string 3 sensitive = true 4}
В описании ресурса vkcs_db_user
используйте ее в качестве значения соответствующего поля:
password = var.db_user_password
Чтобы задать значение переменной, используйте один их вариантов (подробнее):
-
Создать файл
secret.tfvars
. Записатьdb_user_password="YOUR_DB_PASSWORD"
в него и передать его в качестве аргумента командыterraform apply -var-file="secret.tfvars"
. Таким образом, чувствительные данные будут храниться отдельно от остальной конфигурации. -
Задать через переменную окружения с префиксом
TF_VAR
. Terraform автоматически их подхватит и применит в конфигурации:- Mac or Linux:
export TF_VAR_db_user_password=YOUR_DB_PASSWORD
- Windows:
$Env:TF_VAR_db_usernamedb_user_password = "YOUR_DB_PASSWORD"
- Mac or Linux:
Пример создания базы данных и пользователя:
1variable "db_user_password" { 2 type = string 3 sensitive = true 4} 5 6resource "vkcs_db_database" "db-database" { 7 name = "testdb" 8 dbms_id = vkcs_db_instance.db-instance.id 9 charset = "utf8" 10 collate = "utf8_general_ci" 11} 12 13resource "vkcs_db_user" "db-user" { 14 name = "testuser" 15 password = var.db_user_password 16 17 dbms_id = vkcs_db_instance.db-instance.id 18 19 databases = [vkcs_db_database.db-database.name] 20}