Как вставить ключ SSH в Google Compute Engine во время запуска скрипта - PullRequest
1 голос
/ 06 ноября 2019

В настоящее время я борюсь за факт создания экземпляра и непосредственного запуска некоторого кода, касающегося Google Compute Engine. Основная проблема, с которой я столкнулся, заключается в том, что она работает с публичным репо, если я хочу клонировать частное репо, оно больше не работает ...

Я пробовал много обходных путей и до сих пор не мог 'не могу найти любую ситуацию. У меня есть этот startup-script.sh:

#!/usr/bin/env bash
set -ex

# Talk to the metadata server to get the project id and location of application binary.
PROJECTID=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google")

# Install logging monitor. The monitor will automatically pickup logs send to
# syslog.
sudo curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | sudo bash
sudo service google-fluentd restart &

# Install dependencies from apt (I actually need them)
sudo apt-get update
sudo apt-get install -yq ca-certificates supervisor git emacs redis-server

#############
# Here I have to setup my SSH key but what are my possibilities?
#############

# Cloning my repo
git clone git@gitlab.com:MY-AWESOME-SERVICE.git service

# Create a goapp user. The application will run as this user.
sudo getent passwd goapp || sudo /usr/sbin/useradd -m -d /home/goapp goapp
sudo chown -R goapp:goapp service

# Configure supervisor to run the Go app.
sudo echo "
[program:goapp]
directory=/service
command=/service/main
autostart=true
autorestart=true
user=goapp
environment=HOME=\"/home/goapp\",USER=\"goapp\"
stdout_logfile=syslog
stderr_logfile=syslog
" > goapp.conf

sudo mv goapp.conf /etc/supervisor/conf.d/goapp.conf

sudo supervisorctl reread
sudo supervisorctl update

# Application should now be running under supervisor

Я видел несколько вещей о ssh-copy-id, но я не уверен, что полностью понимаю, как это работает

Спасибо залюбая помощь!

...