Placement service

https://docs.openstack.org/placement/2025.1/install/install-ubuntu.html

Prepare database

sudo mysql
CREATE DATABASE placement;
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
  IDENTIFIED BY 'PLACEMENT_DBPASS';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
  IDENTIFIED BY 'PLACEMENT_DBPASS';

Configure user, service and endpoints

openstack user create --domain default --password-prompt placement
openstack role add --project service --user placement admin
openstack service create --name placement --description "Placement API" placement

Endpoints

openstack endpoint create --region <REGION> placement public http://<FQDN>:8778
openstack endpoint create --region <REGION> placement admin http://<FQDN>:8778
openstack endpoint create --region <REGION> placement internal http://<FQDN>:8778

Install and configure

sudo apt install placement-api

/etc/placement/placement.conf

[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 = PLACEMENT_PASS

[placement]
[placement_database]
connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement

Populate database

sudo placement-manage db sync

Restart web server service

sudo service apache2 restart

Verify operation

. admin-openrc
placement-status upgrade check

In my setup the placement-status command threw an error. When trying to prefix it with sudo it succeeded Placement status check https://bugs.launchpad.net/openstack-manuals/+bug/1993623