Skip to content

Instantly share code, notes, and snippets.

@mixassio
Created March 16, 2019 13:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mixassio/d4934556666a72b6173458dcfe75f2df to your computer and use it in GitHub Desktop.
Save mixassio/d4934556666a72b6173458dcfe75f2df to your computer and use it in GitHub Desktop.
terraform example main.tf
provider "google" {
version = "1.4.0"
project = "${var.project}"
region = "${var.region}"
}
resource "google_compute_instance" "app" {
name = "name_your_instanse"
machine_type = "g1-small"
zone = "${var.zone}"
# определение загрузочного диска - начального образа (можно сделать свой с помощью Packer)
boot_disk {
initialize_params {
image = "${var.disk_image}"
}
}
metadata {
ssh-keys = "ssh_user:${file(var.public_key_path)}"
}
tags = ["app"]
network_interface {
# сеть, к которой присоединить данный интерфейс
network = "default"
# использовать ephemeral IP для доступа из Интернет
access_config {}
}
# коннект для работы провижинеров после установки и настройки ОС
connection {
type = "ssh"
user = "ssh_user"
agent = false
private_key = "${file(var.private_key_path)}"
}
provisioner "file" {
source = "files/puma.service"
destination = "/tmp/puma.service"
}
provisioner "remote-exec" {
script = "files/deploy.sh"
}
}
resource "google_compute_firewall" "firewall_puma" {
name = "allow-puma-default"
# Название сети, в которой действует правило
network = "default"
# Какой доступ разрешить
allow {
protocol = "tcp"
ports = ["9292"]
}
# Каким адресам разрешаем доступ
source_ranges = ["0.0.0.0/0"]
# Правило применимо для инстансов с перечисленными тэгами
target_tags = ["app"]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment