Jump to: navigation, search

Cloudpulse/DeveloperNotes

< Cloudpulse
Revision as of 11:15, 6 July 2017 by Sawchoud (talk | contribs) (Updated Cloudpulse installation steps.)

Steps to Install CloudPulse Server

Install RPM Packages

The following RPM packages need to be installed.

 yum install -y ansible mariadb-devel hostname gcc openstack-cloudpulse && yum clean all

Install Python packages

The required python packages need to be installed.

yum install -y python-oslo-versionedobjects python-novaclient python-cinderclient python-glanceclient python-neutronclient python-novaclient python-cinderclient python-glanceclient python-neutronclient python-pecan python-wsme python-paramiko python-openstackclient

Setup Cloudpulse database

The MySQL commands need to be run in the MySQL database host <db_host_ip>.

  • Create cloudpulse databse.
CREATE DATABASE IF NOT EXISTS cloudpulse DEFAULT CHARACTER SET utf8;
  • Grant all privileges to cloudpulse user for cloudpulse databse; set a password for cloudpulse user.
GRANT ALL PRIVILEGES ON cloudpulse.* TO 'cloudpulse@%' IDENTIFIED BY '<cloudpulse_mysql_user_password>';
  • Create cpulse table in cloudpulse databse.
create table IF NOT EXISTS cpulse ( id int NOT NULL AUTO_INCREMENT, uuid VARBINARY(128), name VARCHAR(128), state VARCHAR(128), created_at timestamp default current_timestamp, updated_at timestamp default 0, testtype VARBINARY(128), result TEXT, primary key (id));
  • Create cpulselock table in cloudpulse databse.
create table IF NOT EXISTS cpulselock ( id int NOT NULL AUTO_INCREMENT, test_name VARBINARY(128), conductor_id VARBINARY(128), created_at timestamp default current_timestamp, updated_at timestamp default 0 , primary key (id));

Create keystone user, service and endpoint

The following services have to be setup to make cloudpulse as a service.

  • Create user cloudpulse and set its password.
openstack user create --project service --password <cloudpulse_openstack_user_password> cloudpulse
  • Create cloudpulse service.
openstack service create --name cloudpulse --description "openstack health service" health
  • Add roles to cloudpulse user.
openstack role add --project admin --user cloudpulse admin
openstack role add --project service --user cloudpulse admin
  • Create openstack service endpoint.
openstack endpoint create --region RegionOne --adminurl  http://<host_ip>:9999 --internalurl http://<host_ip>:9999 --publicurl http://<host_ip>:9999 cloudpulse

Create cloudpulse configuration file

## cloudpulse.conf
## Modify and place this file in any location <path_cloudpulse.conf>.

[DEFAULT]
debug = False
verbose = True
logdir =  <cloudpulse_log_dir>
host =  <host_ip>
port = 9999 

[database]
connection = mysql://cloudpulse:<cloudpulse_mysql_user_password>@<db_host_ip>/cloudpulse?charset=utf8
max_retries = -1

[osapi_v3]
enabled = True

[keystone_authtoken]
auth_uri = http://<host_ip>:5000/v2.0
project_domain_name = default
project_name = service
user_domain_name = default
password = <keystone_admin_password>
username = cloudpulse
auth_url = http://<host_ip>:35357
auth_plugin = <cloudpulse_openstack_user_password>

[oslo_concurrency]
lock_path = /opt/stack/data/nova

[oslo_messaging_rabbit]
rabbit_userid = guest
rabbit_password = <rabbitmq_password>
rabbit_hosts = guest:<rabbitmq_password>@<controller_node_1_ip>:5672,guest:<rabbitmq_password>@<controller_node_2_ip>:5672,guest: <rabbitmq_password>@<controller_node_3_ip>:5672

[periodic_tests]
nova_endpoint = 240
neutron_endpoint = 240
cinder_endpoint = 240
glance_endpoint = 240
keystone_endpoint = 240
rabbitmq_check = 240
galera_check = 240
docker_check = 240

## Operator test only supported on containerized environments such as kolla/ansible openstack installer
[operator_test]
containerized = True
rabbit_container = `docker ps | grep rabbitmq | awk '{print $1}'`
galera_container = `docker ps | grep mariadb-app | awk '{print $1}'`
ceph_container = `docker ps | grep ceph-mon | awk '{print $1}'`

[operator_test]
operator_setup_file = <path_nodes_config.yaml>

## Operator scenario is only supported on kolla environment
[scenario]
enabled_scenarios = endpoint_scenario,operator_scenario