Giter Club home page Giter Club logo

terraform-provider-timeweb-cloud's Introduction

Timeweb Cloud | Terraform Provider Docs

Terraform позволяет автоматизированно управлять множеством ресурсов в Timeweb Cloud с помощью файлов удобных файлов конфигурации формата HCL (HashiCorp Configuration Language) и детальных планов вносимых изменений.

Подробную информацию о ресурсах провайдера можно получить в документации на сайте Terraform.

Документация

Подробная документация по параметрам ресурсов и источников данных провайдера

Быстрый старт

Установите Terraform

Вы можете установить Terraform согласно официальной инструкции

Создание конфигурации Terraform

  1. Создайте новую директорию с произвольным названием, к примеру: timeweb-cloud-terraform;

  2. В созданной директории добавьте конфигурационный файл с расширением .tf, например: main.tf.

Добавление провайдера

  1. В начале конфигурационного файла main.tf добавьте следующий блок:

    terraform {
      required_providers {
        twc = {
          source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud"
        }
      }
      required_version = ">= 0.13"
    }
    

    Провайдер поддерживает только версии Terraform 0.13 и выше, на версиях ниже работа провайдера не поддерживается

  2. Выполните terraform init для скачивания провайдера

Установка API-токена для работы с провайдером

Для работы с провайдером Terraform требуется получения токена API в соответствующем разделе Панели управления для доступа к ресурсам аккаунта.

После создания токена им можно воспользоваться одним из указанных способов:

Добавьте созданный токен в переменные окружения для его использования в Terraform:

export TWC_TOKEN=eyJhbGc...

или

Добавьте созданный токен в качестве параметра провайдера:

provider "twc" {
  token = "eyJhbGci..."
}

Для корректной работы Terraform-провайдера у токена должно быть отключено подтверждение удаления серверов через Telegram

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

При помощи Terraform в Timeweb Cloud можно управлять различными типами типы ресурсов. Подробная информация о каждом ресурсе и источнике данных находится в отдельных разделах данной документации

В качестве примера будет применена конфигурация ниже, в рамках которой будет создана виртуальная машина с именем Example server c NVMe диском на 10 Гб, 1 ядром CPU и 1 Гб RAM с установленной ОС Ubuntu 22.04 в локации ru-1.

terraform {
  required_providers {
    twc = {
      source = "tf.timeweb.cloud/timeweb-cloud/timeweb-cloud"
    }
  }
  required_version = ">= 0.13"
}

data "twc_configurator" "configurator" {
  location = "ru-1"
  disk_type = "nvme"
}

data "twc_os" "os" {
  name = "ubuntu"
  version = "22.04"
}
resource "twc_server" "example-server" {
  name = "Example server"
  os_id = data.twc_os.os.id

  configuration {
    configurator_id = data.twc_configurator.configurator.id
    disk = 1024 * 10
    cpu = 1
    ram = 1024
  }
}

Для работы данного примера требуется установленная переменная окружения TWC_TOKEN

Для доступа у созданной VDS потребуется пароль, который после создания сервера будет отправлен на почту. Как альтернативный вариант можно использовать доступ по SSH, подробнее о котором можно узнать в документации по ресурсу twc_server и источнику данных twc_ssh_keys.

Проверка файлов конфигурации

Проверка конфигурации выполняется конфигурацию командой:

terraform validate

Если конфигурация является допустимой, появится сообщение:

Success! The configuration is valid.

Другие команды terraform можно узнать из официальной документации Terraform

Применение файлов конфигурации

  1. Для составления плана применения конфигурации выполните команду:

    terraform plan

    В терминале будет выведен список планируемых изменений. На этом этапе конфигурация применена не будет

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

    terraform apply
  3. Подтверждение создания ресурсов

Перед применением конфигурации 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:

введите в терминал слово yes и нажмите Enter.

После применения конфигурации Terraform выведет результат применения конфигурации, который можно проверить в Панели управления

Удаление созданных ресурсов

Чтобы удалить все ресурсы, созданные через Terraform:

  1. Выполните команду;

    terraform destroy

    Во время выполнения будет выведен план удаления всех созданных ресурсов и Terraform запросит ручное подтверждение перед началом своей работы:

    Do you really want to destroy all resources?
      Terraform will destroy all your managed infrastructure, as shown above.
      There is no undo. Only 'yes' will be accepted to confirm.
    
      Enter a value:
  2. Введите слово yes и нажмите Enter

Модули от сообщества

Модули от сторонних разработчиков.

terraform-provider-timeweb-cloud's People

Contributors

timeweb-cloud avatar deff-dev avatar robonen avatar gechandesu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.