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.

A few task names are cosmetically changed to better reflect their
purpose.

Change-Id: I827b5b07aa7b441e866e042355775a6ff8566920
This commit is contained in:
Jesse Pretorius 2016-08-02 14:49:22 +01:00
parent 5bbf93cd76
commit a8f6cf9611
3 changed files with 26 additions and 9 deletions

View File

@ -16,6 +16,10 @@
## Verbosity Options
debug: False
# Set the package install state for distribution packages
# Options are 'present' and 'latest'
neutron_package_state: "latest"
neutron_git_repo: https://git.openstack.org/openstack/neutron
neutron_git_install_branch: master

View File

@ -0,0 +1,13 @@
---
features:
- The os_neutron 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
``neutron_package_state`` to ``present``.
upgrade:
- The os_neutron 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
``neutron_package_state`` should be set to ``present``.

View File

@ -16,7 +16,7 @@
- name: Add Ubuntu Cloud Archive keyring
apt:
pkg: ubuntu-cloud-keyring
state: latest
state: "{{ neutron_package_state }}"
register: add_uca_keys
when: neutron_uca_enable | bool
@ -44,17 +44,17 @@
- name: Install neutron apt dependencies
apt:
pkg: "{{ item }}"
state: latest
state: "{{ neutron_package_state }}"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
with_items: "{{ neutron_apt_packages }}"
- name: Install apt packages for lxb
- name: Install apt packages for LXB
apt:
pkg: "{{ item }}"
state: latest
state: "{{ neutron_package_state }}"
register: install_packages
until: install_packages|success
retries: 5
@ -64,10 +64,10 @@
- neutron_services['neutron-linuxbridge-agent']['group'] in group_names
- neutron_services['neutron-linuxbridge-agent'].service_en | bool
- name: Install apt packages for ovs
- name: Install apt packages for OVS
apt:
pkg: "{{ item }}"
state: latest
state: "{{ neutron_package_state }}"
register: install_packages
until: install_packages|success
retries: 5
@ -80,7 +80,7 @@
- name: Install apt packages for LBaaS
apt:
pkg: "{{ item }}"
state: latest
state: "{{ neutron_package_state }}"
register: install_packages
until: install_packages|success
retries: 5
@ -93,7 +93,7 @@
- name: Install apt packages for VPNaaS
apt:
pkg: "{{ item }}"
state: latest
state: "{{ neutron_package_state }}"
register: install_packages
until: install_packages|success
retries: 5
@ -103,7 +103,7 @@
- neutron_services['neutron-vpnaas-agent']['group'] in group_names
- neutron_vpnaas | bool
- name: remove specific apt packages
- name: Remove known problem packages
apt:
pkg: "{{ item }}"
state: absent