Ресурс для управления виртуальными серверами.
Обратите внимание
msk1;msk1 сервер всегда создается с публичным IP, поле floating_ip игнорируется;
Примеры использования
# Пример создания сервера с SSH-ключом
resource "regcloud_ssh_key" "example_key" {
name = "example_key"
public_key = file("./assets/id_rsa_example.pub")
}
resource "regcloud_server" "example_server1" {
name = "example_server_001"
size = "c1-m1-d10-hp"
image = "ubuntu-24-04-amd64"
region_slug = "openstack-msk1"
ssh_keys = [regcloud_ssh_key.example_key.fingerprint]
backups = false
lifecycle {
ignore_changes = [
ssh_keys # ключи указываются один раз при создании сервера и не обновляются
]
}
}
# Пример создания сервера с образом ОС или приложения
resource "regcloud_server" "example_server2" {
name = "example_server_002"
size = "c1-m1-d10-hp"
image = "ubuntu-24-04-amd64-docker" # будет создан сервер с приложением Docker
region_slug = "openstack-msk1"
backups = false
}
# Пример создания сервера с GPU
resource "regcloud_server" "example_server3" {
name = "example_server_003"
size = "c8-m32-d128-g1-a4000-gpu"
image = "ubuntu-24-04-amd64-gpu"
region_slug = "openstack-spb1"
backups = false
}
# Пример создания сервера на основе сделанного ранее снэпшота
resource "regcloud_server" "example_server4" {
name = "example_server_004"
size = "c1-m1-d10-hp"
image = regcloud_server_snapshot.example_snap.id # в качестве образа укажите id снэпшота
region_slug = "openstack-msk1"
backups = false
lifecycle {
ignore_changes = [
image # образ указывается один раз при создании сервера
]
}
}
# Пример создания нескольких одинаковых серверов с помощью count
resource "regcloud_server" "example_servers1" {
count = 2 # будет создано 2 одинаковых сервера
name = "example_server"
size = "c1-m1-d10-hp"
image = "ubuntu-24-04-amd64"
region_slug = "openstack-msk1"
backups = false
}
# Пример создания нескольких серверов в цикле for_each
locals {
servers = {
srv_spb = { region = "openstack-spb1", size = "c2-m2-d40-hp" }
srv_msk = { region = "openstack-msk1", size = "c4-m4-d80-hp" } # у серверов будут отличаться регионы и тарифы
}
}
resource "regcloud_server" "example_servers2" {
for_each = local.servers # цикл по элементам servers
name = each.key
size = each.value.size
image = "ubuntu-20-04-amd64-wireguard"
region_slug = each.value.region
backups = false
}
Schema
Required
name(string) — имя сервера,size(string) — тариф сервера,image(string) — образ ОС, приложения или ID снэпшота,region_slug(string) — регион, в котором будет располагаться сервер.
Optional
ssh_keys(list (string)) — список отпечатков SSH-ключей,backups(bool) — включение/выключение бэкапов,isp_license_size(string (nullable)) — тарифный план лицензии ispmanager,floating_ip (bool)— создание сервера с публичным IP, по умолчанию true.
Read-Only
id(number) — reglet ID,service_id(number) — ID аккаунта в Рег.облаке,created_at(string) — дата создания,updated_at(string) — дата последнего изменения,archived_at(string (nullable)) — дата удаления,status(string) — статус сервера,sub_status(string (nullable)) — подстатус,disk(number) — размер диска, ГБ,memory(number) — объем RAM, МБ,vcpus(number) — количество ядер vCPU,size_slug(string) — читаемый идентификатор тарифа,image_id(number) — ID образа, установленного на сервере,hostname(string) — hostname сервера,ip(string) — публичный IPv4-адрес,ipv6(string (nullable)) — публичный IPv6-адрес,ptr(string (nullable)) — PTR-запись,locked(bool) — заблокирован ли сервер (0 — нет, 1 — да),backups_enabled(bool) — включено ли резервное копирование (0 — нет, 1 — да).
Nested Schema: size
id(number),slug(string),name(string),disk(number),memory(number),vcpus(number),weight(number)price(number),price_month(number).
Nested Schema: image
id(number),slug(string),name(string),distribution(string (nullable)),min_disk_size(number),size_gigabytes(number),region_slug(string),type(string),private(bool),created_at(string),isp_license_size(string (nullable)).