База знаний LinxCloud Services

Создание БД и пользователя с Terraform для DBaaS

Перед началом с работы с Terraform убедитесь, что вы установили Terraform и создали файл main.tf с необходимыми провайдерами.

Если у вас не создан инстанс базы данных, то следуйте инструкции и подготовьте файл database_instance.tf.

 

Создание БД и пользователя

Для безопасной работы с чувствительными данными, такими как пароль пользователя, можно воспользоваться переменными Terraform. Для этого объявите переменную c параметром sensitive = true. Для таких переменных Terraform будет скрывать вывод в консоль.

1variable "db_user_password" {
2  type      = string
3  sensitive = true
4}

 

В описании ресурса linxcs_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 Linuxexport TF_VAR_db_user_password=YOUR_DB_PASSWORD
    • Windows$Env:TF_VAR_db_usernamedb_user_password = "YOUR_DB_PASSWORD"

Пример создания базы данных и пользователя:

1variable "db_user_password" {
2  type      = string
3  sensitive = true
4}
5
6resource "cs_db_database" "db-database" {
7  name        = "testdb"
8  dbms_id = linxcs_db_instance.db-instance.id
9  charset     = "utf8"
10  collate     = "utf8_general_ci"
11}
12
13resource "linxcs_db_user" "db-user" {
14  name        = "testuser"
15  password    = var.db_user_password
16
17  dbms_id = linxcs_db_instance.db-instance.id
18
19  databases   = [linxcs_db_database.db-database.name]
20}
Что вас интересует?
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!