Optimise apt cache update task

The update of the apt cache and the package installation
can all be handled in a single task by providing the
package action plugin with the right parameters. This
removes an extra task to optimise execution.

Also, Ansible 2.x allows the package module to consume
the package list in the name parameter instead of using
a with_items loop which further optimises the execution.

The minimum Ansible version is raised to 2.2 due to a
known bug [1] in Ansible's apt module which does not
update the cache properly if the cache update and the
install are combined in a single task.

[1] https://github.com/ansible/ansible-modules-core/issues/1497

Change-Id: Ia15e468a70f1ac90d8b7ce88f930f81e01afa3d4
This commit is contained in:
Jesse Pretorius 2017-05-02 11:27:37 +01:00
parent 73b47f723f
commit c35cacbf4c
2 changed files with 4 additions and 10 deletions

View File

@ -18,7 +18,7 @@ galaxy_info:
description: Installation and setup of horizon
company: Rackspace
license: Apache2
min_ansible_version: 2.0
min_ansible_version: 2.2
platforms:
- name: Ubuntu
versions:

View File

@ -13,13 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Ensure apt cache is up to date
apt:
update_cache: yes
cache_valid_time: "{{ cache_timeout }}"
when:
- ansible_pkg_mgr == 'apt'
- name: Create horizon dir
file:
path: "{{ item.path }}"
@ -46,13 +39,14 @@
- name: Install distro packages
package:
name: "{{ item }}"
name: "{{ horizon_distro_packages }}"
state: "{{ horizon_package_state }}"
update_cache: "{{ (ansible_pkg_mgr == 'apt') | ternary('yes', omit) }}"
cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
with_items: "{{ horizon_distro_packages }}"
- name: Create developer mode constraint file
copy: