④ OpenStack高可用集群部署方案(train版)—Placement

十二、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 'Zxzn@2020';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'Zxzn@2020';
flush privileges;

2. 创建placement-api

在任意控制节点操作,以controller01节点为例;

2.1 创建Placement服务用户

openstack user create --domain default --password=Zxzn@2020 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:Zxzn@[email protected]/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 Zxzn@2020

将配置文件拷贝到另外两个节点:

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 -pZxzn@2020 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界面查看已经添加成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章