patch - 有没有办法检查 ansible 是否应用了补丁?

标签 patch ansible

我想知道是否有一种方法可以使用 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/

相关文章:

export - 如何将最后几个补丁从 darcs-1 repo 转移到 darcs-2 一个(在别处转换)

database - 为数据库创建数据补丁(同步数据库)

ansible - 如何替换ansible中的特殊字符

ansible - 使用ansible docker_container模块获取容器的命令输出

permissions - 使用 Ansible 创建 GCE 实例,权限问题

regex - 正则表达式找不到任何匹配项来使用 ansible.builtin.replace 替换文本

google-cloud-platform - 如何使 Ansible Dynamic Inventory 与 Google Cloud Platform (Google Compute Engine)、GCP 一起使用

unity-game-engine - 如何在Unity3D中设计一款可打补丁的游戏?

azure - Azure redis 缓存补丁计划配置中的维护窗口属性是什么?

git 应用 : error trailing whitespace