Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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"]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement