Перед началом с работы с 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 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 "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}