×

Подготовка конфигурации

Создайте новую директорию для хранения конфигурационных файлов, например, 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