来自Jenkins的Rsync到Google Compute引擎实例

Rja*_*jdi 4 git rsync bitbucket jenkins google-compute-engine

我想将文件从Jenkins发送到我在Google Compute引擎实例中的实例我在jenkins的配置中添加了一个版本:

rsync -vrzhe "ssh -i /var/lib/jenkins/.ssh/google_compute_engine -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no" . login@Host:/var/www
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Checking out Revision 59cf9dd819fe2168c4c40f716707d58b2b99e251 (refs/remotes/origin/master)
> git config core.sparsecheckout # timeout=10
> git checkout -f 59cf9dd819fe2168c4c40f716707d58b2b99e251
> git rev-list 59cf9dd819fe2168c4c40f716707d58b2b99e251 # timeout=10
[Platform] $ /bin/sh -xe /tmp/hudson4502433356962914860.sh
+ rsync -vrzhe 'ssh -i /var/lib/jenkins/.ssh -o UserKnownHostsFile=/dev/null -o 
Run Code Online (Sandbox Code Playgroud)

StrictHostKeyChecking = no'.login @ host:/ var/www ssh:连接到主机主机端口22:连接超时rsync:连接意外关闭(到目前为止收到0个字节)[sender] rsync错误:无法解释的错误(代码255)在io.c(601 )[sender = 3.0.7]构建步骤'Exécuterunscript shell'将构建标记为失败完成:FAILURE

任何的想法

Ali*_*sro 12

首先配置.ssh配置文件(假设你安装了gcloud sdk):

gcloud compute config-ssh
Run Code Online (Sandbox Code Playgroud)

它会告诉你"现在你可以通过运行来使用ssh/scp和你的实例了

ssh your-instance
Run Code Online (Sandbox Code Playgroud)

你的实例通常采用"instance.zone.project"的形式.

现在你可以rsync:

rsync -ave ssh your-local-dir your-instance:~/your-destination
Run Code Online (Sandbox Code Playgroud)

完成.

如果您愿意,可以提及用户:

rsync -ave ssh your-local-dir your-user@your-instance:~/your-destination
Run Code Online (Sandbox Code Playgroud)

它对我有用.Juts不要忘记用正确的替换"你的实例"(和你的用户).您可以通过"gcloud compute config-ssh"或"gcloud compute config-ssh --dry-run"获取它,或者转到您的cloud.google.com然后计算引擎然后是vm实例然后从connect choose view gcloud命令.All将以"instance.zone.project"的形式显示您的实例名称.

我希望它将来会帮助别人.:)


小智 6

也许有点晚了,但您可以gcloud compute ssh直接使用该命令,而不用查找 google ssh 密钥。

首先,您必须创建一个脚本来隐藏 gcloud 中的 rsync ssh 命令参数:

cat >./gcloud-compute-ssh <<EOF
#! /bin/sh
host="$1"
shift
exec gcloud compute ssh "$host" -- "$@"
EOF

chmod a+x ./gcloud-compute-ssh
Run Code Online (Sandbox Code Playgroud)

然后你就可以rsync -e随心所欲地:

rsync -e ./gcloud-compute-ssh my-dir my-instance:/my-dir
Run Code Online (Sandbox Code Playgroud)


Rja*_*jdi 1

问题出在我的公钥上,因此要解决该问题,您需要:

1 - 设置 ssh 密钥:运行

gcloud compute ssh example-instance
Run Code Online (Sandbox Code Playgroud)

2 - 将 .ssh/google_compute_engine.pub 内容复制到 GCE VMauthorized_key 中

3 - 重新启动虚拟机实例

感谢您的帮助