1

myserver我通过访问 url 访问位于服务器上的 Jenkins dashborad http://<myserver>:8080/。我已经在作业配置页面的构建部分编写了构建步骤。完成构建步骤后,我需要访问不同的服务器并执行命令行脚本。如何在与当前节点不同的服务器上运行命令行脚本?

4

2 回答 2

1

你基本上有两个选择。第一个是连接到您要在构建步骤中运行脚本的机器(例如使用 SSH)并以这种方式运行所有必需的命令。您需要为此设置 passworldess 访问权限(例如使用 SSH 密钥)。

第二种选择是将第二台机器添加为 Jenkins 从站,添加与该从站绑定的第二个作业并运行构建的后半部分,并告诉 Jenkins 在第一个作业完成后运行第二个作业。如果您需要将文件从第一个作业传递到第二个作业,您可以将它们作为工件提供并在第二个构建中下载它们。

我会选择第二种解决方案,因为它在概念上更干净。不过,设置的工作量更大。

于 2013-04-01T12:32:05.417 回答
1

我们有听起来类似的情况,我们运行一些必须在非 Jenkins 主机上启动的自动化测试。为此,我们使用 ssh 和密钥身份验证,这需要在Execute shell步骤中进行一些设置:

# generic prep
eval `ssh-agent -s`
ssh-add ~/.ssh/my-agent-key

此时,密钥现在位于 ssh-agent 密钥环中,您可以 ssh 而无需担心接受该密钥的任何帐户和主机的密码。

ssh testuser@targetmachine "<commands>"
于 2013-04-01T12:35:59.753 回答