Я спрашиваю об этом, потому что я не могу найти работающий пример, похожий на мой случай.Я сам разместил Gitlab на машине AWS EC2 (назовем это «машиной 1», и я хочу настроить автоматическое развертывание на моем удаленном сервере AWS EC2, называемом «машиной 2»).
Показывает установку моего Gitlabs (машина1):
gitlab-ce 10.4.4 gitlab-config-template 10.4.4
gitlab-cookbooks 10.4.4
gitlab-ctl 10.4.4
gitlab-healthcheck
gitlab-monitor
gitlab-pages
gitlab-psql
gitlab-rails
gitlab-scripts
gitlab-selinux
оболочка gitlab
рабочая лошадка gitlab
Я следую инструкциям gitlab по настройке CI & CD для документации gitlab в моем проекте. Я хочу настроить автоматическое развертывание. Следующие шаги следующие:
1. У меня есть бегун, следующий за документом gitlabs, не так много, чтобы показатьздесь, кроме (машина 2):
url: https://url.to.my.compute.amazonaws.com
Token : token given by gitlab
Executor: shell
Tags: build deploy qa stage
2.Я создал свой файл .gitlab-ci.yml (в корневом проекте) с (даже при создании двух версий yml-файла, которые я пробовал):
yml 2:
stages:
- build
- deploy
build:
stage: build
script: echo "Building the app"
deploy_staging:
stage: deploy
script:
- echo "Deploy to staging server"
yml 1:
#develop stage
deploy:
stage: deploy
before_script:
#generate ssh key
- mkdir -p ~/.ssh
- echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
script:
- bash .gitlab-deploy.sh
environment:
name: develop
url: https://my.domain.com
when: manual
3. Я установил two СЕКРЕТНЫЕ ПЕРЕМЕННЫЕ
SSH_PRIVATE_KEY и DEPLOY_SERVERS (с секретным ключом и ips соответственно)
4.Я добавил файл deploy.sh (в корне моего проекта)
#!/bin/bash
#Get servers list
set -f
string=$DEPLOY_SERVERS
array=(${string//,/ })
#Iterate servers for deploy and pull last commit
for i in "${!array[@]}"do
echo "Deploy project on server ${array[i]}"
ssh ubuntu@${array[i]} "cd /var/www/html/app && git pull origin develop"
done
Мой gitlab-runner показывает мне следующее: gitlab-runner verify ВНИМАНИЕ: Запуск в пользовательском режиме.
ПРЕДУПРЕЖДЕНИЕ: В пользовательском режиме требуется, чтобы вы вручную запускали сборку: WARNING: $ gitlab-runner run
ПРЕДУПРЕЖДЕНИЕ: используйте sudo для системного режима:
ПРЕДУПРЕЖДЕНИЕ: $ sudo gitlab-runner ...
И Запуск от имени sudo, как сказано, показывает моего бегуна:
Verifying runner... is alive runner=
Verifying runner... is alive runner=
Verifying runner... is alive runner=
, новсе еще в gitlabs пользовательский интерфейс получает теги "STUCK", и работа говорит мне "работа застряла, проверьте бегунов"
Вопросы:
Это все шагиследить?
Вы видите что-нибудь (или процесс), который я пропускаю во всей этой конфигурации?
В моем удаленном gitlab у меня есть права доступа "master",это то, что мне нужно для запуска бегуна?
как мне отладить на этом этапе (я использую gitlab-runner --debug verify), что все, что я могу?
Заранее спасибо за помощь.