How do you rsync build files from Gitlab CI to another server

5.3k views Asked by At

It's unclear to me how to get my build files from the Gitlab CI (hosted on https://ci.gitlab.com) over to my personal server using rsync.

I have setup 1 test and 1 deploy job.

Under the deploy tab I have inputed the bash commands to:

  1. Install rsync
  2. Update packages
  3. Finally, the rsync command to transfer files over SSH to my personal server.

When I enter the SSH credentials (with verbose flag on) for my private personal server, it would appear that the SSH key is the issue. In Gitlab, I have already established the deploy key (for hooks - tested this and it works).

Where do I locate the public SSH key for the Gitlab deploy instance so that I can install that key on my server?

Below is the exact script entered in Gitlab CI deploy job script pane:

# Run as root
(
set -e
set -u
set -x
apt-get update -y
apt-get -y install rsync
)
git clone https://github.com/bla/deployments.git $HOME/deploy/deployments
SVR_WEB1_WEBSERVER="000.11.22.333"
USER1="franklin"
GROUP1="team1"
FROM_DIR="/gitlab-ci-runner/tmp/builds/myrepo-1/"
DEST1="subdomains/gitlab/myrepo"
EXCLUSIONS_LIST="${HOME}/deploy/deployments/exclusions/exclusions.txt"
ssh -v "$USER1@$SVR_WEB1_WEBSERVER"
/usr/bin/rsync -avzh --progress --delete -e ssh --group=$GROUP1 -p --exclude-from "$EXCLUSIONS_LIST" "$FROM_DIR" "$USER1@$SVR_WEB1_WEBSERVER:$DEST1"
1

There are 1 answers

2
Theodor On

Providing your private ssh key is dangerous unless you use your own gitlab-ci runners for deployment. That's why it is better to use rsync modules.