Start using uWSGI role
Move service to use uWSGI role instead of iternal task for uwsgi deployment. This aims to ease the maintenance of uWSGI and speedup metal deployments as the same uwsgi environment will be used across all services. Change-Id: Ia1788a7a9ce80349440bedbb2a0fdeb2a7f9934a
This commit is contained in:
parent
2d2774edf4
commit
ac93b1f46f
@ -44,7 +44,7 @@ mistral_pip_packages:
|
||||
- PyMySQL
|
||||
- python-memcached
|
||||
- systemd-python
|
||||
- uwsgi
|
||||
|
||||
mistral_optional_oslomsg_amqp1_pip_packages:
|
||||
- oslo.messaging[amqp1]
|
||||
mistral_venv_tag: "{{ venv_tag | default('untagged') }}"
|
||||
@ -77,18 +77,15 @@ mistral_services:
|
||||
service_name: mistral-api
|
||||
init_config_overrides: "{{ mistral_api_init_overrides }}"
|
||||
start_order: 2
|
||||
wsgi_overrides: "{{ mistral_api_uwsgi_ini_overrides }}"
|
||||
wsgi_app: true
|
||||
wsgi_name: mistral-wsgi-api
|
||||
uwsgi_overrides: "{{ mistral_api_uwsgi_ini_overrides }}"
|
||||
uwsgi_bind_address: "{{ mistral_bind_address }}"
|
||||
uwsgi_port: "{{ mistral_service_port }}"
|
||||
execstarts: "{{ mistral_uwsgi_bin }}/uwsgi --autoload --ini /etc/uwsgi/mistral-api.ini"
|
||||
execreloads: "{{ mistral_uwsgi_bin }}/uwsgi --reload /var/run/mistral-api/mistral-api.pid"
|
||||
|
||||
# UWSGI settings
|
||||
mistral_wsgi_processes_max: 16
|
||||
mistral_wsgi_processes: "{{ [[ansible_processor_vcpus|default(1), 1] | max * 2, mistral_wsgi_processes_max] | min }}"
|
||||
mistral_wsgi_buffer_size: 65535
|
||||
mistral_wsgi_threads: 1
|
||||
|
||||
# RPC
|
||||
|
@ -122,6 +122,16 @@
|
||||
- mistral-config
|
||||
- systemd-service
|
||||
|
||||
- name: Import uwsgi role
|
||||
import_role:
|
||||
name: uwsgi
|
||||
vars:
|
||||
uwsgi_services: "{{ uwsgi_mistral_services }}"
|
||||
uwsgi_install_method: "{{ mistral_install_method }}"
|
||||
tags:
|
||||
- mistral-config
|
||||
- uwsgi
|
||||
|
||||
- import_tasks: service_setup.yml
|
||||
vars:
|
||||
_service_adminuri_insecure: "{{ keystone_service_adminuri_insecure }}"
|
||||
|
@ -94,22 +94,3 @@
|
||||
value: true
|
||||
when: (install_packages is changed) or
|
||||
('need_service_restart' not in ansible_local['openstack_ansible']['mistral'])
|
||||
|
||||
- name: Ensure uWSGI directory exists
|
||||
file:
|
||||
path: "/etc/uwsgi/"
|
||||
state: directory
|
||||
mode: "0711"
|
||||
|
||||
- name: Apply uWSGI configuration
|
||||
config_template:
|
||||
src: "mistral-uwsgi.ini.j2"
|
||||
dest: "/etc/uwsgi/{{ item.service_name }}.ini"
|
||||
mode: "0744"
|
||||
config_overrides: "{{ item.wsgi_overrides }}"
|
||||
config_type: ini
|
||||
with_items: "{{ filtered_mistral_services }}"
|
||||
when: item.wsgi_app | default(False)
|
||||
notify:
|
||||
- Manage LB
|
||||
- Restart mistral services
|
||||
|
@ -30,6 +30,7 @@
|
||||
notify:
|
||||
- Manage LB
|
||||
- Restart mistral services
|
||||
- Restart uwsgi services
|
||||
|
||||
- name: Implement policy.json if there are overrides configured
|
||||
copy:
|
||||
|
@ -1,29 +0,0 @@
|
||||
# {{ ansible_managed }}
|
||||
[uwsgi]
|
||||
uid = {{ mistral_system_user_name }}
|
||||
gid = {{ mistral_system_group_name }}
|
||||
|
||||
{% if mistral_install_method == 'source' %}
|
||||
virtualenv = /openstack/venvs/mistral-{{ mistral_venv_tag }}
|
||||
{% endif %}
|
||||
{% if mistral_install_method == 'distro' and (ansible_os_family | lower) == 'debian' %}
|
||||
plugin = python3
|
||||
{% endif %}
|
||||
wsgi-file = {{ mistral_bin }}/{{ item.wsgi_name }}
|
||||
http = {{ item.uwsgi_bind_address }}:{{ item.uwsgi_port }}
|
||||
|
||||
master = true
|
||||
enable-threads = true
|
||||
processes = {{ mistral_wsgi_processes }}
|
||||
threads = {{ mistral_wsgi_threads }}
|
||||
exit-on-reload = false
|
||||
die-on-term = true
|
||||
lazy-apps = true
|
||||
add-header = Connection: close
|
||||
buffer-size = {{ mistral_wsgi_buffer_size }}
|
||||
thunder-lock = true
|
||||
disable-logging = true
|
||||
pidfile = /var/run/{{ item.service_name }}/{{ item.service_name }}.pid
|
||||
|
||||
# Avoid filling up the logs with health check requests from haproxy.
|
||||
route-user-agent = ^osa-haproxy-healthcheck$ donotlog:
|
@ -51,3 +51,7 @@
|
||||
src: https://opendev.org/openstack/ansible-role-python_venv_build
|
||||
scm: git
|
||||
version: master
|
||||
- name: uwsgi
|
||||
src: https://opendev.org/openstack/ansible-role-uwsgi
|
||||
scm: git
|
||||
version: master
|
||||
|
@ -24,12 +24,9 @@ mistral_distro_packages:
|
||||
mistral_service_distro_packages:
|
||||
- python3-mistral
|
||||
- python3-systemd
|
||||
- uwsgi
|
||||
- uwsgi-plugin-python3
|
||||
|
||||
mistral_oslomsg_amqp1_distro_packages:
|
||||
- libsasl2-modules
|
||||
- sasl2-bin
|
||||
|
||||
mistral_uwsgi_bin: '/usr/bin'
|
||||
cache_timeout: 600
|
||||
|
@ -23,9 +23,31 @@ filtered_mistral_services: |-
|
||||
{% for key, value in mistral_services.items() %}
|
||||
{% if (value['group'] in group_names) and
|
||||
(('condition' not in value) or
|
||||
('condition' in value and value['condition'])) %}
|
||||
('condition' in value and value['condition'])) and
|
||||
not ('wsgi_app' in value and value['wsgi_app']) %}
|
||||
{% set _ = value.update({'service_key': key}) %}
|
||||
{% set _ = services.append(value) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{ services | sort(attribute='start_order') }}
|
||||
{{ services | sort(attribute='start_order') }}
|
||||
|
||||
uwsgi_mistral_services: |-
|
||||
{% set services = {} %}
|
||||
{% for key, value in mistral_services.items() %}
|
||||
{% if (value['group'] in group_names) and
|
||||
(('condition' not in value) or ('condition' in value and value['condition']))
|
||||
and ('wsgi_app' in value and value['wsgi_app']) %}
|
||||
{% set _ = value.update(
|
||||
{
|
||||
'wsgi_path': mistral_bin ~ '/' ~ value.wsgi_name,
|
||||
'wsgi_venv': ((mistral_install_method == 'source') | ternary(mistral_bin | dirname, None)),
|
||||
'uwsgi_uid': mistral_system_user_name,
|
||||
'uwsgi_guid': mistral_system_group_name,
|
||||
'uwsgi_processes': mistral_wsgi_processes,
|
||||
'uwsgi_threads': mistral_wsgi_threads
|
||||
}
|
||||
) %}
|
||||
{% set _ = services.update({key: value}) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{ services }}
|
||||
|
@ -30,5 +30,3 @@ mistral_oslomsg_amqp1_distro_packages:
|
||||
- cyrus-sasl-lib
|
||||
- cyrus-sasl-plain
|
||||
- cyrus-sasl-md5
|
||||
|
||||
mistral_uwsgi_bin: '/usr/sbin'
|
@ -21,4 +21,3 @@ mistral_package_list: |-
|
||||
{{ packages }}
|
||||
|
||||
_mistral_bin: "/openstack/venvs/mistral-{{ mistral_venv_tag }}/bin"
|
||||
mistral_uwsgi_bin: "{{ _mistral_bin }}"
|
@ -27,5 +27,3 @@ mistral_oslomsg_amqp1_distro_packages:
|
||||
- cyrus-sasl
|
||||
- cyrus-sasl-plain
|
||||
- cyrus-sasl-digestmd5
|
||||
|
||||
mistral_uwsgi_bin: '/usr/sbin'
|
Loading…
Reference in New Issue
Block a user