From 36351e9ce6abacec680b872313652b3c25b6d126 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Tue, 2 Aug 2016 15:43:34 +0100 Subject: [PATCH] Add ability to change apt/yum package state The current method of installing the distribution packages required is set in the tasks and cannot be changed by a deployer. Currently the apt task always installs the latest package. This results in unexpected binary changes when a deployer may simply be trying to execute a configuration change. This patch adds the ability for a deployer to change the desired state so that the results are predictable. Change-Id: Iee1c61e431e93c60d9fa95e66a7fe278d0a11d3c --- defaults/main.yml | 5 +++-- .../notes/package-state-9a2f60adb4ab68cd.yaml | 13 +++++++++++++ tasks/install_apt.yml | 2 +- tasks/install_yum.yml | 2 +- tasks/repo_cacher.yml | 4 ++-- 5 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 releasenotes/notes/package-state-9a2f60adb4ab68cd.yaml diff --git a/defaults/main.yml b/defaults/main.yml index defaf23..314d2b5 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -20,8 +20,9 @@ ## APT Cache Options cache_timeout: 600 -# Defines that the role will be deployed on a host machine -is_metal: true +# Set the package install state for distribution packages +# Options are 'present' and 'latest' +repo_server_package_state: "latest" repo_worker_connections: 1024 repo_server_name: openstack-slushee diff --git a/releasenotes/notes/package-state-9a2f60adb4ab68cd.yaml b/releasenotes/notes/package-state-9a2f60adb4ab68cd.yaml new file mode 100644 index 0000000..a426be6 --- /dev/null +++ b/releasenotes/notes/package-state-9a2f60adb4ab68cd.yaml @@ -0,0 +1,13 @@ +--- +features: + - The repo_server role now supports the ability to configure whether + apt/yum tasks install the latest available package, or just ensure + that the package is present. The default action is to ensure that + the latest package is present. The action taken may be changed to + only ensure that the package is present by setting + ``repo_server_package_state`` to ``present``. +upgrade: + - The repo_server role always checks whether the latest package is + installed when executed. If a deployer wishes to change the check to + only validate the presence of the package, the option + ``repo_server_package_state`` should be set to ``present``. diff --git a/tasks/install_apt.yml b/tasks/install_apt.yml index 93482f2..b2dcdd7 100644 --- a/tasks/install_apt.yml +++ b/tasks/install_apt.yml @@ -33,7 +33,7 @@ - name: Install repo server packages apt: pkg: "{{ item }}" - state: latest + state: "{{ repo_server_package_state }}" register: install_packages until: install_packages|success retries: 5 diff --git a/tasks/install_yum.yml b/tasks/install_yum.yml index c130371..421cbeb 100644 --- a/tasks/install_yum.yml +++ b/tasks/install_yum.yml @@ -16,7 +16,7 @@ - name: Install repo server packages yum: pkg: "{{ item }}" - state: latest + state: "{{ repo_server_package_state }}" register: install_packages until: install_packages|success retries: 5 diff --git a/tasks/repo_cacher.yml b/tasks/repo_cacher.yml index 005b301..93d3ed6 100644 --- a/tasks/repo_cacher.yml +++ b/tasks/repo_cacher.yml @@ -16,7 +16,7 @@ - name: Install repo caching server packages (yum) yum: pkg: "{{ item }}" - state: latest + state: "{{ repo_server_package_state }}" enablerepo: "epel-testing" register: install_packages until: install_packages|success @@ -30,7 +30,7 @@ - name: Install repo caching server packages (apt) apt: pkg: "{{ item }}" - state: latest + state: "{{ repo_server_package_state }}" register: install_packages until: install_packages|success retries: 5