④ 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界面查看已經添加成功

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