diff --git a/ansible/roles/cinder/handlers/main.yml b/ansible/roles/cinder/handlers/main.yml index 8e6a9ebe62..7c5c593c8a 100644 --- a/ansible/roles/cinder/handlers/main.yml +++ b/ansible/roles/cinder/handlers/main.yml @@ -21,6 +21,9 @@ or cinder_conf.changed | bool or policy_json.changed | bool or cinder_api_container.changed | bool + or (kolla_base_distro in ['debian', 'ubuntu'] + and kolla_install_type == 'binary' + and wsgi_cinder_api | changed) - name: Restart cinder-scheduler container vars: diff --git a/ansible/roles/cinder/tasks/config.yml b/ansible/roles/cinder/tasks/config.yml index e32254aee4..3f808ddde0 100644 --- a/ansible/roles/cinder/tasks/config.yml +++ b/ansible/roles/cinder/tasks/config.yml @@ -24,6 +24,25 @@ - Restart cinder-volume container - Restart cinder-backup container +- name: Copying over cinder-wsgi.conf + vars: + service: "{{ cinder_services['cinder-api'] }}" + template: + src: "{{ item }}" + dest: "{{ node_config_directory }}/cinder-api/cinder-wsgi.conf" + with_first_found: + - "{{ node_custom_config }}/cinder/{{ inventory_hostname }}/cinder-wsgi.conf" + - "{{ node_custom_config }}/cinder/cinder-wsgi.conf" + - "cinder-wsgi.conf.j2" + register: wsgi_cinder_api + when: + - inventory_hostname in groups[service.group] + - service.enabled | bool + - kolla_base_distro in ['debian', 'ubuntu'] + - kolla_install_type == 'binary' + notify: + - Restart cinder-api container + - name: Copying over cinder.conf merge_configs: vars: diff --git a/ansible/roles/cinder/templates/cinder-api.json.j2 b/ansible/roles/cinder/templates/cinder-api.json.j2 index 4733681256..9a38426f41 100644 --- a/ansible/roles/cinder/templates/cinder-api.json.j2 +++ b/ansible/roles/cinder/templates/cinder-api.json.j2 @@ -1,5 +1,6 @@ +{% set command = '/usr/sbin/apache2 -DFOREGROUND' if kolla_base_distro in ['ubuntu', 'debian'] and kolla_install_type == 'binary' else 'cinder-api --config-file /etc/cinder/cinder.conf' %} { - "command": "cinder-api --config-file /etc/cinder/cinder.conf", + "command": "{{ command }}", "config_files": [ { "source": "{{ container_config_directory }}/cinder.conf", @@ -13,7 +14,13 @@ "owner": "cinder", "perm": "0600", "optional": true - } + }{% if kolla_base_distro in ['ubuntu', 'debian'] and kolla_install_type == 'binary' %}, + { + "source": "{{ container_config_directory }}/cinder-wsgi.conf", + "dest": "/etc/apache2/conf-enabled/cinder-wsgi.conf", + "owner": "cinder", + "perm": "0600" + }{% endif %} ], "permissions": [ { diff --git a/ansible/roles/cinder/templates/cinder-wsgi.conf.j2 b/ansible/roles/cinder/templates/cinder-wsgi.conf.j2 new file mode 100644 index 0000000000..0b6b3e1e14 --- /dev/null +++ b/ansible/roles/cinder/templates/cinder-wsgi.conf.j2 @@ -0,0 +1,15 @@ +{% set python_path = '/usr/lib/python2.7/site-packages' if kolla_install_type == 'binary' else '/var/lib/kolla/venv/lib/python2.7/site-packages' %} +Listen {{ api_interface_address }}:{{ cinder_api_port }} + + + WSGIDaemonProcess cinder-api processes={{ openstack_service_workers }} threads=1 user=cinder group=cinder display-name=%{GROUP} python-path={{ python_path }} + WSGIProcessGroup cinder-api + WSGIScriptAlias / /var/www/cgi-bin/cinder/cinder-wsgi + WSGIApplicationGroup %{GLOBAL} + WSGIPassAuthorization On + = 2.4> + ErrorLogFormat "%{cu}t %M" + + ErrorLog /var/log/kolla/cinder/cinder-api.log + CustomLog /var/log/kolla/cinder/cinder-api-access.log combined + diff --git a/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 b/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 index 0fde7a720a..03d8788088 100644 --- a/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 +++ b/ansible/roles/common/templates/conf/filter/01-rewrite.conf.j2 @@ -1,7 +1,7 @@ @type rewrite_tag_filter capitalize_regex_backreference yes - rewriterule1 programname ^(horizon-access|ceilometer-api-access|keystone-apache-admin-access|keystone-apache-public-access)$ apache_access + rewriterule1 programname ^(horizon-access|ceilometer-api-access|keystone-apache-admin-access|keystone-apache-public-access|cinder-api-access)$ apache_access rewriterule2 programname ^aodh_wsgi_access$ wsgi_access rewriterule3 programname ^(nova-api|nova-compute|nova-conductor|nova-consoleauth|nova-manage|nova-novncproxy|nova-scheduler|nova-placement-api|placement-api|placement-api-access|privsep-helper).* openstack_python rewriterule4 programname ^(sahara-api|sahara-engine).* openstack_python