部署Placement服务

发布时间 2023-11-07 21:16:10作者: q_7

一:了解placement服务的概念

生活场景:

当客户需要一些主机资源的话,部署人员不知道应该从资源池分配哪一台主机给客户使用,不知道哪台主机提供的服务,所以,这个服务可以判断,因为是监控所有的主机上面的资源

1:作用

监控系统中的所有硬件资源的使用情况

2:placement组件架构

placement的主要组成就是它的接口模块(api),这个模块就是监控系统的资源信息并给Nova提供他获得的资源信息

nova的计算模块先将要哪些资源的信息给api,然后api在数据库里查询得到的信息,给nova的计划模块,然后nova的计划模块选择一台主机进行创建,并将结果告知nova的计算模块

3:基本的工作流程

placement系统监控功能主要就是在nova创建虚拟机时提供服务

nova在创建云主机时需要调用placement获得的系统的信息,然后将获得选择一台主机进行创建的流程

具体如下:

1:nova告诉placement创建云主机需要哪些信息(内存,cpu):

2:placement从数据库中查询得到2个数据,一个数据就是现有的空闲资源能够创建云主机以及他们所剩的信息,第二个数据就是这些物理主机原有的信息

3:数据库返回查询到的信息给placement

4:placement将数据给nova的计划模块,并选择一台主机进行创建,并将结果告诉placement,和nova的计算模块

5:placement修改数据库,将相应的资源从数据库中扣除

 

二:安装与配置placement放置服务

1:安装placement软件包

软件包的名称为:openstack-placement-api

[root@controller conf.d]# yum -y install openstack-placement-api   

还是和glance一样,安装·完成后,会自动的生成placement用户和用户组

通过查看placement用户和用户组可以知道是否安装成功

[root@controller conf.d]# cat /etc/passwd | grep placement
placement:x:984:978:OpenStack Placement:/:/bin/bash
[root@controller conf.d]# cat /etc/group | grep placement
placement:x:978:
[root@controller conf.d]# 

2:创建数据库并授权

创建数据库

MariaDB [(none)]> create databse placement;  

本地用户的授权

MariaDB [(none)]> grant all privileges on placement.* to 'placement'@"localhost" identified by '000000';

远程用户的授权

MariaDB [(none)]> grant all privileges on placement.* to 'placement'@"%" identified by '000000';  

检查本地用户的授权

MariaDB [(none)]> show grants for 'placement'@'localhost'

检查远程用户的授权

MariaDB [(none)]> show grants for 'placement'@'%'; 

3:修改placement配置文件

placement服务的配置文件是/etc/placement/placement.conf

由于这个文件的都是注释,所以,需要一个备份文件

1)备份这个文件

[root@controller conf.d]# cp /etc/placement/placement.conf /etc/placement/placement.bak

2)去掉注释的行和空行 重定向到主配置文件中去

[root@controller conf.d]# grep -Ev '^$|#' /etc/placement/placement.bak /etc/placement/placement.conf 

3)修改placement配置文件

在placement_databases 实现与placement数据库建立连接

connection = mysql+pymysql://placement:000000@controller/placement

就是以placment这个用户登录placement数据库---这个用户是安装placement软件包自动生成的用户

修改api 和keystone_authtoken部分,实现placement与keystone服务的交互

[keystone_authtoken]
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = pasword
project_domain_name = Default
user_domain_name = Defaule
project_name = project
username = placment
password = 000000

[api]
auth_strategy = keystone

这个就是每次用户使用服务的时候,都会将令牌给服务,然后服务将令牌给keystone服务认证,

openstack中的每个服务都有这个配置,所以,就是当使用这个服务的时候,会认证,认证的就是用户个密码

4)修改apache配置文件

因为placement服务是在web服务器上面运行的,安装placement后,会自动的在httpd的配置文件中生成00-placement-api.conf,修改这个文件

  <Directory /user/bin>
    <IfVersion >= 2.4>
     Require all granted
    </IfVersion>
  </Directory>

如果apache的版本号>2.4则像系统请求获得/usr/bin目录的所有操作权限

httpd -v 可以查看apache的版本号

5:同步数据库到placement

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

    

三:placement组件初始化

 

 

运维操作跟我们没有关系