无需 DevStack 的安装

本节包含 Blazar 的安装说明。完成安装指南后,您可以使用主机预留和实例预留。

下载所有与 Blazar 相关的仓库

git clone https://opendev.org/openstack/blazar
git clone https://opendev.org/openstack/blazar-nova
git clone https://opendev.org/openstack/python-blazarclient

通过以下方式将所有这些项目安装到您的工作环境中

python setup.py install

或者

python setup.py develop

接下来,您需要配置 Blazar 和 Nova。首先,生成 blazar.conf 示例

cd /path/to/blazar
tox -e genconfig
mv etc/blazar/blazar.conf.sample /etc/blazar/blazar.conf

然后编辑 /etc/blazar/blazar.conf,使用以下示例

[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_* 标志指的是 Blazar 服务用户。如果您没有此用户,请创建它

openstack user create --password <password> --project <project_name> --email <email-address> <username>
openstack role add --project <project_name> --user <username> <admin_role>

接下来,您需要配置 Nova。请将以下行添加到 nova.conf 文件

[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

重启 nova-scheduler 以使用新的配置文件。

接下来,您需要创建一个 Nova 集群,用作主机预留的空闲池

openstack aggregate create freepool

并且我们需要在 Keystone 中创建预留服务及其端点

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"

最后,我们需要为 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;"

然后编辑 /etc/blazar/blazar.conf 的数据库部分

[database]
connection=mysql+pymysql://<user>:<password>@<host>/blazar?charset=utf8

要启动 Blazar 服务,请使用

blazar-api --config-file /etc/blazar/blazar.conf
blazar-manager --config-file /etc/blazar/blazar.conf

现在您可以使用 python-blazarclient 与 Blazar 通信。