Как создать дроплет DigitalOcean с помощью Terraform – CloudSavvy IT

Логотип Digital Ocean

DigitalOcean – один из самых простых поставщиков облачных виртуальных машин. Если вам нужна быстро предоставляемая вычислительная среда, виртуальные машины DigitalOcean обычно становятся доступными менее чем за 60 секунд. Вместо использования пользовательского интерфейса (UI) часто лучше автоматизировать.

Terraform – это инфраструктура в качестве языка кода, которая позволяет вам использовать провайдеров, таких как DigitalOcean, для предоставления ресурсов без использования интерфейса DigitalOcen. В этой статье мы рассмотрим, как использовать Terraform для предоставления DigitalOcean Droplet (виртуальной машины).

Установка Терраформ

Terraform доступен для множества платформ, как Windows, так и Linux. Самый простой способ – загрузить исполняемый файл по ссылке ниже и поместить исполняемый файл в системный путь, чтобы разрешить ссылаться на него из любого места.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

https://www.terraform.io/downloads.html

Создайте ключи API от DigitalOcean

Чтобы Terraform мог взаимодействовать с DigitalOcean, нам необходимо сгенерировать API-ключи для использования с поставщиком DigitalOcean. Следующие шаги описывают, как создать новый ключ API специально для использования с Terraform. Вы можете использовать другие API-ключи, но лучше не использовать ключи там, где это возможно, чтобы легко отключить доступ при необходимости.

  1. Войдите в панель управления DigitalOcean.
  2. Перейдите в раздел API.
  3. Нажмите «Создать новый токен».
  4. Введите имя токена и предоставьте токену права на чтение и запись.
  5. Скопируйте ключ API, так как он вам больше не будет показан, затем мы будем использовать его для Terraform.

Создайте новый токен личного доступа.

Начиная

Первым шагом при любой настройке Terraform является инициализация новой конфигурации. Сначала создайте каталог для размещения нашей конфигурации Terraform.

mkdir digitalocean-terraform
cd digitalocean-terraform

Далее нам нужно создать digitalocean.tfvars файл, который мы будем использовать для хранения нашего ключа API, который мы сгенерировали ранее. Это лучшая практика, поскольку не нужно жестко кодировать учетные данные. При использовании контроля версий, который рекомендуется, вы можете игнорировать любые .tfvars файлы, или определенные, чтобы убедиться, что эти учетные данные не хранятся в истории управления версиями.

touch digitalocean.tfvars

В пределах digitalocean.tfvars, мы создадим простую переменную с именем api_token, Это будет использовано позже в наших скриптах Terraform.

api_token = 12345123213412425

Создание файла ресурса капли

Теперь, когда мы настроили конфигурацию Terraform и DigitalOcean, давайте создадим наш файл конфигурации Terraform. Создать файл digitalocean.tfи используйте приведенный ниже код для начала работы. Чтобы наша конфигурация могла использовать провайдера и учетные данные, нам нужно указать, где взять эти данные.

variable "api_token" {
  default = ""
}

provider "digitalocean" {
  token = var.api_token
}

Теперь, когда мы настроили наш скрипт, мы можем запустить terraform init код, и теперь он будет создавать наши метаданные Terraform и устанавливать поставщиков. Вы заметите, что вывод команды показывает провайдера, загружаемого для использования. Кроме того, мы сказали нашему провайдеру использовать учетные данные, которые ранее были указаны в .tfvars файл.

Запустите код инициализации terraform, и теперь он создаст наши метаданные Terraform и установит поставщиков.

Заполнение команд капли

В этом случае мы хотим предоставить простой ресурс капли. Есть пара параметров, которые мы собираемся использовать. Мы хотим использовать их самый дешевый доступный план, в NYC1 центра обработки данных, и добавьте пару опций, которые сделают Droplet более гибким в будущем.

  • Изображение капли: ubuntu-18.04-x64
  • Область: NYC1
  • Размер: s1-vcpu1-1gb

Теперь, когда у нас есть наши базовые атрибуты, давайте создадим конфигурацию Terraform для этой капли.

resource "digitalocean_droplet" "web" {
  image              = "ubuntu-18-04-x64"
  name               = "test-web-vm"
  region             = "nyc1"
  size               = "s-1vcpu-1gb"
  monitoring         = true
  ipv6               = true
  private_networking = true
}

Дополнительные команды, которые мы добавляем здесь, предназначены для мониторинга, ipv6 и частных сетей. Мониторинг означает, что у вас будут метрики, такие как процессор и память, внутри облачной консоли DigitalOcean. Затем вы можете установить оповещения для этих показателей, так что это очень полезно в будущем. IPv6 означает, что ваша капля будет доступна из IPv6, что помогает защитить ваши капли в будущем. Наконец, частная сеть означает, что ваша капелька получит 10.x.x.x адрес, доступный другим капелькам, но не общедоступный интернет.

Есть еще одна очень полезная возможность – пользовательские данные. Для Linux это позволяет вам запускать определенные команды при подготовке виртуальной машины, такие как обновление пакетов. Мы можем включить это прямо в конфигурацию Terraform, добавив этот атрибут в.

resource "digitalocean_droplet" "web" {
  image              = "ubuntu-18-04-x64"
  name               = "test-web-vm"
  region             = "nyc1"
  size               = "s-1vcpu-1gb"
  monitoring         = true
  ipv6               = true
  private_networking = true
    user_data          = "#cloud-confignpackage_update: truenpackage_upgrade: true"
}

Если вы начинаете делать много с user_dataВы можете сохранить данные в файле YAML, а затем включить их в объявление ресурса.

file("user-data.yml")

Развертывание капли

Теперь, когда наша конфигурация Terraform готова, давайте развернем дроплет, выполнив следующий код.

terraform apply -var-file="digitalocean.tfvars

Разверните капельку.

Вы также можете заметить новый .tfstate файл создан. Это фиксирует текущее состояние, которое Terraform знает для вашей среды. Если вы попытаетесь снова развернуть эту конфигурацию капли, Terraform не сделает этого, поскольку она уже знает, что капля была создана. Если вы удалите этот файл, Terraform не сможет распознать, что ресурс существует, и попытается создать его снова.

Завершение

Как вы можете сказать из этой статьи, создание ресурса в DigitalOcean через Terraform происходит быстро и просто. Есть еще много ресурсов, которые вы можете предоставить с помощью поставщика DigitalOcean.

Используя эту конфигурацию в качестве кода, вы можете быстро и легко подготовить целые среды в DigitalOcean с помощью Terraform. Например, если вам нужна совершенно новая среда разработки, и она уже была предварительно отображена в конфигурации Terraform с помощью простой команды развертывания, вы можете иметь совершенно новую готовую среду разработки.

Объединение Terraform и DigitalOcean обеспечивает мощную комбинацию, которая не только защищает вашу инфраструктуру, обеспечивает контроль версий, но и обеспечивает согласованность и безопасность.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *