十二、Placement放置服务部署
https://docs.openstack.org/placement/train/install/
Placement具体功能:
- 通过HTTP请求来跟踪和过滤资源
- 数据保存在本地数据库中
- 具备丰富的资源管理和筛选策略
1. 配置Placement数据库
在任意控制节点创建数据库,数据库自动同步,以controller01节点为例;
mysql -u root -p
CREATE DATABASE placement;
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'Zx*****';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'Zx*****';
flush privileges;
2. 创建placement-api
在任意控制节点操作,以controller01节点为例;
2.1 创建Placement服务用户
openstack user create --domain default --password=Zx***** placement
2.2 将Placement用户添加到服务项目并赋予admin权限
openstack role add --project service --user placement admin
2.3 创建placement API服务实体
openstack service create --name placement --description "Placement API" placement
2.4 创建placement API服务访问端点
使用vip
openstack endpoint create --region RegionOne placement public http://10.15.253.88:8778
openstack endpoint create --region RegionOne placement internal http://10.15.253.88:8778
openstack endpoint create --region RegionOne placement admin http://10.15.253.88:8778
3. 安装placement软件包
在全部控制节点操作,以controller01节点为例;
yum install openstack-placement-api -y
3.1 修改配置文件
在任意控制节点操作,以controller01节点为例;
#备份Placement配置
cp /etc/placement/placement.conf /etc/placement/placement.conf.bak
grep -Ev '^$|#' /etc/placement/placement.conf.bak > /etc/placement/placement.conf
openstack-config --set /etc/placement/placement.conf placement_database connection mysql+pymysql://placement:Zx*****@10.15.253.88/placement
openstack-config --set /etc/placement/placement.conf api auth_strategy keystone
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_url http://10.15.253.88:5000/v3
openstack-config --set /etc/placement/placement.conf keystone_authtoken memcached_servers controller01:11211,controller02:11211,controller03:11211
openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_type password
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/placement/placement.conf keystone_authtoken project_name service
openstack-config --set /etc/placement/placement.conf keystone_authtoken username placement
openstack-config --set /etc/placement/placement.conf keystone_authtoken password Zx*****
将配置文件拷贝到另外两个节点:
scp /etc/placement/placement.conf controller02:/etc/placement/
scp /etc/placement/placement.conf controller03:/etc/placement/
3.2 同步placement数据库
任意控制节点操作;同步写入镜像数据库;忽略输出内容
su -s /bin/sh -c "placement-manage db sync" placement
mysql -uroot -pZx***** placement -e " show tables;"
4. 配置00-placement-api.conf
4.1 修改placement的apache配置文件
在全部控制节点操作,以controller01节点为例;注意根据不同节点修改监听地址;官方文档没有提到,如果不修改,计算服务检查时将会报错;
#备份00-Placement-api配置
##controller01上
cp /etc/httpd/conf.d/00-placement-api.conf{,.bak}
sed -i "s/Listen\ 8778/Listen\ 10.15.253.163:8778/g" /etc/httpd/conf.d/00-placement-api.conf
sed -i "s/*:8778/10.15.253.163:8778/g" /etc/httpd/conf.d/00-placement-api.conf
##controller02上
cp /etc/httpd/conf.d/00-placement-api.conf{,.bak}
sed -i "s/Listen\ 8778/Listen\ 10.15.253.195:8778/g" /etc/httpd/conf.d/00-placement-api.conf
sed -i "s/*:8778/10.15.253.195:8778/g" /etc/httpd/conf.d/00-placement-api.conf
##controller03上
cp /etc/httpd/conf.d/00-placement-api.conf{,.bak}
sed -i "s/Listen\ 8778/Listen\ 10.15.253.227:8778/g" /etc/httpd/conf.d/00-placement-api.conf
sed -i "s/*:8778/10.15.253.227:8778/g" /etc/httpd/conf.d/00-placement-api.conf
4.2 启用placement API访问
在全部控制节点操作;
vim /etc/httpd/conf.d/00-placement-api.conf (15gg)
...
#SSLCertificateKeyFile
#SSLCertificateKeyFile ...
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
...
4.3 重启apache服务
在全部控制节点操作;启动placement-api监听端口
systemctl restart httpd.service
netstat -lntup|grep 8778
lsof -i:8778
#curl地址看是否能返回json
[root@controller01 ~]# curl http://10.15.253.88:8778
{"versions": [{"id": "v1.0", "max_version": "1.36", "min_version": "1.0", "status": "CURRENT", "links": [{"rel": "self", "href": ""}]}]}
5. 验证检查Placement健康状态
[root@controller01 ~]# placement-status upgrade check
+----------------------------------+
| Upgrade Check Results |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success |
| Details: None |
+----------------------------------+
| Check: Incomplete Consumers |
| Result: Success |
| Details: None |
+----------------------------------+
6. 设置pcs资源
前面keystone已经设置过httpd的服务,因为placement也是使用httpd服务,因此不需要再重复设置
登陆haproxy的web界面查看已经添加成功