前言
根据官方文档的顺序第三个安装的服务是placement,这个服务在OpenStack的S版本之前是在nova服务的时候一起部署的,现在单独的拿出来了,
一、简介
Placement提供了一个placement-api WSGI脚本,用于在Apache、nginx或其他支持WSGI的web服务器上运行服务。根据使用什么打包解决方案来部署OpenStack, WSGI脚本可以是/usr/bin或/usr/local/bin。
api作为标准WSGI脚本,提供了大多数WSGI服务器希望找到的模块级应用程序属性。这意味着可以在许多不同的服务器上运行它,从而在面对不同部署场景时提供灵活性。
在所有这些场景中,应用程序的主机、端口和挂载路径(或prefix)是由web服务器的配置控制的,而不是由placement应用程序的配置(placement .conf)控制的。
默认情况下,placement应用程序将从/etc/placement/placement.conf获得其设置的配置,比如数据库连接URL。可以通过在启动应用程序的进程的环境中设置OS_PLACEMENT_CONFIG_DIR来更改找到配置文件的目录。oslo.config最近的发布。配置选项也可以在环境中设置。
因为使用WSGI应用程序的一个主要目的是使部署尽可能灵活。因为placement API服务本身是无状态的(所有状态都在数据库中),所以可以在负载平衡解决方案后面部署所需的服务器,以实现健壮而简单的伸缩。如果您熟悉安装通用WSGI应用程序(使用上面公共场景列表中的链接),那么这些技术将适用于这里。
placement 服务使用它自己的数据库,在配置的placement_database部分中定义。placement_database.connection 必须设置,否则服务将无法启动。
可以使用命令行工具placement- management将数据库表迁移到正确的表单,包括创建它们。connection选项所描述的数据库必须已经存在并定义了适当的访问控制。
同步的另一个选项是设置placement_database.sync_on_startup配置为true。 这将在安置web服务启动时执行所有丢失的数据库迁移。选择自动同步还是使用命令行工具,这取决于您的环境和部署工具的约束。
二、安装
1、数据库
# mysql -uroot -pXylong_000
MariaDB [(none)]> CREATE DATABASE placement;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '123';
MariaDB [(none)]> exit
2、创建身份认证服务
套路一样还是创建placement用户接着将admin角色绑定上去,
# source admin-openrc
# openstack user create --domain default --password-prompt placement
# openstack role add --project service --user placement admin
接着创建placement服务,
# openstack service create --name placement --description "Placement API" placement
创建endpoint访问端点
# openstack endpoint create --region RegionOne placement public http://controller:8778
# openstack endpoint create --region RegionOne placement internal http://controller:8778
# openstack endpoint create --region RegionOne placement admin http://controller:8778
3、安装软件
# yum install openstack-placement-api
4、修改配置文件
# vim /etc/placement/placement.conf
配置数据库访问
[placement_database]
connection = mysql+pymysql://placement:123@controller/placement
配置身份服务访问
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = 123
同步数据库
# su -s /bin/sh -c "placement-manage db sync" placement
登录数据库中查看下都有哪些表生成
# mysql -uplacement -p123
MariaDB [(none)]> use placement
MariaDB [placement]> show tables;
重启下Apache服务,可以查看下端口,
# systemctl restart httpd
# netstat -tunpl | grep 8778
# netstat -tunpl | grep http
二、验证
执行状态检查以确保一切正常:
# source admin-openrc
# placement-status upgrade check