【四】Openstack-Placement
Placement
stein版本拆分的一个组件、作用是起到node节点的可用资源统计
配置Placement
#Placement service – placement installation for Train
https://docs.openstack.org/placement/train/install/
$ mysql -u root -p
MariaDB [(none)]> CREATE DATABASE placement;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
IDENTIFIED BY 'placement123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
IDENTIFIED BY 'placement123';
#验证
[root@openstack-controller1 ~]# mysql -uplacement -pplacement123 -h192.168.40.248
MariaDB [(none)]> show database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'database' at line 1
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| placement |
+--------------------+
2 rows in set (0.001 sec)
source admin-openrc.sh
openstack user create --domain default --password-prompt placement
User Password:placement
Repeat User Password:placement
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 5dca9cd3913b483693e74613671faf42 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
openstack role add --project service --user placement admin
openstack service create --name placement \
--description "Placement API" placement
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Placement API |
| enabled | True |
| id | e046d16a01f442938f34f718c3577a4d |
| name | placement |
| type | placement |
+-------------+----------------------------------+
[root@openstack-controller1 ~]# openstack service list
+----------------------------------+-----------+-----------+
| ID | Name | Type |
+----------------------------------+-----------+-----------+
| c615e0c6903344e69fb49a85859cdf64 | keystone | identity |
| ccb31e2f5d4d432692f0b3d6b8722a71 | glance | image |
| e046d16a01f442938f34f718c3577a4d | placement | placement |
+----------------------------------+-----------+-----------+
#添加endpoint
openstack endpoint create --region RegionOne placement public http://openstack-vip.xks.local:8778
openstack endpoint create --region RegionOne placement internal http://openstack-vip.xks.local:8778
openstack endpoint create --region RegionOne placement admin http://openstack-vip.xks.local:8778
[root@openstack-controller1 ~]# openstack endpoint list
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| ID | Region | Service Name | Service Type | Enabled | Interface | URL |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
| 1b27558f07784548a469ddda0c58131c | RegionOne | keystone | identity | True | internal | http://openstack-vip.xks.local:5000/v3/ |
| 29abf49878c6417ea92e6e49d23d9888 | RegionOne | placement | placement | True | admin | http://openstack-vip.xks.local:8778 |
| 29eb71325e7b48269fec6a8952799603 | RegionOne | placement | placement | True | internal | http://openstack-vip.xks.local:8778 |
| 42cbf7b421684f318513d762e79010fb | RegionOne | glance | image | True | admin | http://openstack-vip.xks.local:9292 |
| 68549b97df9e428aabbf4d2782c756d7 | RegionOne | placement | placement | True | public | http://openstack-vip.xks.local:8778 |
| 87bc41b7caf146409e6ec0d87744fd13 | RegionOne | keystone | identity | True | public | http://openstack-vip.xks.local:5000/v3/ |
| 9a1203aadc7a41839fc7a7a52045e5fd | RegionOne | glance | image | True | public | http://openstack-vip.xks.local:9292 |
| a878161f65d449f6863f59cd6a1bc2a6 | RegionOne | keystone | identity | True | admin | http://openstack-vip.xks.local:5000/v3/ |
| f0c0ba4d8fa74b9897b194de714de1b9 | RegionOne | glance | image | True | internal | http://openstack-vip.xks.local:9292 |
+----------------------------------+-----------+--------------+--------------+---------+-----------+-----------------------------------------+
#配置Haproxy 8778端口
[root@openstack-haproxy1 glance]# vim /etc/haproxy/haproxy.cfg
listen openstack-placement-8778
bind 192.168.40.248:8778
mode tcp
server 192.168.40.101 192.168.40.101:8778 check inter 3s fall 3 rise 5
[root@openstack-haproxy1 glance]# systemctl restart haproxy
[root@openstack-haproxy1 glance]# netstat -nltp | grep 8778
tcp 0 0 192.168.40.248:8778 0.0.0.0:* LISTEN 23906/haproxy
#安装placement
yum install -y openstack-placement-api
vim /etc/placement/placement.conf
[placement_database]
# ...
connection = mysql+pymysql://placement:placement123@openstack-vip.xks.local/placement
[api]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
auth_url = http://openstack-vip.xks.local:5000/v3
memcached_servers = openstack-vip.xks.local:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = placement
#初始化数据库会报错 没关系
[root@openstack-controller1 ~]# su -s /bin/sh -c "placement-manage db sync" placement
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1280, u"Name 'alembic_version_pkc' ignored for PRIMARY key.")
#数据库验证
mysql
MariaDB [(none)]> use placement;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [placement]> show tables;
+------------------------------+
| Tables_in_placement |
+------------------------------+
| alembic_version |
| allocations |
| consumers |
| inventories |
| placement_aggregates |
| projects |
| resource_classes |
| resource_provider_aggregates |
| resource_provider_traits |
| resource_providers |
| traits |
| users |
+------------------------------+
12 rows in set (0.000 sec)
#配置apache允许访问placement API ,如果不配置会拒绝访问报错403
#参考文档:https://docs.openstack.org/nova/rocky/install/controller-install-rdo.html
vim /etc/httpd/conf.d/00-placement-api.conf
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
#重启httpd 会在 /etc/httpd/conf.d/有个文件:00-placement-api.conf配置了8778端口内容参数
[root@openstack-controller1 conf.d]# systemctl restart httpd
[root@openstack-controller1 conf.d]# netstat -ntlp | grep 8778
tcp6 0 0 :::8778 :::* LISTEN 7790/httpd
#验证是否安装成功
[root@openstack-controller1 ~]# source admin-openrc.sh
[root@openstack-controller1 ~]# placement-status upgrade check
+----------------------------------+
| Upgrade Check Results |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success |
| Details: None |
+----------------------------------+
| Check: Incomplete Consumers |
| Result: Success |
| Details: None |
+----------------------------------+
#curl 请求验证是否8778端口服务正常
[root@openstack-controller1 ~]# curl 192.168.40.101:8778
{"versions": [{"status": "CURRENT", "min_version": "1.0", "max_version": "1.36", "id": "v1.0", "links": [{"href": "", "rel": "self"}]}]}
pip install osc-placement
openstack --os-placement-api-version 1.2 resource class list --sort-column name
openstack --os-placement-api-version 1.6 trait list --sort-column name
Bug截图:报403,所以必须配置 添加内容


浙公网安备 33010602011771号