2016-07-28 118 views
4

因此,我有一個在Google Cloud Platform中創建實例的terraform腳本,我希望能夠將我的terraform腳本添加到創建的實例的ssh密鑰中,以便通過ssh配置它們。這是我目前的terraform腳本。如何使用terraform將ssh密鑰添加到GCP實例?

#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

嘿,我已經有了一個快速的後續這個問題,它不是」 t與添加ssh密鑰相關,但可以使用gcp terraform實例的'metadata'功能。我想要terraform將'--can-ip-forward'標籤添加到我的實例中,我該怎麼做? –

+0

看起來你只需在資源中添加'can_ip_forward = true':https://github.com/iostat/mesos-fun/blob/bb08bc4866a1ba4e535cbf​​f4eba6611f1d3838b4/terraform/3-slaves.tf和https://www.terraform.io /docs/providers/google/r/compute_instance.html – mblakele