Skip to main content
 首页 » 编程设计

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

2024年12月31日9Leo_wl

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

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

部署选项卡下,我已将 bash 命令输入到:

  1. 安装rsync
  2. 更新包
  3. 最后,rsync 命令 通过 SSH 将文件传输到我的个人服务器。

当我为我的私有(private)个人服务器输入 SSH 凭据(带有详细标志)时,SSH key 似乎是问题所在。在 Gitlab 中,我已经建立了部署 key (用于 Hook - 测试了它并且它有效)。

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

下面是在 Gitlab CI 部署作业脚本 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" 

请您参考如下方法:

除非您使用自己的 gitlab-ci 运行程序进行部署,否则提供您的私有(private) ssh key 是危险的。这就是为什么最好使用 rsync modules 的原因。 .