Optimise apt cache update task

In https://review.openstack.org/457391 we consolidated
the package install tasks into one set, but it's also
possible to provide the package action plugin the
parameters for the underlying module, so we do that
here to get rid of the apt cache update task.

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: If3209379c04b3bfdf3fd8af8615fc6e0036b1c52
This commit is contained in:
Jesse Pretorius 2017-04-20 15:07:56 +01:00
parent d7e47fa89e
commit b259318aee
2 changed files with 5 additions and 8 deletions

View File

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

View File

@ -13,17 +13,12 @@
# 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: Install memcached packages
package:
name: "{{ item }}"
state: "{{ memcached_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
@ -34,6 +29,8 @@
package:
name: "{{ item }}"
state: "{{ memcached_package_state }}"
update_cache: "{{ (ansible_pkg_mgr == 'apt') | ternary('yes', omit) }}"
cache_valid_time: "{{ (ansible_pkg_mgr == 'apt') | ternary(cache_timeout, omit) }}"
register: install_test_packages
until: install_test_packages | success
retries: 5