From 2529e2a3a809685b088d31e090aefcf22ace8c27 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Tue, 2 Aug 2016 14:55:38 +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: I2293575ad0422f546a2c4750f002955d75beb4d8 --- defaults/main.yml | 4 ++++ .../notes/package-state-38187ec5242a005b.yaml | 13 +++++++++++++ tasks/nova_compute_powervm_install.yml | 2 +- tasks/nova_install_apt.yml | 7 ++++--- 4 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/package-state-38187ec5242a005b.yaml diff --git a/defaults/main.yml b/defaults/main.yml index 66a63a0a..e2e2f1db 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -19,6 +19,10 @@ nova_ceilometer_enabled: False ## Verbosity Options debug: False +# Set the package install state for distribution packages +# Options are 'present' and 'latest' +nova_package_state: "latest" + nova_git_repo: https://git.openstack.org/openstack/nova nova_git_install_branch: master nova_requirements_git_repo: https://git.openstack.org/openstack/requirements diff --git a/releasenotes/notes/package-state-38187ec5242a005b.yaml b/releasenotes/notes/package-state-38187ec5242a005b.yaml new file mode 100644 index 00000000..fa175ae3 --- /dev/null +++ b/releasenotes/notes/package-state-38187ec5242a005b.yaml @@ -0,0 +1,13 @@ +--- +features: + - The os_nova 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 + ``nova_package_state`` to ``present``. +upgrade: + - The os_nova 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 + ``nova_package_state`` should be set to ``present``. diff --git a/tasks/nova_compute_powervm_install.yml b/tasks/nova_compute_powervm_install.yml index cfc9e10d..944e0d6a 100644 --- a/tasks/nova_compute_powervm_install.yml +++ b/tasks/nova_compute_powervm_install.yml @@ -61,7 +61,7 @@ - name: Install apt packages apt: pkg: "{{ item }}" - state: latest + state: "{{ nova_package_state }}" register: install_packages until: install_packages|success retries: 5 diff --git a/tasks/nova_install_apt.yml b/tasks/nova_install_apt.yml index 06f0d454..7be76561 100644 --- a/tasks/nova_install_apt.yml +++ b/tasks/nova_install_apt.yml @@ -16,6 +16,7 @@ - name: Add Ubuntu Cloud Archive key package apt: pkg: ubuntu-cloud-keyring + state: "{{ nova_package_state }}" when: nova_uca_enable register: nova_uca_add_keys tags: @@ -55,7 +56,7 @@ - name: Install apt packages (common) apt: pkg: "{{ item }}" - state: latest + state: "{{ nova_package_state }}" register: install_packages until: install_packages|success retries: 5 @@ -85,7 +86,7 @@ - name: Install apt packages (novnc console) apt: pkg: "{{ item }}" - state: latest + state: "{{ nova_package_state }}" register: install_packages until: install_packages|success retries: 5 @@ -102,7 +103,7 @@ - name: Install apt packages (compute - KVM) apt: pkg: "{{ item }}" - state: latest + state: "{{ nova_package_state }}" register: install_packages until: install_packages|success retries: 5