文章目录

  • 本文章由公号【开发小鸽】发布!欢迎关注!!!
  • 一.Placement服务安装
  • (一)介绍
  • (二)placement服务组件
  • (三)Placement服务部署
  • 1.创建Placement的数据库
  • 2.创建placement用户
  • 3.创建一个placement服务,服务类型为placement
  • 4、注册Placement服务API访问端口
  • 5. 安装placement软件包
  • 6. 修改配置文件
  • 7.初始化placement数据库
  • 8.修改Apache配置文件 00-placemenct-api.conf
  • 9.重启apache服务
  • 10.检查placement状态


本文章由公号【开发小鸽】发布!欢迎关注!!!



老规矩–妹妹镇楼:



openstack导出磁盘 openstack导入环境变量_linux


一.Placement服务安装

(一)介绍

       在安装Nova模块之前,需先安装Placement组件,Placement在openstack的Stein版本之前,属于Nova组件的一部分。该组件需要在Nova之前安装。

       Placement服务跟踪资源(比如计算节点,存储资源池,网络资源池等)的使用情况,提供自定义资源的能力,为分配资源提供服务。

       Placement在openstack的Stein版本之前,属于Nova组件的一部分。该组件应该在Nova之前安装。

       Placement API作为一个标准的WSGI脚本,为WSGI服务器提供了模块级的应用程序属性。

(二)placement服务组件

       1、Placement提供了placement-api WSGI脚本,用于与Apache,nginx或其他支持WSGI的Web服务器一起运行服务(通过nginx或apache实现python入口代理)。根据用于部署OpenStack的打包解决方案,WSGI脚本可能位于/usr/bin 或/usr/local/bin中

       2、Placement服务是从 S 版本,从nova服务中拆分出来的组件,作用是收集各个node节点的可用资源,把node节点的资源统计写入到mysql,Placement服务会被nova scheduler服务进行调用 Placement服务的监听端口是8778

       3、需修改的配置文件:

       (1)placement.conf

主要修改思路:
       Keystone认证相关(url、HOST:PORT、域、账号密码等)

       对接数据库(位置)

       (2) 00-placement-api.conf
主要修改思路:

       Apache权限、访问控制

(三)Placement服务部署

1.创建Placement的数据库
[root@controller ~]# mysql -uroot -p 
MariaDB [(none)]> CREATE DATABASE placement;

       授予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'; 
MariaDB [(none)]> exit;



2.创建placement用户
[root@controller ~]# openstack user create --domain default --password PLACEMENT_PASS placement

       添加placement用户为admin角色,service项目

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



3.创建一个placement服务,服务类型为placement
[root@controller ~]# openstack service create --name placement --description "Placement API" placement



4、注册Placement服务API访问端口

       注册三个API到placement的service中;注册的信息会写入到mysql中

[root@controller ~]# openstack endpoint create --region RegionOne placement public http://192.168.112.146:8778

[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://192.168.112.146:8778

[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://192.168.112.146:8778



5. 安装placement软件包
yum install openstack-placement-api -y



6. 修改配置文件

       精简配置文件,删除注释内容

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

       修改placement数据库连接地址

openstack-config --set /etc/placement/placement.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@192.168.112.146/placement

       修改placement的认证策略为keystone

openstack-config --set /etc/placement/placement.conf api auth_strategy keystone

       修改placement的认证地址

openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_url  http://192.168.112.146:5000/v3

       修改memcached服务器的地址

openstack-config --set /etc/placement/placement.conf keystone_authtoken memcached_servers 192.168.112.146:11211

       修改认证方式为password

openstack-config --set /etc/placement/placement.conf keystone_authtoken auth_type password

       修改项目domain名称为Default

openstack-config --set /etc/placement/placement.conf keystone_authtoken project_domain_name Default

       修改用户的domain名称为Default

openstack-config --set /etc/placement/placement.conf keystone_authtoken user_domain_name Default

       修改项目名称为service

openstack-config --set /etc/placement/placement.conf keystone_authtoken project_name service

       修改用户名为placement

openstack-config --set /etc/placement/placement.conf keystone_authtoken username placement

       修改认证密码为PLACEMENT_PASS

openstack-config --set /etc/placement/placement.conf keystone_authtoken password PLACEMENT_PASS

       查看当前的placement.conf配置文件:

openstack导出磁盘 openstack导入环境变量_配置文件_02


7.初始化placement数据库
[root@controller ~]# su -s /bin/sh -c "placement-manage db sync" placement

检查数据库初始情况:

openstack导出磁盘 openstack导入环境变量_apache_03


8.修改Apache配置文件 00-placemenct-api.conf

       安装完placement服务后会自动创建该文件-虚拟主机配置 , 修改placement的apache配置文件(官方文档坑点之一,这个步骤官方文档没有提到,如果不做,后面计算服务检查时将会报错)

       此处是bug,必须添加下面的配置来启用对placement api的访问,否则在访问apache的api时会报403;添加在文件的最后即可

[root@controller ~]# vim /etc/httpd/conf.d/00-placement-api.conf

在该文件的末尾添加:

<Directory /usr/bin>		
<IfVersion >= 2.4>		   
  Require all granted
</IfVersion>
<IfVersion < 2.4>		    #apache版本;允许apache访问/usr/bin目录;否则/usr/bin/placement-api将不允许被访问
  Order allow,deny				
  Allow from all			#允许apache访问
</IfVersion>
</Directory>

       注意是在VirtualHost选项内,如下所示,而不是在末尾:

openstack导出磁盘 openstack导入环境变量_openstack_04


9.重启apache服务
[root@controller ~]# systemctl restart httpd

       httpd服务重启情况正常。

       再检查服务是否启动成功,使用netstat -tnlup查看端口情况,如果存在8778的端口,表示placement服务启动成功。

openstack导出磁盘 openstack导入环境变量_openstack导出磁盘_05


10.检查placement状态

       进一步检查,使用命令:

curl http://192.168.112.146:8778

       直接访问placement的API地址,看是否能返回json。

[root@controller ~]# curl http://controller:8778

       或者http://192.168.112.146:8778 都可以返回json:

openstack导出磁盘 openstack导入环境变量_apache_06

       检查placement状态

[root@ct placement]# placement-status upgrade check

openstack导出磁盘 openstack导入环境变量_openstack导出磁盘_07