Как использовать ssh proxy для запуска задания развертывания в gitlab ci? - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть сервер в Иране, и я хочу использовать gitlab ci, чтобы открыть ssh-туннель к моему серверу.

Но благодаря облачным сервисам Google gitlab не может видеть IP-адреса Ирана.

Есть ли способ использовать промежуточный сервер из Ирана, чтобы открыть туннель прокси от gitlab до моего прокси-сервера и от этого до моего сервера Iran, а затем использовать docker для получения изображения из реестра gitlab?

Рассмотрим Ирансерверы не могут подключиться к gitlab, gitlab также не может подключиться к иранским серверам.

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Также это работает для меня

deploy:
  environment:
    name: production
    url: http://example.com
  image: ubuntu:latest
  stage: deploy
  only:
    - master
  before_script:
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    ## Install rsync to create mirror between runner and host.
    - apt-get install -y rsync
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - eval $(ssh-agent -s)
    - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
    - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 --decode)
    - ssh -o StrictHostKeyChecking=no $SSH_USER@"$SSH_HOST" 'ls -la && ssh user@host "cd ~/api && docker-compose pull && docker-compose up -d"'

Я также описал все, что я сделал на фарси здесь: https://virgol.io/@aminkt

0 голосов
/ 21 января 2019

Мне удалось с таким кодом

before_script:
  - apt-get update -y
  - apt-get install openssh-client curl -y


integration:
  stage: integration
  script:
    - mkdir ~/.ssh/
    - eval $(ssh-agent -s)
    - echo "$SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa
    - ssh -fN -L 1029:localhost:1729 user@$HOST -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no 2>&1
    - ssh -fN -L 9013:localhost:9713 user@$HOST -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no 2>&1
...