Назад | Перейти на главную страницу

использовать metadata_startup_script в шаблоне облака Google в terraform

когда я хочу использовать metadata_startup_script в шаблоне, если я использую команды в одной строке, он работает нормально, но при передаче одной строки или даже если я хочу использовать какой-то html, он не работает нормально, и я сталкиваюсь с ошибкой (несколько строк в terraform и используйте новую строку и если я хочу связать его с локальным сценарием bash с чем-то вроде metadata_startup_script = "$ {file (" startup.sh ")}", он работает, но когда появляется экземпляр, когда я использую ssh, мой appache не устанавливается на машине так что мой сценарий запуска не работает, но у меня есть шаблон! в чем проблема, есть ли у кого-нибудь представление об этом?

thank you for your answer but in my log say:INFO startup-script: /bin/bash: /startup-hvh0shxt/tmpyy84ro7l: /bin/bash^M: bad interpreter: No such file or directory

16 мая 17:13:53 gnsgcpproject-web-rrk9 startup-script: INFO startup-script: Код возврата 126. Также я должен снова сказать, что мой запуск находится в моем шаблоне, но когда я перехожу к своим экземплярам, ​​он не устанавливается @ Muss Rahman

Как вы упомянули, вы можете увидеть сценарий в шаблоне, я бы порекомендовал вам проверить консоль и проверьте, виден ли ваш скрипт, если да, проверьте последовательная консоль чтобы проверить, почему ваш скрипт не работает. Это может быть связано с опечаткой или отсутствием подтверждения / согласия.

Чтобы воспроизвести вашу проблему, я следую документация теперь установите мой main.tf как показано ниже:

  metadata_startup_script = "${file("file-name-with-full-path")}"

В этом файле я установил свой сценарий запуска, как показано ниже:

#! /bin/bash
………...
sudo apt update
wait 60
sudo apt install apache2 -y
wait 60
sudo systemctl start apache2
wait 60
sudo systemctl status apache2

После создания виртуальной машины я вижу, что в моем экземпляре запущен apache.

$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled;
 vendor preset: enabled)
   Active: active (running) since Fri 2020-05-15 13:5
4:45 UTC; 10s ago
 Main PID: 2338 (apache2)
    Tasks: 55 (limit: 4915)
   CGroup: /system.slice/apache2.service
           ├─2338 /usr/sbin/apache2 -k start
           ├─2340 /usr/sbin/apache2 -k start
           └─2341 /usr/sbin/apache2 -k start

May 15 13:54:45 terra-test-2 systemd[1]: Starting The Apache HTT
P Server...
May 15 13:54:45 terra-test-2 systemd[1]: Started The Apache HTTP
 Server.

Это связано с моим текстовым редактором. Я использовал VSC, поэтому я использую этот способ, потому что VSC не может читать. Даже если у вас есть один CRLF в файле, вышеуказанный параметр будет проигнорирован, и весь файл будет преобразован в CRLF. Сначала вам нужно преобразовать весь CRLF в LF, прежде чем вы сможете открыть его в Visual Studio Code.