From 1bd9abbac066e75a428c663e231aa7fde4872c93 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius <jesse.pretorius@rackspace.co.uk> Date: Tue, 2 Aug 2016 13:40:54 +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: I96f436aa64e65089af345d17af70291e30cc8cc6 --- defaults/main.yml | 3 +++ .../notes/package-state-b97c7b252aee4c20.yaml | 13 +++++++++++++ tasks/designate_install_apt.yml | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/package-state-b97c7b252aee4c20.yaml diff --git a/defaults/main.yml b/defaults/main.yml index 0b9711f..0388fff 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -16,6 +16,9 @@ ## Verbosity Options debug: False +# Set the package install state for distribution packages +# Options are 'present' and 'latest' +designate_package_state: "latest" # These variables are used in 'developer mode' in order to allow the role # to build an environment directly from a git source without the presence diff --git a/releasenotes/notes/package-state-b97c7b252aee4c20.yaml b/releasenotes/notes/package-state-b97c7b252aee4c20.yaml new file mode 100644 index 0000000..8433b10 --- /dev/null +++ b/releasenotes/notes/package-state-b97c7b252aee4c20.yaml @@ -0,0 +1,13 @@ +--- +features: + - The os_designate 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 + ``designate_package_state`` to ``present``. +upgrade: + - The os_designate 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 + ``designate_package_state`` should be set to ``present``. diff --git a/tasks/designate_install_apt.yml b/tasks/designate_install_apt.yml index 6c5781b..e02296c 100644 --- a/tasks/designate_install_apt.yml +++ b/tasks/designate_install_apt.yml @@ -28,7 +28,7 @@ - name: Install apt packages apt: pkg: "{{ item }}" - state: latest + state: "{{ designate_package_state }}" register: install_packages until: install_packages|success retries: 5