第三步:安装openstack-placement服务

简介

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

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

Placement服务的监听端口是8778

controller上安装placement

https://docs.openstack.org/placement/train/install/install-rdo.html #安装文档

https://docs.openstack.org/nova/rocky/install/controller-install-rdo.html #apache的bug参考文档

1、source admin-openrc.sh

2、openstack user create --domain default --password-prompt placement
#创建placement账号,创建在default域中

3、openstack role add --project service --user placement admin
#placement用户针对service项目拥有admin权限

4、openstack service create --name placement --description "Placement API" placement
#创建一个placement服务,服务类型为placement

5、openstack endpoint create --region RegionOne placement public http://openstack-vip.linux.local:8778
openstack endpoint create --region RegionOne placement internal http://openstack-vip.linux.local:8778
openstack endpoint create --region RegionOne placement admin http://openstack-vip.linux.local:8778
#注册API端口到placement的service中;注册的信息会写入到mysql中

6、openstack endpoint list   #查看endpoint是否注册

7、yum install openstack-placement-api -y  #安装placement服务

8、vim /etc/placement/placement.conf
[placement_database]   #配置数据库连接
connection = mysql+pymysql://placement:placement123@openstack-vip.linux.local/placement

[api]
auth_strategy = keystone  #指定api使用keystone进行认证

[keystone_authtoken]  #配置连接keystone的认证信息
auth_url = http://openstack-vip.linux.local:5000/v3   #指定keystone地址
memcached_servers = openstack-vip.linux.local:11211  #session信息是缓存放到了memcached中
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = placement

9、su -s /bin/sh -c "placement-manage db sync" placement   #初始化placement数据库

10、vim /etc/httpd/conf.d/00-placement-api.conf   #安装完placement会自动创建此文件
<Directory /usr/bin>   #此处是bug,必须添加下面的配置来启用对placement api的访问,否则在访问apache的
   <IfVersion >= 2.4>   api时会报403;添加在文件的最后即可
      Require all granted
   </IfVersion> 
   <IfVersion < 2.4>    #apache版本;允许apache访问/usr/bin目录;否则/usr/bin/placement-api将
      Order allow,deny   不允许被访问
      Allow from all         #允许apache访问
   </IfVersion>
</Directory>

11、systemctl restart httpd

12、curl openstack-vip.linux.local:8778   #测试


###验证测试
1、placement-status upgrade check     #查看placement状态

https://docs.openstack.org/placement/train/install/verify.html #验证

mysql配置

1、CREATE DATABASE placement;

2、GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'placement123';

haproxy配置

1、vim /etc/haproxy/haproxy.cfg
listen openstack-placement-8778
 mode tcp
 bind 172.31.7.248:8778
 server 172.31.7.101 172.31.7.101:8778 check inter 3s fall 3 rise 5
 
2、systemctl restart haproxy.service 
原文地址:https://www.cnblogs.com/dongzhanyi123/p/13299853.html