你如何rsync从Gitlab CI构建文件到另一台服务器

时间:2015-06-17 17:51:01

标签: rsync ssh-keys gitlab-ci

我不清楚如何使用rsync将我的构建文件从Gitlab CI(托管在https://ci.gitlab.com上)上传到我的个人服务器。

我已设置 1测试 1部署作业。

部署标签下,我已将bash命令输入:

  1. 安装rsync
  2. 更新套件
  3. 最后,将rsync命令发送到 通过SSH将文件传输到我的个人服务器。
  4. 当我为我的私人个人服务器输入SSH凭据(打开详细标记)时,似乎SSH密钥就是问题。在Gitlab中,我已经建立了部署密钥(用于挂钩 - 测试了这个并且它可以工作)。

    我在哪里找到Gitlab部署实例的公共SSH密钥,以便我可以在我的服务器上安装该密钥?

    以下是在Gitlab CI部署作业脚本窗格中输入的确切脚本:

    # 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 个答案:

答案 0 :(得分:0)

除非您使用自己的gitlab-ci运行程序进行部署,否则提供私有ssh密钥是危险的。这就是使用rsync modules更好的原因。