• 创建数据库
mysql -u root -p

MariaDB [(none)]> CREATE DATABASE placement;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
  IDENTIFIED BY 'xxxxxxx';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
  IDENTIFIED BY 'xxxxxxx';
  • 配置用户和端点

    • 用户账密placement:xxxxxxx
# 环境变量
. admin-openrc
# 创建placement用户
openstack user create --domain default --password-prompt placement
# 配置为admin角色权限
openstack role add --project service --user placement admin
# 创建Placement API
openstack service create --name placement \
  --description "Placement API" placement
# 创建端口 
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
  • 安装服务
yum install openstack-placement-api -y
  • 配置服务
vim /etc/placement/placement.conf

[placement_database]
# ...
connection = mysql+pymysql://placement:xxxxxxx@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 = xxxxxxx
  • 同步placement数据库
su -s /bin/sh -c "placement-manage db sync" placement
  • 重启httpd服务
systemctl restart httpd
  • 验证
placement-status upgrade check
# 以下验证命令无验证
# pip3 install osc-placement -i https://pypi.tuna.tsinghua.edu.cn/simple/
# openstack --os-placement-api-version 1.2 resource class list --sort-column name
# openstack --os-placement-api-version 1.6 trait list --sort-column name

问题解决

(pymysql.err.OperationalError) (1040, u'Too many connections') (Background on this error at: http://sqlalche.me/e/e3q8)
mysql>mysql -u root -p

mysql>show variables like 'max_connections';(查可以看当前的最大连接数)

msyql>set global max_connections=1000;(设置最大连接数为1000,可以再次查看是否设置成功)

mysql>exit(推出)