我试图将文件模板化到远程系统。应该调用该文件:
app_healthcheck-{{ var }}.sh.
其中{{ var }}
是编号值,例如01,02,03。
假设远程系统已经有这些文件:
app_healthcheck-01.sh
app_healthcheck-02.sh
app_healthcheck-03.sh
我希望ansible在模板化下一个文件时使用下一个可用的数字,即04。 Ansible需要查看目标中存在的文件,并选择要使用的下一个值。如果它是第一个文件,则选择01。
任何想法,我怎么能做到这一点?
答案 0 :(得分:0)
虽然Ansible可以肯定这一点,但我认为使用Ansible任务执行此操作会变得过于复杂。相反,我建议用您喜欢的语言编写脚本,然后使用脚本模块执行它。该脚本检测下一个ID,然后:
执行第一个选项的简单bash脚本可能如下所示:
#!/bin/bash
path=/tmp
name=app_healthcheck
i=1
while : ; do
j="00${i}"
j="${j: -2}"
if [ ! -f $path/$name-$j.sh ]; then
break
fi
let i++
done
echo $j
这简单地回应01,02,...,99无论下一个号码是免费的。
使用脚本模块运行它。
- script: myScript.sh
register: nextNumber
然后将结果用作{{ nextNumber.result }}