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

时间:2016-11-30 09:39:13

标签: server task ansible execution overwrite

我们想重置服务器安装。

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

有没有方便的选择呢?

1 个答案:

答案 0 :(得分:4)

根据评论更新

在这种情况下(服务器上需要重新生成的证书)我的playbook中有一个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的校验和等)。