Saya memiliki lingkungan Gitlab menggunakan Gitlab CI, untuk proyek baru untuk bersaksi tentang file yang dikompilasi dan menyalin melalui rsync ke server produksi.
Mesin di mana membangun sumber daya ini adalah exec adalah gambar dari buruh pelabuhan (simpul 6), tapi sekarang saya harus menyalin file yang dihasilkan dari wadah itu perintah Docker ke server menggunakan linux ... Masalah saya adalah untuk terhubung melalui ssh melalui rsync.
Saat ini saya memiliki yang berikut:
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
Dengan ini saya mendapatkan:
/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
sumber
sumber
Jawaban:
ssh-copy-id meminta kata sandi. Anda dapat menggunakan
sshpass -e
dan mengatur variabel lingkungan SSHPASS di Gitlab.sumber
Anda tidak meneruskan kunci ssh ke rsync. Anda harus melakukan sesuatu seperti ini yang mengeksekusi perintah ssh untuk mengidentifikasi dengan benar kunci ssh:
sumber