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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建 OpenStack T 本环境需要进行多个步骤,包括环境准备、安装依赖包、配置数据库和消息队列、安装和配置各个组件等。这里提供一个参考脚本,供你参考: ```bash #!/bin/bash # 环境准备 echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "nameserver 8.8.4.4" >> /etc/resolv.conf hostnamectl set-hostname controller # 安装依赖包 yum install -y centos-release-openstack-train yum update -y yum install -y python-openstackclient yum install -y openstack-selinux # 配置数据库和消息队列 yum install -y mariadb mariadb-server python2-PyMySQL systemctl enable mariadb.service systemctl start mariadb.service mysql_secure_installation echo "[mysqld] bind-address = 10.0.0.11 [galera] binlog_format=row default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 query_cache_size=0 query_cache_type=0 bind-address = 10.0.0.11 [mysql] bind-address = 10.0.0.11" > /etc/my.cnf.d/openstack.cnf yum install -y rabbitmq-server systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service rabbitmqctl add_user openstack RABBIT_PASS rabbitmqctl set_permissions openstack ".*" ".*" ".*" # 安装和配置各个组件 yum install -y openstack-keystone httpd mod_wsgi # 配置 Keystone openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone openstack-config --set /etc/keystone/keystone.conf token provider fernet su -s /bin/sh -c "keystone-manage db_sync" keystone keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone keystone-manage bootstrap --bootstrap-password ADMIN_PASS \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne # 配置 Apache echo "ServerName controller" > /etc/httpd/conf.d/servername.conf systemctl enable httpd.service systemctl start httpd.service # 验证 Keystone export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 openstack token issue ``` 这个脚本包含了环境准备、安装依赖包、配置数据库和消息队列、安装和配置 Keystone 等组件的操作。你可以根据自己的需要进行修改和调整,以满足特定的环境需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值