23ec2726ab
This patch implements support for deploying an MNAIO with Open vSwitch and DVR. Change-Id: I0fb03e2eb0ead198c64019eb0cdd06451e1e7c94 Implements: openvswitch+dvr
223 lines
6.9 KiB
YAML
223 lines
6.9 KiB
YAML
---
|
|
# Copyright 2017, 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 witing, 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: Setup deploy host
|
|
hosts: deploy_hosts
|
|
gather_facts: "{{ gather_facts | default(true) }}"
|
|
environment: "{{ deployment_environment_variables | default({}) }}"
|
|
tags:
|
|
- deploy-osa
|
|
tasks:
|
|
- name: Gather variables for each operating system
|
|
include_vars: "{{ item }}"
|
|
with_first_found:
|
|
- "{{ playbook_dir }}/vars/{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
|
|
- "{{ playbook_dir }}/vars/{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
|
- "{{ playbook_dir }}/vars/{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml"
|
|
- "{{ playbook_dir }}/vars/{{ ansible_distribution | lower }}.yml"
|
|
- "{{ playbook_dir }}/vars/{{ ansible_os_family | lower }}.yml"
|
|
tags:
|
|
- always
|
|
|
|
# Example read-write git checkout from github
|
|
- name: Get OSA
|
|
git:
|
|
repo: "{{ osa_repo | default('https://opendev.org/openstack/openstack-ansible') }}"
|
|
dest: /opt/openstack-ansible
|
|
version: "{{ osa_branch | default('master') }}"
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
- clone_osa | default(true) | bool
|
|
|
|
- name: Create OSA configuration directory
|
|
file:
|
|
path: "/etc/openstack_deploy"
|
|
state: directory
|
|
owner: "root"
|
|
group: "root"
|
|
mode: "0755"
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
|
|
- name: Create OSA group_vars directory
|
|
file:
|
|
path: "/etc/openstack_deploy/group_vars"
|
|
state: directory
|
|
owner: "root"
|
|
group: "root"
|
|
mode: "0755"
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
|
|
- name: Copy default config files and directories
|
|
shell: >-
|
|
rsync
|
|
-av
|
|
--include='*.yml'
|
|
--include='*/'
|
|
--exclude='*'
|
|
/opt/openstack-ansible/etc/openstack_deploy/
|
|
/etc/openstack_deploy/
|
|
args:
|
|
executable: /bin/bash
|
|
chdir: /opt/openstack-ansible
|
|
warn: no
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
|
|
- name: Drop osa config
|
|
template:
|
|
src: "osa/openstack_user_config.yml"
|
|
dest: /etc/openstack_deploy/openstack_user_config.yml
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
|
|
- name: Drop osa user variables
|
|
template:
|
|
src: "osa/user_mnaio_variables.yml"
|
|
dest: /etc/openstack_deploy/user_mnaio_variables.yml
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
|
|
- name: Drop config to disable serial throttle settings
|
|
template:
|
|
src: "osa/user_unserial_variables.yml"
|
|
dest: /etc/openstack_deploy/user_unserial_variables.yml
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
- osa_disable_serial | default(false) | bool
|
|
|
|
- name: Drop OVS group_vars config
|
|
template:
|
|
src: "osa/ovs_network_hosts_group.yml"
|
|
dest: "/etc/openstack_deploy/group_vars/network_hosts"
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
- (osa_enable_networking_ovn | default(false) | bool) or
|
|
(osa_enable_networking_ovs_dvr | default(false) | bool)
|
|
|
|
- name: Drop NEUTRON OVN env.d config
|
|
template:
|
|
src: "osa/neutron-ovn-envd.yml"
|
|
dest: "/etc/openstack_deploy/env.d/neutron.yml"
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
- osa_enable_networking_ovn | default(false) | bool
|
|
|
|
- name: Drop NOVA OVN env.d config
|
|
template:
|
|
src: "osa/nova-ovn-envd.yml"
|
|
dest: "/etc/openstack_deploy/env.d/nova.yml"
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
- osa_enable_networking_ovn | default(false) | bool
|
|
|
|
- name: Drop ELK env.d config
|
|
template:
|
|
src: "osa/elk-envd.yml"
|
|
dest: "/etc/openstack_deploy/env.d/elk.yml"
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
- osa_enable_elk_metrics | default(false) | bool
|
|
|
|
- name: Drop ELK conf.d config
|
|
template:
|
|
src: "osa/elk-confd.yml"
|
|
dest: "/etc/openstack_deploy/conf.d/elk.yml"
|
|
mode: "0644"
|
|
owner: root
|
|
group: root
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
- osa_enable_elk_metrics | default(false) | bool
|
|
|
|
- name: Ensure the user_variables file is populated
|
|
lineinfile:
|
|
path: /etc/openstack_deploy/user_variables.yml
|
|
regexp: '^{{ item }}'
|
|
line: '{{ item }}'
|
|
create: yes
|
|
with_items:
|
|
- '---'
|
|
- 'osa_ops_mnaio: true'
|
|
when:
|
|
- pre_config_osa | default(true) | bool
|
|
|
|
- name: Bootstrap ansible
|
|
command: bash ./scripts/bootstrap-ansible.sh
|
|
args:
|
|
chdir: /opt/openstack-ansible
|
|
when:
|
|
- run_osa | default(true) | bool
|
|
|
|
- name: Create passwords
|
|
command: ./scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml
|
|
args:
|
|
chdir: /opt/openstack-ansible
|
|
when:
|
|
- run_osa | default(true) | bool
|
|
|
|
- name: Config Tmux
|
|
lineinfile:
|
|
path: /root/.tmux.conf
|
|
regexp: '^set-option'
|
|
line: 'set-option -g history-limit 20000'
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
create: yes
|
|
|
|
- name: Run OSA
|
|
command: "{{ item }}"
|
|
args:
|
|
chdir: /opt/openstack-ansible/playbooks
|
|
with_items:
|
|
- tmux new-session -d -s build-osa
|
|
- tmux select-pane -t 0
|
|
- tmux send-keys "ulimit -n 10240" C-m
|
|
- tmux send-keys "openstack-ansible setup-hosts.yml setup-infrastructure.yml setup-openstack.yml" C-m
|
|
when:
|
|
- inventory_hostname == groups['deploy_hosts'][0]
|
|
- run_osa | default(true) | bool
|
|
|
|
- name: Finished notice
|
|
debug:
|
|
msg: |
|
|
OSA deploy running. To check on the state of this deployment, login
|
|
to the {{ groups['deploy_hosts'][0] }} VM and attach to the "build-osa" tmux session.
|
|
when:
|
|
- run_osa | default(true) | bool
|