Placement service – placement安装(wallaby-allinone)
1 必须
在安装和配置放置服务之前,您必须创建数据库、服务凭证和 API 端点。
创建数据库
-
要创建数据库,请完成以下步骤:
-
使用数据库访问客户端以
root
用户身份连接数据库服务器:$ mysql -u root -p
-
创建
placement
数据库:MariaDB [(none)]> CREATE DATABASE placement;
-
授予对数据库的适当访问权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';
替换
PLACEMENT_DBPASS
为合适的密码。这里是123456 -
退出数据库访问客户端。
quit;
-
配置用户和端点¶
-
来源
admin
凭据来访问仅管理员CLI命令:$ . admin-openrc.sh
-
使用您选择的创建一个安置服务用户
PLACEMENT_PASS
:$ openstack user create --domain default --password-prompt placement User Password:123456 Repeat User Password:123456 +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | fa742015a6494a949f67629884fc7ec8 | | name | placement | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
密码123456
-
将 Placement 用户添加到具有 admin 角色的服务项目:
$ openstack role add --project service --user placement admin
此命令不提供任何输出。
-
在服务目录中创建 Placement API 条目:
$ openstack service create --name placement --description "Placement API" placement +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Placement API | | enabled | True | | id | 2d1a27022e6e4185b86adac4444c495f | | name | placement | | type | placement | +-------------+----------------------------------+
创建 Placement API 服务端点:
根据您的环境,端点的 URL 会因端口(可能是 8780 而不是 8778,或者根本没有端口)和主机名而异。您有责任确定正确的 URL。
$ openstack endpoint create --region RegionOne placement public http://controller: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://controller: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://controller: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 -y
-
编辑
/etc/placement/placement.conf
文件并完成以下操作:-
在该
[placement_database]
部分中,配置数据库访问:[placement_database] # ... connection = mysql+pymysql://placement:123456@controller/placement
替换
PLACEMENT_DBPASS
为您为展示位置数据库选择的密码。此处为123456 -
在
[api]
和[keystone_authtoken]
部分,配置身份服务访问:[api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = placement password = PLACEMENT_PASS
-
替换PLACEMENT_PASS
为您placement
在身份服务中为用户选择的密码 。此处为123456
注释掉或删除该[keystone_authtoken]
部分中的任何其他选项。
3. 填充placement
数据库:
# su -s /bin/sh -c "placement-manage db sync" placement
忽略此输出中的任何弃用消息。
必须进行下面这一步,否则后面nova会出错
BUG1
Due to a packaging bug, you must enable access to the Placement API by adding the following configuration to
/etc/httpd/conf.d/00-nova-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服务:
systemctl restart httpd
验证安装
验证放置服务的操作。
admin
在进行这些调用之前,您需要对身份服务进行身份验证 。有许多不同的方法可以做到这一点,这取决于您的系统是如何设置的。如果你没有admin-openrc
文件,你会有类似的东西。
-
来源
admin
凭据来访问仅管理员CLI命令:$ . admin-openrc.sh
-
执行状态检查以确保一切正常:
$ placement-status upgrade check +----------------------------------+ | Upgrade Check Results | +----------------------------------+ | Check: Missing Root Provider IDs | | Result: Success | | Details: None | +----------------------------------+ | Check: Incomplete Consumers | | Result: Success | | Details: None | +----------------------------------+
该命令的输出将因版本而异。有关详细信息,请参阅放置状态升级检查。
-
针对放置 API 运行一些命令:
-
安装osc-placement插件:
此示例使用PyPI和pip,但如果您使用分发包,则可以从其存储库安装该包。随着迁移到 python3,您将需要指定pip3或从您的发行版安装python3-osc-placement。
$ pip3 install osc-placement
-
列出可用的资源类和特征:
$ 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 | | ... |
-
w版的显示了
检测
在未来的版本中,oslo 策略将移除对 JSON 格式的策略文件的支持,为了顺利迁移到 YAML 格式的策略文件,您可以使用oslopolicy-convert-json-to-yaml
工具将现有的 JSON 格式的文件转换为 YAML 文件。
placement-status upgrade check
对于w版本 如果直接检测会出错
需要进如placement的目录
cd /etc/placement/
ls
将policy.json利用oslopolicy-convert-json-to-yaml
工具转换成policy.yaml
oslopolicy-convert-json-to-yaml --namespace placement --policy-file policy.json --output-file policy.yaml
cp policy.json policy.json.bak
rm policy.json
再次检测 没有错误
placement-status upgrade check