6a23e61012
The rabbitmq config should be under section `oslo_messaging_rabbit` Change-Id: I1def5d338d10c01dfb693c459c559690397226ba Closes-bug: #1512970
256 lines
5.9 KiB
ReStructuredText
256 lines
5.9 KiB
ReStructuredText
#########################################
|
|
CloudKitty installation and configuration
|
|
#########################################
|
|
|
|
|
|
Install from source
|
|
===================
|
|
|
|
There is no release of CloudKitty as of now, the installation can be done from
|
|
the git repository.
|
|
|
|
Retrieve and install CloudKitty:
|
|
|
|
::
|
|
|
|
git clone git://git.openstack.org/openstack/cloudkitty
|
|
cd cloudkitty
|
|
python setup.py install
|
|
|
|
This procedure installs the ``cloudkitty`` python library and a few
|
|
executables:
|
|
|
|
* ``cloudkitty-api``: API service
|
|
* ``cloudkitty-processor``: Processing service (collecting and rating)
|
|
* ``cloudkitty-dbsync``: Tool to create and upgrade the database schema
|
|
* ``cloudkitty-storage-init``: Tool to initiate the storage backend
|
|
* ``cloudkitty-writer``: Reporting tool
|
|
|
|
Install sample configuration files:
|
|
|
|
::
|
|
|
|
mkdir /etc/cloudkitty
|
|
cp etc/cloudkitty/cloudkitty.conf.sample /etc/cloudkitty/cloudkitty.conf
|
|
cp etc/cloudkitty/policy.json /etc/cloudkitty
|
|
|
|
Install from packages
|
|
=====================
|
|
|
|
Packages for RHEL/CentOS 7 and Ubuntu 14.04 are available for the Kilo release.
|
|
|
|
For RHEL/CentOS 7
|
|
-----------------
|
|
|
|
#. Enable the EPEL and RDO repositories for Kilo:
|
|
|
|
::
|
|
|
|
yum install https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
|
|
yum install http://rdo.fedorapeople.org/openstack-kilo/rdo-release-kilo.rpm
|
|
|
|
#. Create the ``/etc/yum.repos.d/cloudkitty.repo`` configuration file to enable
|
|
the CloudKitty repository:
|
|
|
|
.. code-block:: ini
|
|
|
|
[cloudkitty]
|
|
name=CloudKitty repository (Kilo)
|
|
baseurl=http://archive.objectif-libre.com/cloudkitty/el7/kilo/
|
|
gpgcheck=1
|
|
gpgkey=http://archive.objectif-libre.com/ol.asc
|
|
|
|
#. Install the packages:
|
|
|
|
::
|
|
|
|
yum install cloudkitty-api cloudkitty-processor cloudkitty-dashboard
|
|
|
|
|
|
For Ubuntu 14.04
|
|
----------------
|
|
|
|
#. Enable the Canonical cloud-archive repository for the Kilo release:
|
|
|
|
::
|
|
|
|
apt-get install ubuntu-cloud-keyring
|
|
echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/kilo main" > \
|
|
/etc/apt/sources.list.d/cloudarchive-kilo.list
|
|
|
|
|
|
#. Install the CloudKitty repository public key and configure apt:
|
|
|
|
::
|
|
|
|
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 71E414B3
|
|
echo 'deb http://archive.objectif-libre.com/cloudkitty/ubuntu trusty/kilo main' > \
|
|
/etc/apt/sources.list.d/cloudkitty-kilo.list
|
|
apt-get update
|
|
|
|
#. Install the packages:
|
|
|
|
::
|
|
|
|
apt-get install cloudkitty-api cloudkitty-processor cloudkitty-dashboard
|
|
|
|
|
|
Configure CloudKitty
|
|
====================
|
|
|
|
Edit :file:`/etc/cloudkitty/cloudkitty.conf` to configure CloudKitty.
|
|
|
|
The following shows the basic configuration items:
|
|
|
|
.. code-block:: ini
|
|
|
|
[DEFAULT]
|
|
verbose = True
|
|
log_dir = /var/log/cloudkitty
|
|
|
|
[oslo_messaging_rabbit]
|
|
rabbit_userid = openstack
|
|
rabbit_password = RABBIT_PASSWORD
|
|
rabbit_hosts = RABBIT_HOST
|
|
|
|
[auth]
|
|
username = cloudkitty
|
|
password = CK_PASSWORD
|
|
tenant = service
|
|
region = RegionOne
|
|
url = http://localhost:5000/v2.0
|
|
|
|
[keystone_authtoken]
|
|
username = cloudkitty
|
|
password = CK_PASSWORD
|
|
project_name = service
|
|
region = RegionOne
|
|
auth_url = http://localhost:5000/v2.0
|
|
auth_plugin = password
|
|
|
|
[database]
|
|
connection = mysql://cloudkitty:CK_DBPASS@localhost/cloudkitty
|
|
|
|
[keystone_fetcher]
|
|
username = admin
|
|
password = ADMIN_PASSWORD
|
|
tenant = admin
|
|
region = RegionOne
|
|
url = http://localhost:5000/v2.0
|
|
|
|
[ceilometer_collector]
|
|
username = cloudkitty
|
|
password = CK_PASSWORD
|
|
tenant = service
|
|
region = RegionOne
|
|
url = http://localhost:5000
|
|
|
|
|
|
Setup the database and storage backend
|
|
======================================
|
|
|
|
MySQL/MariaDB is the recommended database engine. To setup the database, use
|
|
the ``mysql`` client:
|
|
|
|
::
|
|
|
|
mysql -uroot -p << EOF
|
|
CREATE DATABASE cloudkitty;
|
|
GRANT ALL PRIVILEGES ON cloudkitty.* TO 'cloudkitty'@'localhost' IDENTIFIED BY 'CK_DBPASS';
|
|
EOF
|
|
|
|
|
|
Run the database synchronisation scripts:
|
|
|
|
::
|
|
|
|
cloudkitty-dbsync upgrade
|
|
|
|
|
|
Init the storage backend:
|
|
|
|
::
|
|
|
|
cloudkitty-storage-init
|
|
|
|
|
|
Setup Keystone
|
|
==============
|
|
|
|
CloudKitty uses Keystone for authentication, and provides a ``rating`` service.
|
|
|
|
To integrate CloudKitty to Keystone, run the following commands (as OpenStack
|
|
administrator):
|
|
|
|
::
|
|
|
|
keystone user-create --name cloudkitty --pass CK_PASS
|
|
keystone user-role-add --user cloudkitty --role admin --tenant service
|
|
|
|
|
|
Give the ``rating`` role to ``cloudkitty`` for each tenant that should be
|
|
handled by CloudKitty:
|
|
|
|
::
|
|
|
|
keystone role-create --name rating
|
|
keystone user-role-add --user cloudkitty --role rating --tenant XXX
|
|
|
|
|
|
Create the ``rating`` service and its endpoints:
|
|
|
|
::
|
|
|
|
keystone service-create --name CloudKitty --type rating
|
|
keystone endpoint-create --service-id RATING_SERVICE_ID \
|
|
--publicurl http://localhost:8888 \
|
|
--adminurl http://localhost:8888 \
|
|
--internalurl http://localhost:8888
|
|
|
|
Start CloudKitty
|
|
================
|
|
|
|
Start the API and processing services:
|
|
|
|
::
|
|
|
|
cloudkitty-api --config-file /etc/cloudkitty/cloudkitty.conf
|
|
cloudkitty-processor --config-file /etc/cloudkitty/cloudkitty.conf
|
|
|
|
|
|
Horizon integration
|
|
===================
|
|
|
|
Retrieve and install CloudKitty's dashboard:
|
|
|
|
::
|
|
|
|
git clone git://git.openstack.org/openstack/cloudkitty-dashboard
|
|
cd cloudkitty-dashboard
|
|
python setup.py install
|
|
|
|
|
|
Find where the python packages are installed:
|
|
|
|
::
|
|
|
|
PY_PACKAGES_PATH=`pip --version | cut -d' ' -f4`
|
|
|
|
|
|
Then add the enabled file to the horizon settings or installation. Depending on
|
|
your setup, you might need to add it to ``/usr/share`` or directly in the
|
|
horizon python package:
|
|
|
|
::
|
|
|
|
# If horizon is installed by packages:
|
|
ln -s $PY_PACKAGES_PATH/cloudkittydashboard/enabled/_[0-9]*.py \
|
|
/usr/share/openstack-dashboard/openstack_dashboard/enabled/
|
|
|
|
# Directly from sources:
|
|
ln -s $PY_PACKAGES_PATH/cloudkittydashboard/enabled/_[0-9]*.py \
|
|
$PY_PACKAGES_PATH/openstack_dashboard/enabled/
|
|
|
|
|
|
Restart the web server hosting Horizon.
|