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