diff options
| author | Jeffrey Zhang <zhang.lei.fly@gmail.com> | 2016-09-19 02:44:27 +0800 |
|---|---|---|
| committer | Jeffrey Zhang <jeffrey.zhang@99cloud.net> | 2016-09-25 14:01:43 +0000 |
| commit | 7555054e7274f167f53591e15d19e85ef2dec34c (patch) | |
| tree | e43c6da27d9f61c95fa5a739cb5f1cc5c13f4986 /ansible | |
| parent | 898d438051cfc8124667f3f7954fe3f25b89b414 (diff) | |
| download | kolla-7555054e7274f167f53591e15d19e85ef2dec34c.tar.gz kolla-7555054e7274f167f53591e15d19e85ef2dec34c.zip | |
Fix the failure of ceilometer-api container
* ceilometer-api script is removed and run ceilometer-api by using apache
* fix connection url in ceilometer.conf
Closes-Bug: #1624905
Change-Id: Iffb00ca418bab6521d61b16de4f5760aa1ae1ac7
Diffstat (limited to 'ansible')
6 files changed, 54 insertions, 4 deletions
diff --git a/ansible/roles/ceilometer/defaults/main.yml b/ansible/roles/ceilometer/defaults/main.yml index 6546dc1d0..fc30fc8de 100644 --- a/ansible/roles/ceilometer/defaults/main.yml +++ b/ansible/roles/ceilometer/defaults/main.yml @@ -7,7 +7,10 @@ project_name: "ceilometer" #################### ceilometer_database_name: "ceilometer" ceilometer_database_user: "ceilometer" -ceilometer_database_address: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mongodb_port }}{% if not loop.last %},{% endif %}{% endfor %}" +ceilometer_database_address_mappings: + mongodb: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ mongodb_port }}{% if not loop.last %},{% endif %}{% endfor %}" + mysql: "{{ kolla_internal_fqdn }}:{{ database_port }}" +ceilometer_database_address: "{{ ceilometer_database_address_mappings[ceilometer_database_type] }}" #################### diff --git a/ansible/roles/ceilometer/tasks/bootstrap.yml b/ansible/roles/ceilometer/tasks/bootstrap.yml index 0e6f77fc2..e6780394f 100644 --- a/ansible/roles/ceilometer/tasks/bootstrap.yml +++ b/ansible/roles/ceilometer/tasks/bootstrap.yml @@ -49,3 +49,6 @@ - ceilometer_database_type == "mysql" - include: bootstrap_service.yml + when: + - ceilometer_database_type == "mysql" + - database.created diff --git a/ansible/roles/ceilometer/tasks/config.yml b/ansible/roles/ceilometer/tasks/config.yml index d227d757d..bb3519ceb 100644 --- a/ansible/roles/ceilometer/tasks/config.yml +++ b/ansible/roles/ceilometer/tasks/config.yml @@ -22,6 +22,15 @@ - "ceilometer-central" - "ceilometer-compute" +- name: Copying over ceilometer-api.conf + template: + src: "{{ item }}" + dest: "{{ node_config_directory }}/ceilometer-api/wsgi-ceilometer-api.conf" + with_first_found: + - "{{ node_custom_config }}/ceilometer/{{ inventory_hostname }}/wsgi-ceilometer-api.conf" + - "{{ node_custom_config }}/ceilometer/wsgi-ceilometer-api.conf" + - "wsgi-ceilometer-api.conf.j2" + - name: Copying over ceilometer.conf merge_configs: vars: diff --git a/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 b/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 index 4fa11e321..ed8ae5ebe 100644 --- a/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 +++ b/ansible/roles/ceilometer/templates/ceilometer-api.json.j2 @@ -1,11 +1,20 @@ +{% set apache_cmd = 'apache2' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd' %} +{% set apache_dir = 'apache2/conf-enabled' if kolla_base_distro in ['ubuntu', 'debian'] else 'httpd/conf.d' %} +{% set apache_file = '000-default.conf' if kolla_base_distro in ['ubuntu', 'debian'] else 'ceilometer-api.conf' %} { - "command": "ceilometer-api", + "command": "/usr/sbin/{{ apache_cmd }} -DFOREGROUND", "config_files": [ { "source": "{{ container_config_directory }}/ceilometer.conf", "dest": "/etc/ceilometer/ceilometer.conf", "owner": "ceilometer", "perm": "0600" + }, + { + "source": "{{ container_config_directory }}/wsgi-ceilometer-api.conf", + "dest": "/etc/{{ apache_dir }}/{{ apache_file }}", + "owner": "ceilometer", + "perm": "0644" } ] } diff --git a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 index e54211d1f..cb27a26f8 100644 --- a/ansible/roles/ceilometer/templates/ceilometer.conf.j2 +++ b/ansible/roles/ceilometer/templates/ceilometer.conf.j2 @@ -13,9 +13,11 @@ host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['addr [database] {% if ceilometer_database_type == "mongodb" %} -connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} +event_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} +metering_connection = mongodb://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} {% elif ceilometer_database_type == "mysql" %} -connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} +event_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} +metering_connection = mysql+pymysql://{{ ceilometer_database_user }}:{{ ceilometer_database_password }}@{{ ceilometer_database_address }}/{{ ceilometer_database_name }} {% endif %} [keystone_authtoken] diff --git a/ansible/roles/ceilometer/templates/wsgi-ceilometer-api.conf.j2 b/ansible/roles/ceilometer/templates/wsgi-ceilometer-api.conf.j2 new file mode 100644 index 000000000..c91167f3e --- /dev/null +++ b/ansible/roles/ceilometer/templates/wsgi-ceilometer-api.conf.j2 @@ -0,0 +1,24 @@ +{% 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 }}:{{ ceilometer_api_port }} + +<VirtualHost *:{{ ceilometer_api_port }}> + LogLevel info + ErrorLog /var/log/kolla/ceilometer/ceilometer-api.log + CustomLog /var/log/kolla/ceilometer/ceilometer-api-access.log combined + + WSGIScriptReloading On + WSGIDaemonProcess ceilometer-api processes=5 threads=1 user=ceilometer group=ceilometer display-name=%{GROUP} python-path={{ python_path }} + WSGIProcessGroup ceilometer-api + WSGIScriptAlias / {{ python_path }}/ceilometer/api/app.wsgi + + <Directory "{{ python_path }}/ceilometer/api"> + <IfVersion >= 2.4> + Require all granted + </IfVersion> + <IfVersion < 2.4> + Order allow,deny + Allow from all + </IfVersion> + </Directory> + +</VirtualHost> |
