Terraform в GCloud Shell: обучение автоматизации инфраструктуры стало проще
Terraform в GCloud (источник изображения: https://www.hashicorp.com/blog/kickstart-terraform-on-gcp-with-google-cloud-shell)
В мире DevOps автоматизация неизбежна. Мы можем автоматизировать все и вся, от момента создания приложения до момента его развертывания. Благодаря этому разработка и развертывание приложений стали не только простыми, но и увлекательными. Автоматизация также делает процессы более быстрыми и менее подверженными ошибкам.
Для автоматизации инфраструктуры, Терраформ просто правильный инструмент для работы. С помощью этого инструмента вы можете создать или разрушить инфраструктуру за считанные секунды. Его прелесть также в том, что его можно использовать на многих различных облачных платформах.
Terraform в Google Cloud Shell
Недавно Google Cloud Platform (GCP) запустила функцию, позволяющую использовать terraform в Google Cloud Shell; прямо в вашем браузере. Я был так взволнован этим, что решил написать об этом, чтобы помочь другим узнать и использовать эту замечательную функцию.
С моей точки зрения, вот преимущества, которые эта функция дает сообществу:
- Упрощает изучение Terraform с GCloud.
- Предоставьте любому возможность быстро протестировать концепцию без хлопот с ее настройкой.
- Избавьте новых DevOps-инженеров от ошибки, связанной с передачей секретных учетных данных GCloud в GitHub при изучении Terraform. Передача ваших учетных данных в систему управления версиями — очень опасная практика.
Руки вверх
Предпосылка
Использовать Terraform в Cloud Shell очень просто. Официальный блог ХашиКорп есть видео и письменный документ о том, как использовать эту функцию. Однако мы будем использовать эту платформу для создания простой подсети и экземпляра виртуальной машины в Compute Engine.
Шаги:
- Нажми на ОТКРЫТЬ В GOOGLE SHELL и Нажмите «Продолжить», когда появится приглашение.
- В верхней правой части страницы создайте или выберите проект, в котором вы хотите создать ресурс.
- Подтвердите проект в правом нижнем углу.
Облачная оболочка Google
И мы умеем писать сценарии терраформирования в Cloud Shell для создания наших ресурсов.
Перейдите в меню «Файл» > «Создать» > «Файл», создайте новый файл terraform и назовите его. network.tf
Вставьте приведенный ниже скрипт terraform во вновь созданный network.tf файл.
resource "google_compute_network" "terraform-cloudshell" {
name = "terraform-cloudshell-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "terraform-cloudshell-subnet" {
name = "terraform-cloudshell-subnetwork"
ip_cidr_range = "10.0.0.0/16"
region = "us-central1"
network = "${google_compute_network.terraform-cloudshell.self_link}"
}
- Перейти к main.tf файл и замените существующий скрипт этим обновленным скриптом terraform.
resource "google_compute_instance" "terraform-cloudshell-instance" {
name = "vm-instance-${local.name_suffix}"
machine_type = "f1-micro"
zone = "us-central1-a"
allow_stopping_for_update = true
boot_disk {
initialize_params{
image = "${data.google_compute_image.debian_image.self_link}"
}
}
network_interface {
subnetwork = "${google_compute_subnetwork.terraform-cloudshell-subnet.name}"
access_config {
}
}
}
data "google_compute_image" "debian_image" {
family = "debian-9"
project = "debian-cloud"
}
Приведенный выше скрипт создаст экземпляр виртуальной машины Compute Engine в созданной нами подсети. Чтобы создать ресурсы, мы выполним следующие команды в терминале облачной оболочки:
export GOOGLE_CLOUD_PROJECT=project_id
- Инициализировать Терраформ
terraform init
- Создайте ресурс с
terraform apply
При условии отсутствия ошибок вас спросят, хотите ли вы продолжить создание ресурсов. Для подтверждения введите «YES»
Через некоторое время экземпляр будет создан в указанной нами подсети. Хорошая работа! Вы только что использовали Terraform в Cloud Shell для предоставления инфраструктуры.
Мы должны уничтожить созданные нами ресурсы, чтобы с нас не взимались сборы.
- Уничтожить ресурсы, которые мы предоставили с помощью Terraform
terraform destroy
Вот и все. Спасибо за чтение.
Спасибо Terraform и команде Google Cloud за эту замечательную функцию.
Хлопайте и делитесь