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
(cherry picked from commit c35cacbf4c)
This commit is contained in:
Jesse Pretorius 2017-05-02 11:27:37 +01:00 committed by Jesse Pretorius (odyssey4me)
parent 2d05b59181
commit c41844e9c7
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: