Невозможно извлечь хранилище (из облачных исходных хранилищ) в сценарии запуска виртуальной машины GCE - PullRequest
0 голосов
/ 24 марта 2020

У меня есть виртуальная машина в Google Compute Engine, которую я хочу запускать и останавливать ежедневно - для этого я уже написал облачные функции. Когда виртуальная машина запускается, я хочу, чтобы она запускала скрипт запуска. В сценарии запуска bash мне сначала нужно извлечь данные из git - Cloud Source Repository. Это приводит к созданию sh:

Ошибка: разрешение запрещено (publickey)

Сценарий запуска выглядит следующим образом:

#!/bin/bash 
cd /home/my_home_directory/git_repo
git pull;
cd some_directory_in_repo
python3 some_script.py;
shutdown -h now;

У виртуальной машины есть собственный сервис аккаунт, который, насколько я знаю, запускает скрипт. Что я в основном хочу, так это запустить скрипт с учетной записью «пользователь» - служба, у которой нет домашнего каталога на виртуальной машине (хотя учетная запись службы имеет необходимые разрешения для доступа к хранилищу). Я также настроил ключ S SH для учетной записи службы, затем я зарегистрировал ключ publi c в своем профиле пользователя и это работает , когда я выполняю сценарий под мой пользователь .

Есть ли решение для этого, кроме запуска сценария под моим пользователем (который работает, как я уже сказал), пожалуйста?

Примечание: если я выполню сценарий запуска, подобный приведенному ниже, это также работает.

#!/bin/bash 
cd /home/my_home_directory/git_repo
sudo -u my_username bash -c \
'git pull;
cd some_directory_in_repo
python3 some_script.py;
shutdown -h now;'

Спасибо

...