Установка kubectl в вычислительном движке GCP с использованием terraform

Нужно добавить несколько команд в metadata_startup_script в terraform скрипт, чтобы запустить compute engine экземпляр в GCP

Ниже приведен мой код

  metadata_startup_script = "curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" ; chmod +x kubectl ; sudo cp kubectl /usr/local/bin"

terraform plan показывает ошибку ниже

   Error: Missing newline after argument

  on main.tf line 58, in resource "google_compute_instance" "default":
  58: metadata_startup_script = "curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" ; chmod +x kubectl ; sudo cp kubectl /usr/local/bin"

  An argument definition must end with a newline.

Любые предложения, чтобы решить эту проблему? Задача состоит в том, чтобы установить kubectl после запуска compute engine с помощью приведенных ниже команд.

   curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" 
   chmod +x kubectl 
   sudo cp kubectl /usr/local/bin"

кавычки в следующей строке могут быть проблемой, вы пытались не использовать вторую? metadata_startup_script = "curl -LO" https:

jabbson 18.12.2020 19:06
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
1
1
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас есть 2 решения

  1. Избегайте двойной кавычки "
  metadata_startup_script = "curl -LO \"https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl\" ; chmod +x kubectl ; sudo cp kubectl /usr/local/bin"
  1. Напишите свой скрипт в многострочном формате внутри файла TF.
metadata_startup_script = <<SCRIPT
   curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" 
   chmod +x kubectl 
   sudo cp kubectl /usr/local/bin
SCRIPT

Другие вопросы по теме