我想知道是否有一种方法可以使用 ansible playbook 确定是否应用了补丁。例如,我有一个 shell 脚本,我需要打补丁,然后使用它的打补丁版本。如果它已被修补,则跳过该任务。
此刻,当我尝试执行修补任务时,我的 playbook 失败了,因为它已在之前的尝试中完成,并且在尝试修补已修补文件时出错。 谢谢
最佳答案
您也可以在打补丁之前进行测试。
patch -R --dry-run -f < patchfile;
if [ $? -eq 0 ] then
patch -f < patchfile
fi
作为一行(并使用 || 而不是 if..then)将是:
patch -R --dry-run -f < patchfile || patch -R -f < patchfile
基本上,它会尝试执行 patch -R 的试运行,尝试恢复补丁,如果失败,它会尝试修补它。
但这并非没有缺点,因为这两个命令都可能失败。
关于patch - 有没有办法检查 ansible 是否应用了补丁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31115049/