Blazar Installation Guide
1.1.1 Installation using DevStack
This section includes instructions for Blazar installation using DevStack. DevStack configures both the host reservation and the instance reservation.
1. Download DevStack:
git clone https://opendev.org/openstack/devstack.git
2. Create a local.conf file in the devstack directory. You can use the following sample local.conf:
[[local|localrc]]
ADMIN_PASSWORD=password
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
DEST=/opt/stack/
LOGFILE=$DEST/logs/stack.sh.log
HOST_IP=127.0.0.1
GIT_BASE=https://opendev.org/
RECLONE=yes
enable_plugin blazar https://opendev.org/openstack/blazar
3. Run DevStack as the stack user:
./stack.sh
4. Source the admin credentials:
. openrc admin admin
5. Now you can add hosts to Blazar:
blazar host-create hostname
1.1.2 Installation without DevStack
This section includes instructions for Blazar installation. You can use the host reservation and the instance reservation once you finish the install guide.
Download all Blazar related repos:
git clone https://opendev.org/openstack/blazar
git clone https://opendev.org/openstack/blazar-nova
git clone https://opendev.org/openstack/python-blazarclient
Install all these projects to your working environment via:
python setup.py install
or
python setup.py develop
Next you need to configure Blazar and Nova. First, generate a blazar.conf sample:
cd /path/to/blazar
tox -e genconfig
mv etc/blazar/blazar.conf.sample /etc/blazar/blazar.conf
Then edit /etc/blazar/blazar.conf using the following example:
[DEFAULT]
host=<blazar_host>
port=<blazar_port>
os_auth_host=<auth_host>
os_auth_port=<auth_port>
os_auth_protocol=<http, for example>
os_auth_version=v3
os_admin_username=<username>
os_admin_password=<password>
os_admin_project_name=<project_name>
identity_service=<identity_service_name>
os_region_name=<region_name>
[manager]
plugins=physical.host.plugin,virtual.instance.plugin
[keystone_authtoken]
auth_type=<password, for example>
project_domain_name=<project_domain_name>
project_name=<project_name>
user_domain_name=<user_domain_name>
username=<username>
password=<password>
auth_url=<identity_service_url>
os_admin_* flags refer to the Blazar service user. If you do not have this user, create it:
openstack user create –password <password> –project <project_name> –email
↪→<email-address> <username>
openstack role add –project <project_name> –user <username> <admin_role>
Next you need to configure Nova. Please add the following lines to nova.conf file:
[filter_scheduler]
available_filters = nova.scheduler.filters.all_filters
available_filters = blazarnova.scheduler.filters.blazar_filter.BlazarFilter
enabled_filters = AvailabilityZoneFilter,ComputeFilter,
↪→ComputeCapabilitiesFilter,ImagePropertiesFilter,
↪→ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,SameHostFilter,
↪→DifferentHostFilter,BlazarFilter
Restart nova-scheduler to use the new configuration file.
Next you need to create a Nova aggregate to use as a free pool for host reservation:
openstack aggregate create freepool
And we need to create the reservation service in Keystone with its endpoints:
openstack service create –name blazar –description “OpenStack Reservation␣
↪→Service” reservation
openstack endpoint create –region <region> blazar admin “<auth_protocol>://
↪→<blazar_host>:<blazar_port>/v1″
openstack endpoint create –region <region> blazar internal “<auth_protocol>:/
↪→/<blazar_host>:<blazar_port>/v1″
openstack endpoint create –region <region> blazar public “<auth_protocol>://
↪→<blazar_host>:<blazar_port>/v1″
And, finally, we need to create a database for Blazar:
mysql -u<user> -p<password> -h<host> -e “DROP DATABASE IF EXISTS blazar;”
mysql -u<user> -p<password> -h<host> -e “CREATE DATABASE blazar CHARACTER SET␣
↪→utf8;”
Then edit the database section of /etc/blazar/blazar.conf :
[database]
connection=mysql+pymysql://<user>:<password>@<host>/blazar?charset=utf8
To start Blazar services use:
blazar-api –config-file /etc/blazar/blazar.conf
blazar-manager –config-file /etc/blazar/blazar.conf
Now you can use python-blazarclient to communicate with Blazar.