placement服务提供一个HTTP API,用于跟踪资源提供者清单和使用情况。placement作为数据模型上的web服务进行操作。安装包括创建必要的数据库以及安装和配置web服务。这是一个简单的过程,但是要将placement与OpenStack云的其余部分集成起来,有相当多的步骤。
其他一些OpenStack服务(尤其是nova)需要安装placement,因此应该在其他服务之前安装placement,而在Identity (keystone)之后安装placement。
安装配置placement服务之前,建库等。
建立数据库
1. 完成下列建库操作:
○ 使用root用户登录:
$ mysql -u root -p root123
○ 建立placement database:
MariaDB [(none)]> CREATE DATABASE placement;
○ Grant proper access to the database:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'placement123';
2. Configure User and Endpoints
1. Source the admin credentials to gain access to admin-only CLI commands:
$ . admin-openrc
2. Create a Placement service user using your chosen PLACEMENT_PASS:
$ openstack user create --domain default --password-prompt placement
User Password:placement123
Repeat User Password:placement123
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | fa742015a6494a949f67629884fc7ec8 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
3. Add the Placement user to the service project with the admin role:
$ openstack role add --project service --user placement admin
4. Create the Placement API entry in the service catalog:
$ openstack service create --name placement \
--description "Placement API" placement
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Placement API |
| enabled | True |
| id | 2d1a27022e6e4185b86adac4444c495f |
| name | placement |
| type | placement |
+-------------+----------------------------------+
5. Create the Placement API service endpoints:
注意:域名为你规划好url, 必须能够解析.
$ openstack endpoint create --region RegionOne placement public http://stack.flex.net:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 2b1b2637908b4137a9c2e0470487cbc0 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2d1a27022e6e4185b86adac4444c495f |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne placement internal http://stack.flex.net:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 02bcda9a150a4bd7993ff4879df971ab |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2d1a27022e6e4185b86adac4444c495f |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
$ openstack endpoint create --region RegionOne placement admin http://stack.flex.net:8778
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 3d71177b9e0f406f98cbff198d74b182 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2d1a27022e6e4185b86adac4444c495f |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
# yum install openstack-placement-api
Edit the /etc/placement/placement.conf file and complete the following actions:
○ In the [placement_database] section, configure database access:
[placement_database]
# ...
connection = mysql+pymysql://placement:placement123@dbs.flex.net/placement
○ In the [api] and [keystone_authtoken] sections, configure Identity service access:
[api]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
auth_url = http://stack.flex.net:5000/v3
memcached_servers = dbs.flex.net:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = placement
password = placement123
注意: 注释或移除在掉在[keystone_authtoken]区域中的其它的选项
# su -s /bin/sh -c "placement-manage db sync" placement
○ Restart the httpd service:
# systemctl restart httpd
你需要admin的权限验证
$ . admin-openrc
$ placement-status upgrade check
+----------------------------------+
| Upgrade Check Results |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success |
| Details: None |
+----------------------------------+
| Check: Incomplete Consumers |
| Result: Success |
| Details: None |
+----------------------------------+
运行对placement API的命令(这个步骤我没有成功,但不影响):
○ Install the osc-placement plugin:
$ pip install osc-placement
○ List available resource classes and traits:
$ openstack --os-placement-api-version 1.2 resource class list --sort-column name
+----------------------------+
| name |
+----------------------------+
| DISK_GB |
| IPV4_ADDRESS |
| ... |
$ openstack --os-placement-api-version 1.6 trait list --sort-column name
+---------------------------------------+
| name |
+---------------------------------------+
| COMPUTE_DEVICE_TAGGING |
| COMPUTE_NET_ATTACH_INTERFACE |
| ... |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。