.gitlab-ci.yml Gitlab Deploy SFTP не работает - PullRequest
0 голосов
/ 04 сентября 2018
deploy:
  stage: deploy
  script:
    - apt-get update -qq && apt-get install -y -qq lftp
    #- lftp -u $DEPLOY_USER,$SFTP_PASSWORD $DEPLOY_HOST -e "mirror -e -R -p ./dist/ new/ ; quit"
    - lftp -c "set ftp:ssl-allow no; debug; open -u root,$DEPLOY_PASSWORD -p 22 $DEPLOY_HOST; mirror -Rev ./ gitlab --verbose --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
    - echo "deployment complete"
  # specify environment this job is using
  environment:
    name: staging
    url: https://xxxxxxxx.de/
  # needs artifacts from previous build

Можете ли вы помочь мне с сценарием? Спасибо. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

новый сбой ->

--verbose --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
---- Running connect program (ssh -a -x -s -l root xx.xx.xxx.xx sftp)
---> sending a packet, length=5, type=1(INIT), id=0
<--- The authenticity of host 'xx.xx.xxx.xx (xx.xx.xxx.xx)' can't be established.
<--- ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxx+xxxxxxxxxxxxxx.
<--- Are you sure you want to continue connecting (yes/no)? no
<--- 
<--- Host key verification failed.
---- Disconnecting
---- Running connect program (ssh -a -x -s -l root xx.xx.xxx.xx sftp)
---> sending a packet, length=5, type=1(INIT), id=0
<--- The authenticity of host 'xx.xx.xxx.xx (xx.xx.xxx.xx)' can't be established.
<--- ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxx.
<--- Are you sure you want to continue connecting (yes/no)? no
<--- 
<--- Host key verification failed.
mirror: Fatal error: Host key verification failed.
---- Disconnecting
ERROR: Job failed: exit code 1

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

lftp -c "установить ftp: ssl-allow no; отладка; открыть -u root, $ DEPLOY_PASSWORD -p 22 $ DEPLOY_HOST…"

1-й, удалите set ftp:ssl-allow no; или установите yes.

2-й, вы сказали «SFTP» в заголовке и используете порт 22; протокол SFTP - это не FTP, это совершенно другой протокол; чтобы использовать его, вы должны настроить lftp на использование протокола, используя URL с протоколом sftp://:

lftp -c "debug; open -u root,$DEPLOY_PASSWORD sftp://$DEPLOY_HOST…"
0 голосов
/ 04 сентября 2018

Вы установили ftp:ssl-allow no, но вы подключаетесь к порту 22, который, скорее всего, является службой SSL.

Предполагается, что вы собираетесь использовать SSL для подключения. Попробуйте: set ftp:ssl-allow true; как часть команды lftp.

Страница man lftp сообщает:

ftp: ssl-allow (логическое значение) если это правда, попробуйте согласовать SSL-соединение с FTP-сервером для неанонимного доступа. По умолчанию это правда. Этот и другие параметры SSL доступны, только если lftp был скомпилирован с библиотекой ssl / tls.

...