2016-07-28 116 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