openstack-ansible-os_neutron/tasks/neutron_install.yml
Logan V f1b82f43c4 Allow neutron services to move around environment
Enable neutron services to be moved around the environment by
addressing the service groups directly in neutron tasks instead of
assuming everything lives on the neutron_agents containers.

Change-Id: I631226d695ae5e916d74be51a126896e45589610
Closes-Bug: #1510202
2016-01-18 17:21:30 -06:00

172 lines
4.1 KiB
YAML

---
# 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.
- name: Update apt sources
apt:
update_cache: yes
cache_valid_time: 600
register: apt_update
until: apt_update|success
retries: 5
delay: 2
tags:
- neutron-apt-packages
- name: Install apt packages
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
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
- name: Install requires pip packages
pip:
name: "{{ item }}"
state: present
extra_args: "{{ pip_install_options|default('') }}"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
with_items:
- "{{ neutron_requires_pip_packages }}"
tags:
- neutron-install
- neutron-pip-packages
- name: Attempt venv download
get_url:
url: "{{ neutron_venv_download_url }}"
dest: "/var/cache/{{ neutron_venv_download_url | basename }}"
ignore_errors: true
register: get_venv
when: neutron_venv_enabled | bool
tags:
- neutron-install
- neutron-pip-packages
- name: Set neutron get_venv fact
set_fact:
neutron_get_venv: "{{ get_venv }}"
when: neutron_venv_enabled | bool
tags:
- neutron-install
- neutron-pip-packages
- name: Create neutron venv dir
file:
path: "{{ neutron_venv_bin | dirname }}"
state: directory
when:
- neutron_venv_enabled | bool
- neutron_get_venv | success
tags:
- neutron-install
- neutron-pip-packages
- name: Unarchive pre-built venv
unarchive:
src: "/var/cache/{{ neutron_venv_download_url | basename }}"
dest: "{{ neutron_venv_bin | dirname }}"
copy: "no"
when:
- neutron_venv_enabled | bool
- neutron_get_venv | success
tags:
- neutron-install
- neutron-pip-packages
- name: Update virtualenv path
command: >
virtualenv-tools --update-path=auto {{ neutron_venv_bin | dirname }}
when:
- neutron_venv_enabled | bool
- neutron_get_venv | success
tags:
- neutron-install
- neutron-pip-packages
- name: Install pip packages (venv)
pip:
name: "{{ item }}"
state: present
virtualenv: "{{ neutron_venv_bin | dirname }}"
virtualenv_site_packages: "no"
extra_args: "{{ pip_install_options|default('') }}"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
with_items:
- "{{ neutron_pip_packages }}"
when:
- neutron_venv_enabled | bool
- neutron_get_venv | failed
tags:
- neutron-install
- neutron-pip-packages
- name: Install pip packages (no venv)
pip:
name: "{{ item }}"
state: present
extra_args: "{{ pip_install_options|default('') }}"
register: install_packages
until: install_packages|success
retries: 5
delay: 2
with_items:
- "{{ neutron_pip_packages }}"
when: not neutron_venv_enabled | bool
tags:
- neutron-install
- neutron-pip-packages