Это не может быть так сложно, конечно? Я пытался и потерпел неудачу с рядом методов.
Простое использование file provisioner
было бы самым простым вариантом, но безрезультатно. Проблема в том, что в Compute Instance пароль не настроен как стандартный и нет ключей.
Таким образом, это привело меня к попытке что-то вроде этого:
resource "google_compute_instance" "test-build" {
...
metadata {
ssh-keys = "jon:${file("./gcloud_instance.pub")}"
}
...
provisioner "file" {
source = "test/test_file"
destination = "/tmp/test_file.txt"
connection {
type = "ssh"
private_key = "${file("./gcloud_instance")}"
agent = "false"
}
}
Опять безрезультатно. (К вашему сведению, пара ключей - это та, которую я создал, и я подтвердил, что открытый ключ передается в экземпляр вычисления)
Я даже пытался разбить его на модули, чтобы потом запускать один за другим ... но, похоже, мы не можем использовать провайдер файлов внутри null_resource. Так что это тоже не сработает.
Кто-нибудь нашел способ сделать это эффективно?