openstack-ansible-os_octavia/tasks/octavia_post_install.yml
Dmitriy Rabotyagov 7659d1ac44 Delegate info gathering to setup host
We are not supposed to have neither openstack client nor clouds.yaml file
in octavia containers and all openstack commands are expected
to be executed on the setup (utility) host.

Change-Id: I93398ef72be3e423c721f92e4bf9077cd5e08d05
2020-12-11 14:02:50 +02:00

120 lines
4.5 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 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.
# iptables module doesn't see empty string as a null value so this is the only
# way to get a configurable rule definition in right now
- name: iptables rules
iptables: "{{ item }}"
with_items: "{{ octavia_iptables_rules }}"
when: octavia_ip_tables_fw | bool
# This is totally odd: If you run the commands via run-parts (as the script
# in the distro does) they return 1; but do their job. If you run them
# directly they work. Ignoring errors for now --
- name: save iptables rules (Debian/Ubuntu)
command: netfilter-persistent save
ignore_errors: yes
when: ansible_os_family == 'Debian'
- name: save iptables rules (CentOS)
shell: iptables-save > /etc/sysconfig/iptables
when:
- ansible_distribution == 'CentOS'
- name: Copy user provided HAProxy templates
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ octavia_system_user_name }}"
group: "{{ octavia_system_group_name }}"
mode: "0640"
with_items: "{{ octavia_user_haproxy_templates }}"
- name: Set octavia_nova_flavor_uuid if it is not already set
delegate_to: "{{ octavia_service_setup_host }}"
vars:
ansible_python_interpreter: "{{ octavia_service_setup_host_python_interpreter }}"
when:
- octavia_nova_flavor_uuid is not defined
block:
- name: Get Octavia flavor details
openstack.cloud.compute_flavor_info:
auth:
auth_url: "{{ keystone_service_adminurl }}"
username: "{{ octavia_service_user_name }}"
password: "{{ octavia_service_password }}"
project_name: "{{ octavia_service_project_name }}"
user_domain_name: "{{ octavia_service_user_domain_id }}"
project_domain_name: "{{ octavia_service_project_domain_id }}"
region_name: "{{ octavia_service_region }}"
name: "{{ octavia_amp_flavor_name }}"
interface: admin
verify: "{{ not keystone_service_adminuri_insecure }}"
register: get_flavor_info
until: get_flavor_info is success
retries: 5
- name: Set Octavia flavor UUID fact
set_fact:
octavia_nova_flavor_uuid: "{{ get_flavor_info.openstack_flavors[0].id }}"
- name: Set octavia_neutron_management_network_uuid if it is not already set
delegate_to: "{{ octavia_service_setup_host }}"
vars:
ansible_python_interpreter: "{{ octavia_service_setup_host_python_interpreter }}"
when:
- octavia_neutron_management_network_uuid is not defined
- octavia_neutron_management_network_name is defined
block:
- name: Get octavia management network details
openstack.cloud.networks_info:
auth:
auth_url: "{{ keystone_service_adminurl }}"
username: "{{ octavia_service_user_name }}"
password: "{{ octavia_service_password }}"
project_name: "{{ octavia_service_project_name }}"
user_domain_name: "{{ octavia_service_user_domain_id }}"
project_domain_name: "{{ octavia_service_project_domain_id }}"
region_name: "{{ octavia_service_region }}"
name: "{{ octavia_neutron_management_network_name }}"
interface: admin
verify: "{{ not keystone_service_adminuri_insecure }}"
register: get_net_info
until: get_net_info is success
retries: 5
delay: 10
- name: Set Octavia management network UUID fact
set_fact:
octavia_neutron_management_network_uuid: "{{ get_net_info.openstack_networks[0].id }}"
- name: Drop octavia Config(s)
config_template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: "{{ octavia_system_user_name }}"
group: "{{ octavia_system_group_name }}"
mode: "0640"
config_overrides: "{{ item.config_overrides }}"
config_type: "{{ item.config_type }}"
with_items:
- src: "octavia.conf.j2"
dest: "/etc/octavia/octavia.conf"
config_overrides: "{{ octavia_octavia_conf_overrides }}"
config_type: "ini"
notify:
- Restart octavia services
- Restart uwsgi services