#docker #ssh #gitlab-ci
#docker #ssh #gitlab-ci
Вопрос:
Я хочу развернуть на этом сервере serverBNP-prod1 Я попытался написать этот код ниже. Используя этот код, куда я должен добавить свой локальный ключ ssh, пожалуйста?
Спасибо
job_deploy_prod:
stage: deploy
only:
- master
- tags
when: manual
environment:
name: prod
variables:
SERVER: serverBNP-prod1
SSH_OPTS: -p 22 -l udoc -o BatchMode=true -o StrictHostKeyChecking=no
script:
- export VERSION=$(fgrep -m 1 -w version pom.xml | sed -re 's/^.*>(.*)<.*$/1/')
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker login -u gitlab-ci-token -p $CI_JOB_TOKEN registry.gitlab.com"
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker rm -f proj"
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker pull registry.gitlab.com/bnp/proj:$VERSION"
- ssh $SSH_OPTS -i $HOME/.ssh/id_rsa $SERVER "docker run -d -p 8080:8080 -e 'SPRING_PROFILES_ACTIVE=prod' -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name proj registry.gitlab.com/bnp/proj:$VERSION"
Теги:
— prod
Ответ №1:
Вы можете либо:
- используйте
Settings
/CI-CD
/Variable
типаFile
, в который вы будете помещать данные своего закрытого ключа, или - если у вас есть только имя пользователя и пароль для вашего сервера, вы можете использовать команду «sshpass» и указать переменную
SSHPASS
среды, все еще в разделе переменных CI-CD
Более подробную информацию о том, как использовать переменные среды GitLab CI / CD (тип файла, безопасность и т.д.), Можно найти здесь: https://docs.gitlab.com/ce/ci/variables /
Вы можете маскировать переменные, но имейте в виду, что, в отличие от Jenkins, невозможно удалить кнопку «Показать значение», когда пользователь имеет достаточные права в Gitlab для просмотра / редактирования настроек, поэтому вам придется тщательно выбирать права на свой проект, например, предоставляя другим людям права разработчика, но безсопровождающий (который позволяет редактировать настройки).