如何在ansible中删除复制/模板模块的“所有其他”文件?

时间:2015-10-02 13:30:41

标签: ansible ansible-playbook

小任务:

- name: Configure hosts
  template: src=host.cfg.j2 dest=/etc/shinken/hosts/{{item.host_name}}.cfg
  with_items: shinken_hosts
  when: shinken_hosts is defined
  notify: reload config

我想删除此任务配置的/ etc / shinken / hosts /中的所有其他配置(文件)。

我该怎么做?

(如果我在'shinken_hosts'中修改拼写错误,并且想要在名称中错误地自动删除旧配置,这非常重要。)

1 个答案:

答案 0 :(得分:1)

您可能需要查看this,幻灯片19。 这假定您知道特定目录中需要存在哪些文件,然后删除所有其他文件。

# tidy_expected: [‘conf1.cfg’, conf2.cfg’]
- find: paths={{tidy_path}} #/etc/myapp
  register: existing

- file: path={{item.path}} state=absent
  when: item.path|basename not in tidy_expected
  with_items: “{{existing.files|default([ ])}}”
  register: removed

- mail: body=“{{removed}}”