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: I51d051e1bd10a98e868afba4e11bd01c9d09c7a3
This commit is contained in:
Jesse Pretorius 2017-05-02 11:16:30 +01:00
parent 8da760568f
commit c9817c1b99
2 changed files with 4 additions and 10 deletions

View File

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

View File

@ -13,22 +13,16 @@
# 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 designate distro packages
package:
name: "{{ item }}"
name: "{{ designate_distro_packages }}"
state: "{{ designate_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: "{{ designate_distro_packages }}"
- name: Create developer mode constraint file
copy: