Проблемы при развертывании службы из репозитория Gitlab с использованием сценария запуска - PullRequest
0 голосов
/ 04 ноября 2019

В настоящее время у меня возникают проблемы при попытке развернуть мое приложение (в настоящее время это первая служба моих микросервисов).

Я следовал https://cloud.google.com/go/docs/tutorials/bookshelf-on-compute-engine, но использовал свой собственный сервис, размещенный на gitlab.

Мне, однако, пришлось отредактировать скрипт, так как он не работает (проблема sudo, поэтому я должен дать привилегии для каждой из моих команд):

set -ex

# Talk to the metadata server to get the project id and location of the 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 pick up 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
sudo apt-get update
sudo apt-get install -yq ca-certificates supervisor git emacs

echo "alias ne='emacs -nw'" >> .bashrc
source /.bashrc

# Creating .ssh dir
sudo mkdir -p ~/.ssh

# Generating ssh requirements
sudo ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''

# Injecting ssh key
sudo echo "ssh-rsa xxxx...... john@doe.com" > micro_service.pub
sudo mv micro_service.pub ~/.ssh/

sudo echo "-----BEGIN OPENSSH PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxx......
-----END OPENSSH PRIVATE KEY-----" > micro_service
sudo mv micro_service ~/.ssh/

# Injecting conf
sudo echo "Host gitlab
    Hostname gitlab.com
    IdentityFile ~/.ssh/micro_service
    User john@doe.com" > config
sudo mv config ~/.ssh/

# adding knows hosts
ssh-keyscan -t rsa gitlab.com >> ~/.ssh/known_hosts

# Get the service's source code.
git clone git@gitlab.com:PROJECT/MY-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 argument1 argument2
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

После всего этого,это все еще не работает (теперь застрял на некоторых новых проблемах gitlab ..).

У меня есть правильный подход? Действительно ли это путь, потому что кажется действительно трудным, когда это должно быть намного проще ... (Я создаю экземпляр, скрипт запускается. Он клонирует сервис и запускает его, используя supervisor).

Вот CLI, который я использую для создания своего экземпляра:

gcloud compute instances create my-instance \
    --image-family=debian-9 \
    --image-project=debian-cloud \
    --machine-type=g1-small \
    --scopes userinfo-email,cloud-platform \
    --metadata-from-file startup-script=startup-script.sh \
    --zone us-central1-f \
    --tags http-server
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...