
OpenStack의 한 구성 요소로서, 클라우드 내의 리소스 인벤토리를 추적하고 리소스 사용을 최적화하기 위한 서비스이다. Placement 서비스는 사용 가능한 컴퓨팅, 스토리지, 메모리 등의 리소스를 관리하고, 이러한 리소스에 대한 요청을 처리하여 가상 머신이나 다른 리소스를 필요한 곳에 효율적으로 할당할 수 있도록 돕는다.
아래는 Placement Component Workflow 예시이다.

[Con01에서 진행]
mysql -uroot -p
create database placement;
> placement database 생성
create user placement@localhost identified by '[Password]';
create user placement@localhost identified by 'placement';
> placement가 localhost에서 접근 가능하도록 생성
create user placement@'%' identified by '[Password]';
create user placement@'%' identified by 'placement';
> glance가 모든 host에서 접근 가능하도록 생성
grant all privileges on placement.* to placement@localhost;
> placement@localhost 사용자에게 placement Database에 대한 모든 권한 부여
grant all privileges on placement.* to placement@'%';
> placement@'%' 사용자에게 placement Database에 대한 모든 권한 부여
[Con01에서 진행]
openstack user create --domain default --password-prompt placement
[Con01에서 진행]
openstack service create --name placement --description "Placement API" placement
openstack role add --project service --user placement admin
openstack endpoint create --region RegionOne placement public http://192.168.0.10:18778
openstack endpoint create --region RegionOne placement internal http://192.168.0.10:18778
openstack endpoint create --region RegionOne placement admin http://192.168.0.10:18778
[모든 node에서 진행]
apt install placement-api
vi /etc/placement/placement.conf
...
[placement_database]
connection = mysql+pymysql://placement:placement@192.168.0.10:13306/placement
[api]
auth_strategy = keystone
[keystone_authtoken]
www_authenticate_uri = http://192.168.0.10:15000
auth_url = http://192.168.0.10:15000
memcached_servers = 192.168.0.11:11211,192.168.0.12:11211,192.168.0.13:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = placement
[Con01에서 진행]
/bin/sh -c "placement-manage db sync" placement
[모든 node에서 진행]
vi /etc/haproxy/haproxy.cfg
...
listen placement
bind 192.168.0.10:18778
balance source
option tcpka
option httpchk
server con01 192.168.0.11:8778 check inter 2000 rise 2 fall 5
server con02 192.168.0.12:8778 check inter 2000 rise 2 fall 5
server con03 192.168.0.13:8778 check inter 2000 rise 2 fall 5
[모든 node에서 진행]
systemctl restart haproxy
sytsemctl restart apache2
> Placement는 apache2와 연동되는 Component로, apache2 재기동을 통한 keystone Config 설정을 적용한다.