From c35cacbf4c060d1b43267a2cb6ba4e4fe8443fe7 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Tue, 2 May 2017 11:27:37 +0100 Subject: [PATCH] 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 --- meta/main.yml | 2 +- tasks/horizon_install.yml | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/meta/main.yml b/meta/main.yml index f3f502be..697d4adf 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -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: diff --git a/tasks/horizon_install.yml b/tasks/horizon_install.yml index 73412dc7..fcd1e43d 100644 --- a/tasks/horizon_install.yml +++ b/tasks/horizon_install.yml @@ -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: