2016-07-28 2 views
4

Итак, у меня есть скрипт terraform, который создает экземпляры в облачной платформе Google, я хочу, чтобы мой скрипт terraform также добавлял мой ключ ssh в создаваемые экземпляры, чтобы я мог их предоставить через ssh. Вот мой текущий скрипт terraform.Как добавить ключ ssh в экземпляр GCP с использованием terraform?

#PROVIDER INFO 
provider "google" { 
    credentials = "${file("account.json")}" 
    project  = "myProject" 
    region  = "us-central1" 
} 


#MAKING CONSUL SERVERS 
resource "google_compute_instance" "default" { 
    count = 3 
    name  = "a-consul${count.index}" 
    machine_type = "n1-standard-1" 
    zone   = "us-central1-a" 

    disk { 
    image = "ubuntu-1404-trusty-v20160627" 
    } 

    # Local SSD disk 
    disk { 
    type = "local-ssd" 
    scratch = true 
    } 

    network_interface { 
    network = "myNetwork" 
    access_config {} 
    } 
} 

Что я должен добавить к этому, чтобы мой Terraform скрипт добавить мой ключ SSH /Users/myUsername/.ssh/id_rsa.pub?

ответ

6

Я думаю, что что-то, как это должно работать:

metadata { 
    sshKeys = "${var.gce_ssh_user}:${file(var.gce_ssh_pub_key_file)}" 
    } 

https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys описывает механизм метаданных, и я нашел этот пример в https://github.com/hashicorp/terraform/issues/6678

+0

Эй я получил быстрое продолжение к этому вопросу, он ISN» t, связанный с добавлением ключей ssh, но он может использовать функцию метаданных экземпляров gcp terraform. Я хочу, чтобы terraform добавлял тег '--can-ip-forward' в мои экземпляры, как я могу это сделать? –

+0

Похоже, вы просто добавляете ресурс 'can_ip_forward = true': https://github.com/iostat/mesos-fun/blob/bb08bc4866a1ba4e535cbff4eba6611f1d3838b4/terraform/3-slaves.tf и https://www.terraform.io /docs/providers/google/r/compute_instance.html – mblakele

Смежные вопросы