Ansible:阻止'改变'循环时

时间:2016-04-20 22:55:23

标签: ansible

我喜欢Ansible中的这种模式:

tasks:
  - name: install packages
    apt:
      name: "{{ item }}"
      update_cache: yes
      cache_valid_time: 3600
      state: latest
    with_items:
      - build-essential
      - git
      - libjpeg-dev

但是,即使没有安装任何内容,我每次都会收到更改通知。我不想设置changed_when: False。有没有办法从这个循环中获得正确的更改状态?

更新如果apt安装了任何内容,我希望将其更改为True。如果已经安装了所有内容,并且在循环遍历此列表时apt没有做任何工作,那么我希望将其更改为False。

我使用的是Ansible 2.0.1.0。

2 个答案:

答案 0 :(得分:1)

更改的指示是由于每次运行任务时都会执行apt缓存(apt-get update)。如果您只想指示软件包是否已安装,请删除update_cache:yes指令或设置为update_cache:no。

答案 1 :(得分:0)

在@ Petro026应用accepted answer之后,应该是什么。

tasks:
  - name: install packages
    apt:
      name: "{{ item }}"
      state: latest
    with_items:
      - build-essential
      - git
      - libjpeg-dev