文章目录
- 一、判断参数的值是否为空
- `1.1.脚本内容`
- `1.2.执行结果`
- 二、当参数的值是好几个IP地址,该如何提取呢?
- `2.1.脚本`
- `2.2.执行结果`
- 三、把Job参数写入到/etc/ansible/hosts文件
- `脚本`
- `执行效果`
一、判断参数的值是否为空
Job使用参数化构建,配置参数DOCKER_HOST和DB_HOST,现在需在groovy脚本中判断它们的值是否为空
1.1.脚本内容
#!groovy
def jobParamsList = ['DOCKER_HOST','DB_HOST'] //把参数保存到列表中
for(param in jobParamsList) //遍历列表
{
if(! this."${param}")
{
throw new Exception("The param : ${param} is empty, please check...")
}
}
解释:
this.DOCKER_HOST #提取参数DOCKER_HOST的值
throw new Exception #抛出异常
1.2.执行结果
二、当参数的值是好几个IP地址,该如何提取呢?
2.1.脚本
#!groovy
def dockerIpList=this.DOCKER_HOST.split(",") //以逗号进行分割,并存入列表中
for (i=0;i<dockerIpList.size();i++)
{
println dockerIpList[i]
}
解释:
dockerIpList.size() #获取列表的长度
2.2.执行结果
三、把Job参数写入到/etc/ansible/hosts文件
脚本
#!groovy
def filePath = "/etc/ansible/hosts"
def backupPath = "/etc/ansible/host_bak"
def logTime = new Date().format('yyyyMMddHHmmss') //提取当前时间戳
if(! fileExists(backupPath)) {
sh "mkdir ${backupPath}"
}
if(fileExists(filePath)) {
sh "mv ${filePath} ${backupPath}/hosts_bak_${logTime}" //执行Shell命令
}
outFile = new File(filePath) //把文件转成一个File类
def dockerIpList=this.DOCKER_HOST.split(",") //以逗号进行分割,并存入列表中
outFile.append('['+'DOCKER_HOST'+']\n') //如果文件不存在,会创建
for (ip in dockerIpList) {
outFile.append(ip+'\n')
}
执行效果