aboutsummaryrefslogtreecommitdiff
path: root/ansible
diff options
context:
space:
mode:
authorJeffrey Zhang <zhang.lei.fly@gmail.com>2016-09-19 02:44:27 +0800
committerJeffrey Zhang <jeffrey.zhang@99cloud.net>2016-09-25 14:01:43 +0000
commit7555054e7274f167f53591e15d19e85ef2dec34c (patch)
treee43c6da27d9f61c95fa5a739cb5f1cc5c13f4986 /ansible
parent898d438051cfc8124667f3f7954fe3f25b89b414 (diff)
downloadkolla-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')
-rw-r--r--ansible/roles/ceilometer/defaults/main.yml5
-rw-r--r--ansible/roles/ceilometer/tasks/bootstrap.yml3
-rw-r--r--ansible/roles/ceilometer/tasks/config.yml9
-rw-r--r--ansible/roles/ceilometer/templates/ceilometer-api.json.j211
-rw-r--r--ansible/roles/ceilometer/templates/ceilometer.conf.j26
-rw-r--r--ansible/roles/ceilometer/templates/wsgi-ceilometer-api.conf.j224
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>