Подготовка конфигурации
Создайте новую директорию для хранения конфигурационных файлов, например, oblakoteka_cloud_space
Обратите внимание, что каждая конфигурация должна находиться в отдельной директории.
В созданной директории создайте файл с расширением .tf для настройки конфигурации, например, main.tf
В файле нужно.
1. Настроить провайдера.
2. Настроить подключение к API используя файл key.json.
3. Описать создание нужных ресурсов (хранилище, бакет, ключи доступа).
4. При необходимости описать загрузку данных.
НАСТРОЙКА ПРОВАЙДЕРА.
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.
СОЗДАНИЕ БАКЕТА.
Например, со следующими параметрами.
1. Класс хранилища: Тёплое.
2. Версионирование: Выключено.
3. Анонимный доступ: Нет.
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.