我编写了以下Groovy代码:
#!/usr/local/bin/groovy
def p = ['/usr/local/bin/aws', 'ec2', 'describe-vpcs'].execute() | 'grep -w CidrBlock'.execute() | ['awk', '{print $2}'].execute() | ['tr', '-d', '"\\"\\|,\\|\\{\\|\\\\["'].execute() | 'uniq'.execute()
p.waitFor()
def output = []
p.text.eachLine { line ->
output << line
}
output.each {
println it
}
输出如下:
172.31.0.0/16
172.60.0.0/16
172.54.0.0/16
172.59.0.0/16
此代码的输出将添加到Jenkins的扩展参数中,并显示正在使用的CIDR块列表。
目前,该命令仅返回默认区域us-west-2的输出。
我想运行此代码并收集所有地区使用的所有CIDR块(在我的情况下,它是俄勒冈[us-west-2],爱尔兰[eu-west-1]和弗吉尼亚[我们] -east-1])。
怎么做?
答案 0 :(得分:1)
对于所有可用区域:
def regions = ['/usr/local/bin/aws', 'ec2', 'describe-regions', '--output', 'text'].execute() | 'cut -f3'.execute()
regions.waitFor()
def output = []
regions.text.eachLine { region ->
def p = ['/usr/local/bin/aws', 'ec2', 'describe-vpcs', '--region', region].execute() | 'grep -w CidrBlock'.execute() | ['awk', '{print $2}'].execute() | ['tr', '-d', '"\\"\\|,\\|\\{\\|\\\\["'].execute() | 'uniq'.execute()
p.waitFor()
p.text.eachLine { line ->
output << line
}
}
output.each {
println it
}