Tengo un entorno Gitlab con Gitlab CI, para un nuevo proyecto para testificar sobre los archivos compilados y copiarlos a través de rsync a un servidor de producción.
La máquina donde la compilación de estos recursos es exec es una imagen de docker (nodo 6), pero ahora tengo que copiar los archivos resultantes de ese comando Docker del contenedor al servidor usando Linux ... Mi problema es conectarme a través de ssh a través de rsync.
Actualmente tengo lo siguiente:
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
Por esto estoy obteniendo:
/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
fuente
fuente
Respuestas:
ssh-copy-id está pidiendo una contraseña. Puede usar
sshpass -e
y establecer la variable de entorno SSHPASS en Gitlab.fuente
No está pasando la clave ssh a rsync. Debería hacer algo como esto que ejecuta el comando ssh para identificar correctamente la clave ssh:
fuente