From c5b5cda3d3836a6c95436b9e90122e3bc38a3ada Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Sun, 17 Mar 2019 17:29:15 +0200 Subject: [PATCH] Smarter updating of apt index during playbook execution We can register changes when adding repositories and keys and then update the apt package index conditionally. This should make it be more consistent between initial host setup and subsequent re-runs. --- roles/common/tasks/tarsnap.yml | 9 +++++++++ roles/mariadb/tasks/main.yml | 9 +++++++++ roles/nginx/tasks/main.yml | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/roles/common/tasks/tarsnap.yml b/roles/common/tasks/tarsnap.yml index 1f1a0ef..866a59f 100644 --- a/roles/common/tasks/tarsnap.yml +++ b/roles/common/tasks/tarsnap.yml @@ -1,12 +1,21 @@ --- - name: Add Tarsnap apt mirror template: src=tarsnap_sources.list.j2 dest=/etc/apt/sources.list.d/tarsnap.list owner=root group=root mode=0644 + register: add_tarsnap_apt_repository when: ansible_architecture != 'armv7l' - name: Add GPG key for Tarsnap apt_key: id=0x70BD6C50E82A9D99 url=https://pkg.tarsnap.com/tarsnap-deb-packaging-key.asc state=present + register: add_tarsnap_apt_key ignore_errors: yes +- name: Update apt cache + apt: + update_cache: yes + when: + add_tarsnap_apt_key is changed or + add_tarsnap_apt_repository is changed + - name: Install tarsnap apt: pkg=tarsnap update_cache=yes diff --git a/roles/mariadb/tasks/main.yml b/roles/mariadb/tasks/main.yml index c9b1426..a070ba8 100644 --- a/roles/mariadb/tasks/main.yml +++ b/roles/mariadb/tasks/main.yml @@ -1,12 +1,21 @@ --- - name: Add GPG key for MariaDB repo apt_key: id=0x177F4010FE56CA3336300305F1656F24C74CD1D8 url=https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x177F4010FE56CA3336300305F1656F24C74CD1D8 + register: add_mariadb_apt_key tags: mariadb, packages - name: Add MariaDB 10.3 repo template: src=mariadb.list.j2 dest=/etc/apt/sources.list.d/mariadb.list owner=root group=root mode=0644 + register: add_mariadb_apt_repository tags: mariadb, packages +- name: Update apt cache + apt: + update_cache: yes + when: + add_mariadb_apt_key is changed or + add_mariadb_apt_repository is changed + - name: Install mariadb-server apt: name={{ item }} state=present update_cache=yes loop: diff --git a/roles/nginx/tasks/main.yml b/roles/nginx/tasks/main.yml index f6f8eb0..dacf9c4 100644 --- a/roles/nginx/tasks/main.yml +++ b/roles/nginx/tasks/main.yml @@ -1,12 +1,21 @@ --- - name: Add nginx.org apt signing key apt_key: id=0x573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 url=https://nginx.org/keys/nginx_signing.key state=present + register: add_nginx_apt_key tags: nginx, packages - name: Add nginx.org repo template: src=nginx_org_sources.list.j2 dest=/etc/apt/sources.list.d/nginx_org_sources.list owner=root group=root mode=0644 + register: add_nginx_apt_repository tags: nginx, packages +- name: Update apt cache + apt: + update_cache: yes + when: + add_nginx_apt_key is changed or + add_nginx_apt_repository is changed + - name: Install nginx apt: pkg=nginx update_cache=yes state=present tags: nginx, packages