如何通过 Jenkins 脚本控制台中的 groovy 脚本打印 AmazonEC2 Slave 详细信息

时间:2021-05-26 10:55:29

标签: jenkins groovy jenkins-pipeline jenkins-groovy cloudbees

我正在使用 CloudBees Jenkins。我们正在通过 AmazonEC2 插件配置动态运行器(或从属),其中我们提到了运行器详细信息,例如 AMI ID、密钥、区域、标签等,并且运行器是根据这些信息创建的。

我想编写一个我想在 Jenkins 脚本控制台中运行的 Groovy 脚本,以查看配置的所有此类运行器详细信息的详细信息。

我可以看到我需要的所有信息都存储在 hudson.plugins.ec2.SlaveTemplate 类中。

但是我看不到任何获取此类实例的方法。我设法写了这个,它只打印配置的从站的标签

Jenkins.instance.clouds
Jenkins.instance.clouds.each {
 
println it.name
}

任何人都可以通过 groovy 帮助打印所有(或至少一些如 AMI ID、区域等)吗?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案。如果这对其他人有帮助,请在此处分享:

import hudson.plugins.ec2.AmazonEC2Cloud
import hudson.plugins.ec2.SlaveTemplate
import hudson.slaves.Cloud
import com.cloudbees.opscenter.client.cloud.CloudImpl


Jenkins.instance.clouds.each {
  
  if(!(it instanceof CloudImpl)){
    
    
    Cloud cloud = it
    AmazonEC2Cloud ac = cloud
    
    List<SlaveTemplate>  stL = ac.getTemplates()
    
    for (SlaveTemplate st : stL){
      
      if(st == null){
       println "SlaveTemplate is null" 
      } else{
       
        println st.ami
        println st.labels 
      }
      
    }
    
    
  }

如果您想打印有关配置的从属设备的更多详细信息,可以在 https://javadoc.jenkins.io/plugin/ec2/hudson/plugins/ec2/SlaveTemplate.html

中找到 class attribute 名称