Im working on big shared project. I found this lines of code in gitlab-ci.yml and visibly there is no ssh connection to server and the job is running on distinct server.
The server is FinanceDep1.l and the runner that should run the job is tagged pprod for build job. LEt's say that my deploy chain contains 3 jobs , and i want to change the deploy manner to do it via ssh on server FinanceDep1.l, FinanceDep2.l, FinanceDep3.l respectively.
Does anyone knows how it can be possible?
Thank you,
stages:
- build
- test
- deploy
variables:
CI_IMAGE_COMMIT_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
DOCKER_API_VERSION: "1.39"
build:
stage: release
variables:
SERVER: FinanceDep1.l
SSH_OPTS: -p 22 -l pw -o BatchMode=true -o StrictHostKeyChecking=no
script:
- docker info
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- echo P_IMAGE = \"$CI_IMAGE_COMMIT_TAG\" > version.py
- mkdir -p config/secrets
- echo P_PWD = \"$P_PWD\" > config/secrets/passwords.py
- docker build --pull --tag $CI_IMAGE_COMMIT_TAG .
- docker push $CI_IMAGE_COMMIT_TAG
tags:
- pprod
test:
stage: test
variables:
SERVER: FinanceDep2.l
SSH_OPTS: -p 22 -l pw -o BatchMode=true -o
image:
name: $CI_IMAGE_COMMIT_TAG
entrypoint: [""]
services:
- name: postgres:10.1-alpine
alias: source
- name: postgres:10.1-alpine
alias: target
script:
- echo $DEVELOPMENT_CONFIG > config/secrets/passwords.py
- export ENV='dev'
- py.test --cov=src --cov-report xml --junitxml=pytest-report.xml
- apt-get update -qq
- apt-get install -qq unzip
- wget -q https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
- unzip -q sonar*.zip
- printf "sonar.host.url=$SONAR_URL\nsonar.login=$SONAR_LOGIN\n" > ./sonar-scanner*/conf/sonar-scanner.properties
- ./sonar*/bin/sonar-scanner
tags:
- test
deploy-preprod:
stage: deploy
script:
- docker info
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- docker pull $CI_IMAGE_COMMIT_TAG
- docker rm -f P1
- export hostIpAdresse=$(host $HOSTNAME | awk '{print $NF}')
- docker run -p 8080:8080 --add-host bdd:$hostIpAdresse --env deploy_date=$current_date --env ENV=preprod --env-file=airflow/setup/setup_airflow_env.list -v /home/gitlab-runner/config/secrets/passwords.py:/opt/P1/config/secrets/passwords.py -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime -d --name P1 $CI_IMAGE_COMMIT_TAG /bin/bash -c "./script.sh"
tags:
- preprod