OpenStack(T版)——Plancement介绍与安装

OpenStack(T版)——Placement介绍与安装

OpenStack Placement 是 OpenStack Nova 项目的一个子模块,是一个独立的服务,用于管理和分配计算节点的资源。它的主要功能是维护 OpenStack 计算节点的资源清单,包括虚拟 CPU、内存、磁盘空间等,以及将虚拟机实例分配到合适的计算节点上。

准备

(1)创建数据库

①在操作系统终端连接数据库

[root@controller ~]# mysql -uroot -p000000

②创建placement数据库

MariaDB [(none)]> CREATE DATABASE placement;

③授权

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '000000';

④退出数据库

MariaDB [(none)]> exit

(2)加载环境变量

[root@controller ~]# source admin-openrc.sh

(3)配置user和endpoints

①创建plancement用户

[root@controller ~]#  openstack user create --domain default --password-prompt placement
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | ae86e7a743e6445693f85a08d1cd0cf5 |
| name                | placement                        |
| options             | {
    
    }                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
# --password-prompt:表示通过交互式方式来设置用户的密码。

②将admin role 赋予 placement user 和 service project

[root@controller ~]# openstack role add --project service --user placement admin

③在服务目录中创建 Placement API

[root@controller ~]# openstack service create --name placement  --description "Placement API" placement
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Placement API                    |
| enabled     | True                             |
| id          | 745514229805484d93877bc06c3b9dec |
| name        | placement                        |
| type        | placement                        |
+-------------+----------------------------------+

(4)创建Placement API 的service endpoints

[root@controller ~]# openstack endpoint create --region RegionOne placement public http://controller:8778
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | b3d82027aec44ac299221fe434f9f790 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 745514229805484d93877bc06c3b9dec |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller:8778           |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://controller:8778
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | ae2f75d146b14ed8aee0831a482b4e1f |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 745514229805484d93877bc06c3b9dec |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller:8778           |
+--------------+----------------------------------+
[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://controller:8778
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | ab895b813d9a4f1f8de3fad91a84e222 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 745514229805484d93877bc06c3b9dec |
| service_name | placement                        |
| service_type | placement                        |
| url          | http://controller:8778           |
+--------------+----------------------------------+

安装配置Placement组件

(1)安装软件包

[root@controller ~]# yum install  -y openstack-placement-api

(2)编辑文件/etc/placement/placement.conf,完成以下操作

①在[plancement_database]项,配置数据库连接

[root@controller ~]# vim /etc/placement/placement.conf
[placement_database]
# ...
connection = mysql+pymysql://placement:000000@controller/placement

②在[api]和[keystone_authtoken]项,配置身份服务访问

[api]
# ...
auth_strategy = keystone

[keystone_authtoken]
# ...
auth_url = http://controller:5000/v3 # 指定了keystone服务的URL地址,用于进行身份验证和授权
memcached_servers = controller:11211 #指定了Memcached服务的地址和端口号,用于缓存身份验证令牌和其他数据。
auth_type = password                 # 指定了身份验证的类型,设置为 password,表示使用用户名和密码进行身份验证。
project_domain_name = Default        # 指定了项目域名,用于区分不同的项目之间的资源和权限
user_domain_name = Default           # 指定了用户域名,用于区分不同的用户之间的资源和权限。
project_name = service               # 指定了项目名称,表示要访问的 OpenStack 项目的名称。
username = placement                 # 指定了用于身份验证的用户名。
password = 000000                    # password:指定了用于身份验证的密码。

(3)同步数据库

[root@controller ~]# su -s /bin/sh -c "placement-manage db sync" placement

设置 /usr/bin 目录的访问权限,允许所有用户或主机访问该目录,具体取决于 Apache 版本

[root@controller ~]# vim /etc/httpd/conf.d/00-placement-api.conf
<Directory /usr/bin>    # 表示如果 Apache 版本大于等于 2.4,则执行以下语句
 <IfVersion >= 2.4>
    Require all granted # 表示允许所有用户访问该目录
 </IfVersion>
 <IfVersion < 2.4>      # 表示如果 Apache 版本小于 2.4,则执行以下语句
    Order allow,deny    # 表示允许 allow 所列出的主机访问该目录
    Allow from all      # 表示允许所有主机访问该目录
 </IfVersion>
</Directory>

安装完成

重新启动httpd服务

[root@controller ~]# systemctl restart httpd

验证

(1)加载环境变量

[root@controller ~]# source admin-openrc.sh

(2)执行状态检查以确保一切正常

[root@controller ~]# placement-status upgrade check
+----------------------------------+
| Upgrade Check Results            |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success                  |
| Details: None                    |
+----------------------------------+
| Check: Incomplete Consumers      |
| Result: Success                  |
| Details: None                    |
+----------------------------------+

本文参考视频https://www.bilibili.com/video/BV1fL4y1i7NZ?p=7&vd_source=7c7cb4224e0c273f28886e581838b110

猜你喜欢

转载自blog.csdn.net/qq_52089863/article/details/131403286
今日推荐