Как создать дроплет DigitalOcean с помощью Terraform – CloudSavvy IT
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-ключи, но лучше не использовать ключи там, где это возможно, чтобы легко отключить доступ при необходимости.
- Войдите в панель управления DigitalOcean.
- Перейдите в раздел API.
- Нажмите «Создать новый токен».
- Введите имя токена и предоставьте токену права на чтение и запись.
- Скопируйте ключ 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
файл.
Заполнение команд капли
В этом случае мы хотим предоставить простой ресурс капли. Есть пара параметров, которые мы собираемся использовать. Мы хотим использовать их самый дешевый доступный план, в 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, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)