如何在Jenkins的不同机器上执行命令行脚本

时间:2013-04-01 12:01:09

标签: jenkins

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

2 个答案:

答案 0 :(得分:1)

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

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

我会选择第二种解决方案,因为它在概念上更清洁。虽然设置起来还有很多工作要做。

答案 1 :(得分:1)

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

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

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

ssh testuser@targetmachine "<commands>"