Ich habe eine Gitlab-Umgebung mit Gitlab CI, in der ein neues Projekt über die kompilierten Dateien aussagt und über rsync auf einen Produktionsserver kopiert wird.
Der Computer, auf dem diese Ressourcen erstellt werden, ist ein Image von Docker (Knoten 6), aber jetzt muss ich die resultierenden Dateien von diesem Container-Docker-Befehl unter Linux auf den Server kopieren ... Mein Problem ist die Verbindung über ssh through rsync.
Zur Zeit habe ich folgendes:
stages:
- deploy
before_script:
- npm i
- npm run build
job_deploy:
stage: deploy
script:
- ssh-keygen -t rsa -b 4096 -C '' -f ~/.ssh/deploy_rsa
- ssh-keyscan -H 8.8.8.8 >> ~/.ssh/known_hosts
- ssh-copy-id -i ~/.ssh/deploy_rsa.pub [email protected]
- rsync -avuz $CI_PROJECT_DIR/dist/ [email protected]:/var/wwww/example.com
only:
- master
Dadurch bekomme ich:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
ssh
deployment
gitlab
continuous-integration
Rodrigo Moreno
quelle
quelle
Antworten:
ssh-copy-id fragt nach einem Passwort. Sie können
sshpass -e
die SSHPASS-Umgebungsvariable in Gitlab verwenden und festlegen.quelle
Sie übergeben den ssh-Schlüssel nicht an rsync. Sie sollten so etwas tun, indem Sie den Befehl ssh ausführen, um den ssh-Schlüssel richtig zu identifizieren:
quelle