【四】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,所以必须配置 添加内容

posted @ 2023-07-27 08:46  しみずよしだ  阅读(80)  评论(0)    收藏  举报