Пример создания сервера

В качестве примера создадим сервер c конфигурацией:

  • системный диск — 10 ГБ;
  • количество виртуальных ядер процессора — 1 vCPU;
  • количество оперативной памяти — 1 Gb;
  • серия процессора — Intel Cascade Lake 2.2 GHz;
  • установленная ОС — Astra Linux 1.7.3.

Чтобы создать сервер с помощью Terraform:

  1. Создайте файл main.tf.
  2. Заполните файл в соответствии с примером конфигурации инфраструктуры. Подробнее см. репозиторий

    resource "t1_compute_ssh_key" "test" {
      name        = "test-ssh"
      login       = "root"
      public_keys = [
        "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCD+ACR4ubu98ti0aJOxL/Nwn6dlV++PCDY4HrkgScacPxIVbgo82P/qJ/VJEc29AbKYLGDsJ1NoK8xp320UCv1FCDHzZMKEeUQU8lfTvpN2hvTQlYp42ooGSsJgp4AM4wVYs8UBfbOerXquV/rQ6t7QiECJXq5e3gNu9C7hioOmw== "
      ]
    }
    
    data "t1_compute_flavor" "small" {
      vcpus      = 1
      ram        = 1
      family     = "general-purpose"
      cpu_series = "Intel Cascade Lake 2.2 GHz"
      hardware_group = "public"
    }
    
    data "t1_compute_image" "astra" {
      os_distro  = "astra"
      os_version = "1.7.3 Орёл"
    }
    
    data "t1_vpc_network" "default" {
      name = "default"
    }
    
    resource "t1_compute_instance" "vm" {
    
    # По умолчанию сервер после создания включен.
    # Если нужно, чтобы после создания сервер был выключен, используйте state = "off".
      state = "off"
    
    # Если установить true, то при удалении сервера автоматически удалятся все подключенные к нему диски.
      allow_delete_volumes = "false" 
      
      system_volume = {
        size = 10
      }
      flavor = data.t1_compute_flavor.small
      image  = data.t1_compute_image.astra
      ssh_keys = [
        t1_compute_ssh_key.test.id,
      ]
      network_interface = {
        subnet_id = data.t1_vpc_network.default.subnets[0].id
      }
    }
    
    # Подключение к серверу публичного IP-адреса, если он нужен.
    resource "t1_vpc_public_ip" "foo" {
      region = "ru-central1"
    }
    
    resource "t1_compute_floating_ip_associate" "associate" {
      instance_id = t1_compute_instance.vm.id
      floating_ip = t1_vpc_public_ip.foo.floating_ip
    }

    Примечание

    По умолчанию сервер после создания включен, то есть  state = "on". Если нужно, чтобы после создания сервер был выключен, используйте state = "off" внутри ресурса t1_compute_instance.

  3. Чтобы проверить корректность синтаксиса файла конфигурации инфраструктуры, выполните команду:

    terraform validate
  4. Чтобы посмотреть составленную конфигурацию инфраструктуры до её применения, выполните команду:

    terraform plan
  5. Чтобы развернуть сервер из составленной конфигурации инфраструктуры, выполните команду:

    terraform apply
  6. Прежде чем Terraform начнёт разворачивать сервер из составленной конфигурации инфраструктуры, он сначала покажет план действий и запросит ваше подтверждение:

    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value:
  7. Напечатайте yes и нажмите Enter.

В результате Terraform покажет сообщение: Apply complete! 

Проверьте, что сервер появился в проекте вашего аккаунта на портале T1 Облако.

Примечание

С помощью Terraform можно заказать сервис Cloud Backup (Резервные копии). Для этого используйте ресурс t1_compute_backup_container. Для создания резервной копии используйте ресурс t1_compute_backup_object.

Мы ответили на ваш вопрос?