From 2629d0b398749e7ca56acded51010be12bce911e Mon Sep 17 00:00:00 2001 From: Jean-Philippe Evrard Date: Tue, 17 May 2016 15:11:03 +0100 Subject: [PATCH] Updated role using the Multi-Distro framework * The default apt packages have been moved into a var file that is only loaded when the detected OS is matched. * The Install task file has had the apt specific tasks moved into a named install task file. * The iptables checksum fix script is now conditional on the distro * The creation of the upstart scripts is now dependent on distro version * LBaaS scripts location can be updated based on the distro version Implements: blueprint multi-platform-host Change-Id: I5d19fa31ce359fc7e0d40c481e231133fd518ecb Signed-off-by: Jean-Philippe Evrard --- tasks/main.yml | 6 +++ tasks/neutron_install-apt.yml | 89 +++++++++++++++++++++++++++++++++++ tasks/neutron_install.yml | 77 ++---------------------------- tasks/neutron_lbaas.yml | 22 +++++---- vars/ubuntu-14.04.yml | 5 ++ 5 files changed, 115 insertions(+), 84 deletions(-) create mode 100644 tasks/neutron_install-apt.yml diff --git a/tasks/main.yml b/tasks/main.yml index f8c69fe8..b49bec28 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -34,7 +34,13 @@ - include: neutron_pre_install.yml - include: neutron_install.yml - include: neutron_post_install.yml + +# neutron system services - include: neutron_upstart_init.yml + when: + - ansible_distribution | lower == 'ubuntu' + - ansible_distribution_version | version_compare('16.04', '<') + - include: neutron_lbaas.yml - include: neutron_db_setup.yml diff --git a/tasks/neutron_install-apt.yml b/tasks/neutron_install-apt.yml new file mode 100644 index 00000000..f95411f4 --- /dev/null +++ b/tasks/neutron_install-apt.yml @@ -0,0 +1,89 @@ +--- +# Copyright 2014, Rackspace US, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache +#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged +#in 1.9.x or we move to 2.0 (if tested working) +- name: Check apt last update file + stat: + path: /var/cache/apt + register: apt_cache_stat + tags: + - neutron-apt-packages + +- name: Update apt if needed + apt: + update_cache: yes + when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}" + tags: + - neutron-apt-packages + +- name: Install neutron apt dependencies + apt: + pkg: "{{ item }}" + state: latest + register: install_packages + until: install_packages|success + retries: 5 + delay: 2 + with_items: "{{ neutron_apt_packages }}" + tags: + - neutron-install + - neutron-apt-packages + +- name: Install apt packages for LBaaS + apt: + pkg: "{{ item }}" + state: latest + register: install_packages + until: install_packages|success + retries: 5 + delay: 2 + with_items: "{{ neutron_lbaas_apt_packages }}" + when: + - inventory_hostname in groups[neutron_services['neutron-lbaas-agent']['group']] + - neutron_lbaas | bool or neutron_lbaasv2 | bool + tags: + - neutron-install + - neutron-apt-packages + +- name: Install apt packages for VPNaaS + apt: + pkg: "{{ item }}" + state: latest + register: install_packages + until: install_packages|success + retries: 5 + delay: 2 + with_items: "{{ neutron_vpnaas_apt_packages }}" + when: + - inventory_hostname in groups[neutron_services['neutron-vpnaas-agent']['group']] + - neutron_vpnaas | bool + tags: + - neutron-install + - neutron-apt-packages + +- name: remove specific apt packages + apt: + pkg: "{{ item }}" + state: absent + register: remove_packages + until: remove_packages|success + retries: 5 + delay: 2 + with_items: "{{ neutron_apt_remove_packages }}" + tags: + - neutron-install + - neutron-apt-packages \ No newline at end of file diff --git a/tasks/neutron_install.yml b/tasks/neutron_install.yml index d3904e8e..046ba14e 100644 --- a/tasks/neutron_install.yml +++ b/tasks/neutron_install.yml @@ -13,82 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -#TODO(michaelgugino): Break out tasks into yum/apt install steps as -#required. -#TODO(evrardjp): Replace the next 2 tasks by a standard apt with cache -#when https://github.com/ansible/ansible-modules-core/pull/1517 is merged -#in 1.9.x or we move to 2.0 (if tested working) -- name: Check apt last update file - stat: - path: /var/cache/apt - register: apt_cache_stat - tags: - - neutron-apt-packages - -- name: Update apt if needed - apt: - update_cache: yes - when: "ansible_date_time.epoch|float - apt_cache_stat.stat.mtime > {{cache_timeout}}" - tags: - - neutron-apt-packages - -- name: Install neutron apt dependencies - apt: - pkg: "{{ item }}" - state: latest - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: "{{ neutron_apt_packages }}" - tags: - - neutron-install - - neutron-apt-packages - -- name: Install apt packages for LBaaS - apt: - pkg: "{{ item }}" - state: latest - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: "{{ neutron_lbaas_apt_packages }}" +- include: neutron_install-apt.yml when: - - inventory_hostname in groups[neutron_services['neutron-lbaas-agent']['group']] - - neutron_lbaas | bool or neutron_lbaasv2 | bool + - ansible_pkg_mgr == 'apt' tags: - - neutron-install - - neutron-apt-packages - -- name: Install apt packages for VPNaaS - apt: - pkg: "{{ item }}" - state: latest - register: install_packages - until: install_packages|success - retries: 5 - delay: 2 - with_items: "{{ neutron_vpnaas_apt_packages }}" - when: - - inventory_hostname in groups[neutron_services['neutron-vpnaas-agent']['group']] - - neutron_vpnaas | bool - tags: - - neutron-install - - neutron-apt-packages - -- name: remove specific apt packages - apt: - pkg: "{{ item }}" - state: absent - register: remove_packages - until: remove_packages|success - retries: 5 - delay: 2 - with_items: "{{ neutron_apt_remove_packages }}" - tags: - - neutron-install - - neutron-apt-packages + - install-apt - name: Create developer mode constraint file copy: diff --git a/tasks/neutron_lbaas.yml b/tasks/neutron_lbaas.yml index 808f4a62..2b3a13e9 100644 --- a/tasks/neutron_lbaas.yml +++ b/tasks/neutron_lbaas.yml @@ -20,30 +20,32 @@ # # These tasks will ensure that the correct agent is the only one running. -- name: Check if LBaaS agent v1 upstart script exists when v2 is in neutron_plugin_base - stat: path=/etc/init/neutron-lbaas-agent.conf - register: neutron_lbaas_upstart +- name: Check if LBaaS agent v1 startup script exists when v2 is in neutron_plugin_base + stat: + path: "{{ neutron_lbaasv1_initscript_path }}" + register: neutron_lbaas_startup when: neutron_lbaasv2 | bool -- name: Check if LBaaS agent v2 upstart script exists when v1 is in neutron_plugin_base - stat: path=/etc/init/neutron-lbaasv2-agent.conf - register: neutron_lbaasv2_upstart +- name: Check if LBaaS agent v2 startup script exists when v1 is in neutron_plugin_base + stat: + path: "{{ neutron_lbaasv2_initscript_path }}" + register: neutron_lbaasv2_startup when: neutron_lbaas | bool - name: Ensure LBaaS v1 agent is stopped when v2 is in neutron_plugin_base service: - name: neutron-lbaas-agent + name: "{{ neutron_lbaasv1_agent_servicename }}" enabled: no state: stopped when: - neutron_lbaasv2 | bool - - neutron_lbaas_upstart.stat.exists + - neutron_lbaas_startup.stat.exists - name: Ensure LBaaS v2 agent is stopped when v1 is in neutron_plugin_base service: - name: neutron-lbaasv2-agent + name: "{{ neutron_lbaasv2_agent_servicename }}" enabled: no state: stopped when: - neutron_lbaas | bool - - neutron_lbaasv2_upstart.stat.exists + - neutron_lbaasv2_startup.stat.exists diff --git a/vars/ubuntu-14.04.yml b/vars/ubuntu-14.04.yml index e5851abb..80b109b7 100644 --- a/vars/ubuntu-14.04.yml +++ b/vars/ubuntu-14.04.yml @@ -38,3 +38,8 @@ neutron_lbaas_apt_packages: neutron_apt_remove_packages: - conntrackd + +neutron_lbaasv1_initscript_path: "/etc/init/neutron-lbaas-agent.conf" +neutron_lbaasv2_initscript_path: "/etc/init/neutron-lbaasv2-agent.conf" +neutron_lbaasv1_agent_servicename: "neutron-lbaas-agent" +neutron_lbaasv2_agent_servicename: "neutron-lbaasv2-agent" \ No newline at end of file