Many method can be followed to install cloudkitty.
Retrieve and install cloudkitty:
git clone https://git.openstack.org/openstack/cloudkitty.git
cd cloudkitty
python setup.py install
This procedure installs the cloudkitty python library and the following executables:
Install sample configuration files:
mkdir /etc/cloudkitty
tox -e genconfig
cp etc/cloudkitty/cloudkitty.conf.sample /etc/cloudkitty/cloudkitty.conf
cp etc/cloudkitty/policy.json /etc/cloudkitty
cp etc/cloudkitty/api_paste.ini /etc/cloudkitty
Create the log directory:
mkdir /var/log/cloudkitty/
Retrieve and install cloudkitty client:
git clone https://git.openstack.org/openstack/python-cloudkittyclient.git
cd python-cloudkittyclient
python setup.py install
Retrieve and install cloudkitty’s dashboard:
git clone https://git.openstack.org/openstack/cloudkitty-dashboard.git
cd cloudkitty-dashboard
python setup.py install
Find where the python packages are installed:
PY_PACKAGES_PATH=`pip --version | cut -d' ' -f4`
#. 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 -sf $PY_PACKAGES_PATH/cloudkittydashboard/enabled/_[0-9]*.py \
/usr/share/openstack-dashboard/openstack_dashboard/enabled/
# Directly from sources:
ln -sf $PY_PACKAGES_PATH/cloudkittydashboard/enabled/_[0-9]*.py \
$PY_PACKAGES_PATH/openstack_dashboard/enabled/
Packages for RHEL/CentOS 7 and Ubuntu 16.04 are available for the Newton release.
Install the RDO repositories for Newton:
yum install centos-release-openstack-newton
Install the packages:
yum install openstack-cloudkitty-api openstack-cloudkitty-processor openstack-cloudkitty-ui
Enable the OpenStack repository for the Newton release:
apt install software-properties-common
add-apt-repository ppa:objectif-libre/cloudkitty
Upgrade the packages on your host:
apt update && apt dist-upgrade
Install the packages:
apt-get install cloudkitty-api cloudkitty-processor cloudkitty-dashboard
Edit /etc/cloudkitty/cloudkitty.conf to configure cloudkitty.
Then you need to know which keystone API version you use (which can be determined using openstack endpoint list)
[DEFAULT]
verbose = True
log_dir = /var/log/cloudkitty
[oslo_messaging_rabbit]
rabbit_userid = openstack
rabbit_password = RABBIT_PASSWORD
rabbit_host = RABBIT_HOST
rabbit_port = 5672
[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_DBPASSWORD@localhost/cloudkitty
[keystone_fetcher]
username = cloudkitty
password = CK_PASSWORD
tenant = service
region = RegionOne
url = http://localhost:5000/v2.0
[collect]
collector = ceilometer
period = 3600
services = compute, volume, network.bw.in, network.bw.out, network.floating, image
[ceilometer_collector]
username = cloudkitty
password = CK_PASSWORD
tenant = service
region = RegionOne
url = http://localhost:5000/v2.0
Please note that:
identity endpoints.
The following shows the basic configuration items:
[DEFAULT]
verbose = True
log_dir = /var/log/cloudkitty
[oslo_messaging_rabbit]
rabbit_userid = openstack
rabbit_password = RABBIT_PASSWORD
rabbit_host = RABBIT_HOST
rabbit_port = 5672
[ks_auth]
auth_type = v3password
auth_protocol = http
auth_url = http://localhost:5000/v3
identity_uri = http://localhost:35357/v3
username = cloudkitty
password = CK_PASSWORD
project_name = service
user_domain_name = default
project_domain_name = default
debug = True
[keystone_authtoken]
auth_section = ks_auth
[database]
connection = mysql://cloudkitty:CK_DBPASSWORD@localhost/cloudkitty
[keystone_fetcher]
auth_section = ks_auth
keystone_version = 3
[tenant_fetcher]
backend = keystone
[collect]
collector = ceilometer
period = 3600
services = compute, volume, network.bw.in, network.bw.out, network.floating, image
[ceilometer_collector]
auth_section = ks_auth
Please note that:
endpoints.
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_DBPASSWORD';
EOF
If you need to authorize the cloudkitty mysql user from another host you have to change the line accordingly.
Run the database synchronisation scripts:
cloudkitty-dbsync upgrade
Init the storage backend:
cloudkitty-storage-init
cloudkitty uses Keystone for authentication, and provides a rating service.
To integrate cloudkitty to Keystone, run the following commands (as OpenStack administrator):
openstack user create cloudkitty --password CK_PASSWORD --email cloudkitty@localhost
openstack role add --project service --user cloudkitty admin
Give the rating role to cloudkitty for each project that should be handled by cloudkitty:
openstack role create rating
openstack role add --project XXX --user cloudkitty rating
Create the rating service and its endpoints:
openstack service create rating --name cloudkitty \
--description "OpenStack Rating Service"
openstack endpoint create rating --region RegionOne \
public http://localhost:8889
openstack endpoint create rating --region RegionOne \
admin http://localhost:8889
openstack endpoint create rating --region RegionOne \
internal http://localhost:8889
Note
The default port for the API service changed from 8888 to 8889 in the Newton release. If you installed Cloudkitty in an earlier version, make sure to either explicitly define the [api]/port setting to 8888 in cloudkitty.conf, or update your keystone endpoints to use the 8889 port.
Start the API and processing services:
systemctl start cloudkitty-api.service
systemctl start cloudkitty-processor.service
Start the API and processing services:
cloudkitty-api --config-file /etc/cloudkitty/cloudkitty.conf
cloudkitty-processor --config-file /etc/cloudkitty/cloudkitty.conf