使用terraform将spring引导jar上传到GCE实例
将some-spring-boot.jar复制到GCE实例中的最佳方法是什么 我原以为这是一项相当普通的任务,但在谷歌搜索之后,却找不到关于它的任何文档 我已经在GCP中生成了服务帐户,并将所有内容保存到GCP-credentials.json中:使用terraform将spring引导jar上传到GCE实例,terraform,terraform-provider-gcp,Terraform,Terraform Provider Gcp,将some-spring-boot.jar复制到GCE实例中的最佳方法是什么 我原以为这是一项相当普通的任务,但在谷歌搜索之后,却找不到关于它的任何文档 我已经在GCP中生成了服务帐户,并将所有内容保存到GCP-credentials.json中: { "type": "service_account", "project_id": "some project", "private_key_id
{
"type": "service_account",
"project_id": "some project",
"private_key_id": "someid",
"private_key": "some key",
"client_email": "xxx@developer.gserviceaccount.com",
"client_id": "xxxx",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/xxxdeveloper.gserviceaccount.com"
}
以下是我在谷歌上搜索数小时后正在做的事情:
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
version = "3.5.0"
credentials = file("gcp-credentials.json")
project = "some project"
zone = "us-central1-a"
}
resource "google_compute_instance" "vm_instance" {
name = "my-instance"
machine_type = "e2-medium"
#metadata_startup_script = file("startup.sh")
tags = [
"http-server",
"https-server"]
boot_disk {
initialize_params {
image = "some image with jdk"
}
}
network_interface {
network = "default"
access_config {}
}
provisioner "file" {
source = "../../../target/my-jar-1.0.0.jar"
destination = "/tmp/my-jar-1.0.0.jar"
connection {
type = "ssh"
user = "root"
private_key = file("gcp-credentials.json").private_key
agent = "false"
}
}
}
无论何时我运行它都会显示
[ERROR] Error: Missing required argument
[ERROR]
[ERROR] on main.tf line 43, in resource "google_compute_instance" "vm_instance":
[ERROR] 43: connection {
[ERROR]
[ERROR] The argument "host" is required, but no definition was found.
任何帮助都将非常感激未经测试(我也从未将Terraform用于GCP),请尝试:
思路:
似乎确实需要(根据)主机
- 同样的文档提示特殊的
变量:self
- 我猜rest是如何从GCP实例获取IP地址的
host = self.network_interface.0.network_ip