标签(空测试用例格分隔):OpenStack Train 系列


一:placement的安装(控制节点)

1.1 placement的介绍

Placement 在 Openstack 中主要用于跟踪和监控各种资源的使用情况,例如,在 Openstack 中包括计算资源、存储资源、网络等各种资源。Placement

用来跟踪管理每种资源的当前使用情况。

Placement 服务在 Openstack 14.0.0 Newton 版本中被引入到 nova 库,并在 19.0.0 Stein 版本中被独立到 Placement 库中,即在 stein 版被独立成组件。

Placement 服务提供 REST API 堆栈和数据模型,用于跟踪资源提供者不同类型的资源的库存和使用情况。 资源提供者可以是计算资源、共享存储池、
IP 池等。例如,创建一个实例时会消耗计算节点的 CPU、内存,会消耗存储节点的存储;同时还会消耗网络节点的 IP 等等,所消耗资源的类型被跟踪为
类。Placement 提供了一组标准资源类(例如 DISK_GB、MEMORY_MB 和 VCPU),并提供了根据需要定义自定义资源类的能力。

placement 服务托管在 httpd 上,修改配置需重启 httpd。

1.2 在控制节点(controller)安装 Placement

1、登录数据库创建 placement 数据库
MariaDB [(none)]> CREATE DATABASE placement default character set utf8;
创建并授予 placement 用户完全操作 placement 库权限
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'openstack';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'openstack';

image.png

2、创建用户和 API 服务端点
# source /etc/keystone/admin-openrc.sh
# openstack user create --domain default --password-prompt placement
密码设置为:openstack2022
将 placement 加入到 service 项目以及 admin 角色
# openstack role add --project service --user placement admin
创建服务实体
# openstack service create --name placement --description "Placement API" placement
创建 Placement API 服务端点
# openstack endpoint create --region RegionOne placement public http://controller:8778
# openstack endpoint create --region RegionOne placement internal http://controller:8778
# openstack endpoint create --region RegionOne placement admin http://controller:8778

image.png

image.png
image.png

3、安装配置 Placement
# yum -y install openstack-placement-api
注:https://docs.openstack.org/api-ref/placement/?expanded=
修改配置文件 /etc/placement/placement.conf
# cd /etc/placement/ && mv placement.conf placement.conf.source && cat placement.conf.source |grep -Ev "^#|^$" > placement.conf && chown root:placement placement.conf

# vi /etc/placement/placement.conf
在[placement_database]部分,配置数据库访问

[placement_database]
connection = mysql+pymysql://placement:openstack@controller/placement

在[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 = openstack2022

image.png
image.png
image.png

修改配置文件/etc/httpd/conf.d/00-placement-api.conf
# vi /etc/httpd/conf.d/00-placement-api.conf
在 ErrorLog /var/log/placement/placement-api.log 下面添加:
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>

image.png

4、同步 placement 数据库
# su -s /bin/sh -c "placement-manage db sync" placement
/*
说明:忽略同步数据时报的 Warning
*/
5、重启 httpd 服务并验证 Placement
# systemctl restart httpd
# chkconfig httpd on 
执行 placement-status 命令检查状态
# placement-status upgrade check

image.png

安装 pip(如果无外网则跳过该设置,使用离线安装)
yum install -y epel-release
yum install -y python-pip
rm -rf /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo
配置国内 pip 源
cat > /etc/pip.conf <<EOF
[global]
index-url = https://pypi.douban.com/simple/
[install]
trusted-host = https://pypi.douban.com
EOF

安装 osc-placement 插件

# pip install osc-placement==2.2.0

离线安装
在 yum01 主机上通过 pip download osc-placement==2.2.0 下载离线包放入/var/www/html/yumrepos/pip 目录下
# yum install -y python-pip
# wget http://yum01/yumrepos/pip/osc-placement-2.2.0.tar.gz
# pip install osc-placement-2.2.0.tar.gz
列出可用的资源类和特征。
# 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

image.png
image.png
image.png