第五部分 安装放置服务 placement
在 OpenStack Stein 版本发布之前,放置服务 placement 与计算服务 API(nova-api)一起位于计算服务 nova 中。
在控制节点按如下操作安装 placement 放置服务
1、创建 placement数据库
mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE placement;
2、授予数据库的适当访问权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO ‘placement’@’localhost’ IDENTIFIED BY ‘000000‘;
#PLACEMENT_DBPASS置换为__000000
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO ‘placement’@’%’ IDENTIFIED BY ‘000000‘;
#PLACEMENT_DBPASS置换为__000000
MariaDB [(none)]> exit;
2、创建 placement 用户
. /openrc/adminopenrc
openstack user create —domain default —password 000000 placement
openstack role add —project service —user placement admin
创建 placement 服务实体
_openstack service create —name placement —description “Placement API” placement
创建 placement 服务访问端点
openstack endpoint create —region RegionOne placement public http://controller:8778
openstack endpoint create —region RegionOne placement internal http://controller:8778
openstack endpoint create —region RegionOne placement admin http://controller:8778
安装 placement 软件包
yum install openstack-placement-api -y
修改配置文件
cp /etc/placement/placement.conf /etc/placement/placement.conf.bak
grep -Ev ‘^$|#’ /etc/placement/placement.conf.bak > /etc/placement/placement.conf
vim /etc/placement/placement.conf
加入:
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = placement
password = 000000
[placement_database]
connection = mysql+pymysql://placement:000000@controller/placement
#PLACEMENT_DBPASS替换为000000
填充 placement 数据库
su -s /bin/sh -c “placement-manage db sync” placement
修改 placement 的 apache 配置文件
(官方文档坑点之一,这个步骤官方文档没有提到,如果不做,后面计算服务检查时将会报错)
vim /etc/httpd/conf.d/00-placement-api.conf
在VirtualHost中加入
#SSLCertificateKeyFile …
Require all granted
Order allow,deny
Allow from all
重启 apache 服务
systemctl restart httpd
检查服务是否启动成功,使用 netstat -tnlup 查看端口情况,如果存在 8778 的端口,表示 placement 服务启动成功。
进一步检查,使用命令:curl http://controller:8778,直接访问 placement 的 API 地址,看是否能返回 json。
最后,使用下面的命令检查,看能否返回如下图中的列表
placement-status upgrade check