Перед началом работы с облачными ресурсами Selectel через Terraform рекомендуем ознакомиться с документацией по провайдеру Selectel/OpenStack.
В данном репозитории находятся примеры Terraform модулей, используемых для создания инфраструктуры в облаке Selectel.
- Инициализировать Terraform Backend
terraform init
- Создать файл
main.tf
, где описана необходимая инфраструктура (пример ниже - созданиеSimple File Storage
)
module "sfs" {
source = "modules/sfs"
os_network_id = var.nat_network_id
os_subnet_id = var.nat_subnet_id
sfs_size = var.sfs_size
sfs_volume_type = var.sfs_volume_type
os_availability_zone = var.os_availability_zone
}
- Для проверки и применения настроек необходимо запустить команды
terraform plan/apply
terraform plan
terraform apply
В репозитории можно найти пример использования модулей. В корне репозитория созданы *.tf
файлы, которые можно использовать как пример вызова модулей.
Для их использования достаточно перейти в корень репозитория и инициализировать Terraform:
terraform init
Далее можно скорректировать некоторые параметры в файле main.tf
, которые передаются в модули, например, объём SFS, имя кластера и другие.
Затем необходимо задать переменные, в которых будут содержаться данные от аккаунта Selectel, в котором будет развёрнута инфраструктура:
selectel_domain_name
, ID аккаунта, например, 123123selectel_user_admin_user
, сервисный пользователь с нужными правамиselectel_user_admin_password
, пароль от сервисного пользователя
Переменные можно задать несколькими способами:
- В качестве переменных окружения (для этого нужно добавить перед названием переменной
TF_VAR_
):
export TF_VAR_selectel_domain_name=123123
export TF_VAR_selectel_user_admin_user=foo
export TF_VAR_selectel_user_admin_password=bar
terraform plan/apply
- Ввести вместе с командой
terraform plan/apply
с помощью параметра-var
:
terraform plan/apply \
-var="selectel_domain_name=123123" \
-var="selectel_user_admin_user=foo" \
-var="selectel_user_admin_password=bar"
- Ввести с клавиатуры, если переменные не были заданы любым другим способом
После успешного выполнения команды terraform apply
вы должны увидеть в своём аккаунте новый проект, в котором будут запущены все модули (MKS, SFS, vm, CRaaS и др.)
- craas - создание Container as a Service
- flavor - создание flavor (тип инстанса)
- floatingip - создание плавающего ip адреса
- image_datasource - считывание айдишника образа
- keypair - создание ключевой пары для подключения по SSH
- mks - набор модулей для создания Selectel Managed Kubernetes
- k8s-cluster - создание master ноды k8s
- k8s-cluster-standalone - создание managed kubernetes кластера
- k8s-nodegroup - создание compute ноды k8s
- k8s-nodegroup-gpu - создание compute ноды с GPU k8s
- nat - создание nat сети
- network - создание локальной сети
- os_project_with_user - создание проекта в облаке Selectel
- s3 - создание объектного хранилища s3
- s3-bucket - создание s3 бакета
- s3-credentials - создание s3 параметров авторизации
- selectel-token - создание токена аккаунта Selectel
- sfs - создание файлового хранилища
- vm - создание виртуального облачного сервера
- volume - создание облачного диска