main.tf 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. terraform {
  2. required_providers {
  3. google = {
  4. source = "hashicorp/google"
  5. version = "4.37.0"
  6. }
  7. }
  8. }
  9. provider "google" {
  10. credentials = file(var.credentials_file)
  11. project = var.project
  12. region = var.region
  13. zone = var.zone
  14. }
  15. resource "google_compute_network" "vpc_network" {
  16. name = "jp-test-network"
  17. }
  18. resource "google_compute_instance" "vm_instance" {
  19. name = "jp-test-instance"
  20. machine_type = "f1-micro"
  21. tags = ["dev"]
  22. boot_disk {
  23. initialize_params {
  24. //image = "debian-cloud/debian-11"
  25. image = "ubuntu-os-pro-cloud/ubuntu-pro-2204-lts"
  26. }
  27. }
  28. network_interface {
  29. network = google_compute_network.vpc_network.name
  30. access_config {
  31. }
  32. }
  33. metadata = {
  34. user-data= "${data.template_file.user_data.rendered}"
  35. }
  36. }
  37. data "template_file" "user_data" {
  38. template = templatefile("../aws/scripts/add-ssh-web-app.yaml",
  39. {
  40. Signature: var.Signature
  41. ManagerIp: var.ManagerIp
  42. //ssh_key : var.ssh_key
  43. //Signature: "BOI8PrXNaVANosmOgylvmCMpL7Ek3AEAmvkrAJJ6fKxoJQTh1w0Tksv3uvXAVsxmfXeKE97il70Q8blrvu5rAjNuZXRzZWRnZS5pbw==",
  44. //ManagerIp: "5.161.133.68",
  45. ssh_public_key_file: "../tf-cloud-init.pub" ,
  46. ssh_key : file("${path.module}/../tf-cloud-init.pub")
  47. })
  48. }
  49. resource "google_compute_firewall" "ssh" {
  50. name = "test-firewall"
  51. network = google_compute_network.vpc_network.name
  52. allow {
  53. protocol = "icmp"
  54. }
  55. allow {
  56. protocol = "tcp"
  57. ports = ["22"]
  58. }
  59. source_tags = ["test-firewall-ssh"]
  60. source_ranges = ["0.0.0.0/0"]
  61. }
  62. //resource "google_os_login_ssh_public_key" "cache" {
  63. //user = "3nets"
  64. //key = file("../tf-cloud-init.pub")
  65. //}