Installing 3rd party software, e.g. elasticsearch, sometimes involves adding an apt repo:
- name: Add apt repository apt_repository: repo='deb https://example.com/apt/example jessie main'
Once this has been added, it’s necessary to call apt-get update before the new software can be installed. It’s tempting to do so by adding update_cache=yes to the apt call:
- name: Install pkg apt: name=example update_cache=yes
But a better solution is to separate the two:
- name: Add apt repository apt_repository: repo='deb https://example.com/apt/example jessie main' register: apt_source_added - name: Update cache apt: update_cache=yes when: apt_source_added|changed - name: Install pkg apt: name=example
This ensures that the (time consuming) update only happens the first time, when the new repo is added. It also makes it much clearer what is taking the time, if the build hangs.
EDIT: I completely forgot that it’s possible to add the update_cache attribute directly to the apt_repository call. Much simpler!
- name: Add apt repository apt_repository: repo='deb https://example.com/apt/example jessie main' update_cache=yes - name: Install pkg apt: name=example