以最有效的方式删除多个文件(ansible)

时间:2016-07-11 09:05:51

标签: ansible

我想删除几个文件,现在我这样做:

- file: path=/etc/yum.repos.d/rhel6-6-hci-frozen.repo state=absent
  name: Ensure absence of old freeze files
- file: path=/etc/yum.repos.d/in-mrepo-rhel6.repo state=absent
  name: Ensure absence of old files

...

许多其他行

这个问题是ansible似乎逐个执行这些,而不是将它合并为一个任务:

TASK [Ensure absence of old freeze files] **************************************
changed: [server]

TASK [Ensure absence of old files] *********************************************
ok: [server]

TASK [Ensure absence of actual files] ******************************************
ok: [server]

TASK [Ensure absence of old rhel6 freeze files] ********************************
ok: [server]

TASK [Ensure absence of epel stuff] ********************************************
ok: [server]

TASK [Ensure absence of epel testing] ******************************************
ok: [server]

这花费了很多时间。有没有办法将此作为一项任务执行?我知道我可能只是执行一个shell脚本,但我希望能够以正确的方式执行此操作。

2 个答案:

答案 0 :(得分:4)

您可以将with_items键用作:

- name: Ensure absence of old freeze files
  file:
    path: '{{ item }}'
    state: absent
  with_items:
    - /etc/yum.repos.d/rhel6-6-hci-frozen.repo
    - /etc/yum.repos.d/in-mrepo-rhel6.repo

答案 1 :(得分:1)

我尝试了这个,它适用于ansible 1.9.2:

- name: Ensure absence of old freeze files
  file:
    path: /etc/yum.repos.d/*rhel6*.repo
    state: absent

当然,请确保您不会删除太多的回购文件。