Ansible -> 如何强制执行所有任务?

Ansible -> How to force execution of all tasks?

我们想重置服务器安装。

我们已经有了 Ansible 脚本来设置我们的服务器,所以我们想执行它。 但是 Ansible 检查,例如有些文件已经存在,然后跳过准备这些文件的步骤,但我们想覆盖所有文件。

有什么方便的选择吗?

根据评论更新

在那种情况下(服务器上的证书需要重新生成)我的剧本中有一个 nuke 标志,它始终设置为 false 和一个执行清理的任务

- file:
    path: '{{ item }}'
    state: absent
  when: nuke
  with_items:
    - /path/to/file1
    - /path/to/file2

当我需要重新创建东西时,我使用 ansible 和

ansible-playbook pb.yml -e nuke=true

这不是最优雅的解决方案,但它完成了工作。


旧的过时答案

没有任何标准的方法可以做到这一点。但我认为这没有任何意义。

Ansible 保证您提供的事物(即文件)的最终形式与您告诉它的是什么相匹配。

例如,如果您部署这样的模板

- template:
  src: ./foo
  dest: /etc/foo
  owner: root

然后你执行它,文件保证有正确的内容并且归用户 root 所有。

您可以添加许多配置以确保(get_url 的校验和等)。