Подготовка конфигурации
Создайте новую директорию для хранения конфигурационных файлов, например, oblakoteka_cloud_space
Обратите внимание, что каждая конфигурация должна находиться в отдельной директории.
В созданной директории создайте файл с расширением .tf для настройки конфигурации, например, main.tf
В файле нужно:
-
Настроить провайдера;
-
Настроить подключение к API используя файл key.json;
-
Описать создание нужных ресурсов (хранилище, бакет, ключи доступа);
-
При необходимости описать загрузку данных.
НАСТРОЙКА ПРОВАЙДЕРА
terraform {
required_providers {
clouparduz = {
source = "tf.cloupard.uz/clouparduz/clouparduz"
}
}
}
|
Где:
sourсe – адрес источника провайдера, tf.cloupard.uz/clouparduz/clouparduz$
version – версия провайдера.
Примечание: В файле можно не указывать версию. Если версия не указана, то при инициализации terraform скачивается последняя версия. Если версия указана – скачивается именно она.
|
НАСТРОЙКА ПОДКЛЮЧЕНИЕ К API
Получите файл key.json для аутентификации и далее для указания параметров подключения используйте файл key.json.
Обратите внимание, что файл key.json должен находиться в той же директории, где сохранен проект ИЛИ должен быть указан полный путь к нему в виде C:\user\keys\key.json
|
provider "clouparduz" {
key_file = "key.json"
}
|
СОЗДАНИЕ ХРАНИЛИЩА
resource "clouparduz_storage" "storage_test" {
name = "mystorage"
}
|
Где:
clouparduz_storage - тип ресурса,
storage_test - имя ресурса для Terraform,
name - имя создаваемого хранилища.
см. подробное описание ресурса clouparduz_storage
СОЗДАНИЕ БАКЕТА
Например, со следующими параметрами:
Класс хранилища: Тёплое,
Версионирование: Выключено,
Анонимный доступ: Нет.
resource "clouparduz_storage_bucket" "mybucket" {
storage_id = clouparduz_storage.storage_test.id
name = "mybucket"
note = "bucket1 on mystorage"
# класс хранилища - тёплое
storage_class_id = var.storage_warm
# анонимный доступ: только чтение
anonymous_access_type = 1
move_into_commercial_mode_on_test_out = false
# версионирование: выключено
versioning = false
}
|
Где:
name - имя создаваемого хранилища
note – описание создаваемого бакета, необязательный параметр
storage_class_id - класс хранилища, на котором размещается бакет
anonymous_access_type - анонимный доступ, устанавливаемый для бакета
move_into_commercial_mode_on_test_out - автоматический переход в коммерческий режим
versioning = версионирование.
см. подробное описание ресурса clouparduz_storage_bucket
ГЕНЕРАЦИЯ КЛЮЧЕЙ ДОСТУПА К БАКЕТУ
resource "clouparduz_storage_access_key" "mykey" {
storage_id = clouparduz_storage.storage_test.id
note = "mykey for mystorage"
}
|
Где:
# storage_id - идентификатор хранилища, генерируется Terraform
# note - пользовательское описание для генерируемого ключа доступа.
см. подробное описание ресурса clouparduz_storage_access_key