Jenkins:如何测试代理

rekjcdws  于 8个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(79)

我正在创建一个Jenkins作业列表,用于对我们的Jenkins构建环境进行健全性测试。我想创建作业层。第一层作业将检查环境,例如,如果所有代理都已启动,第二层则可以检查与其他工具的集成,如GitHub,TFS,SonarQube,然后第三层可以运行一些典型的构建项目。这个健全性测试也可以用于在Jenkins服务器发生任何重大变化后验证环境。
我们在两台服务器上创建了大约10个代理,一台是Windows,一台是Linux。我知道我可以创建一个作业在特定的代理上运行,因此测试代理是否在线,但这样我就需要创建10个作业来测试所有代理。是否有一个最好的方法来检查所有代理是否在线?

ev7lccsx

ev7lccsx1#

一个选择是使用Jenkins Groovy脚本来完成这样的任务。Groovy plugin提供了Jenkins Script Console(一种有用的实验方法)和运行groovy脚本作为构建步骤的能力。如果你打算使用脚本控制台进行定期维护,你还需要Scriptler plugin,它允许你管理你运行的脚本。
Manage Jenkins -> Script Console 中,您可以编写一个groovy脚本来遍历slaves并检查它们是否在线:

for (node in Jenkins.instance.nodes) {
  println "${node.name}, ${node.numExecutors}"
  def computer = node.computer
  println "Online: ${computer.online}, ${computer.connectTime} (${computer.offlineCauseReason})" 
}

字符串
完成基本检查后,可以在Scriptler中创建一个独立的脚本,或者创建一个特殊的构建来定期运行这些检查。
通常需要一些迭代来找出要检查的正确属性集。正如我在another answer中所描述的,您可以编写函数来内省可用于脚本的对象。因此,通过一些试验和错误,您可以开发一个脚本来执行您想要运行的检查。

相关问题