์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

OpenStack Zed ์ˆ˜๋™๊ตฌ์ถ•-5. Placement service – placement installation

Openstack

by drogva 2026. 4. 11. 00:18

๋ณธ๋ฌธ

๐Ÿ“ OpenStack Zed: Placement ์„œ๋น„์Šค ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ ๊ฐ€์ด๋“œ

Placement ์„œ๋น„์Šค๋Š” ์ž์›(CPU, Memory, Disk)์˜ ๊ฐ€์šฉ๋Ÿ‰์„ ์ถ”์ ํ•˜๊ณ  ์ตœ์ ์˜ ๋ฐฐ์น˜๋ฅผ ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

1๋‹จ๊ณ„: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ

SQL
 
-- MariaDB ์ ‘์†
mysql -u root -p

-- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ
CREATE DATABASE placement;

-- ๊ถŒํ•œ ๋ถ€์—ฌ (PLACEMENT_DBPASS๋Š” ๋ณธ์ธ์ด ์ •ํ•œ ์•”ํ˜ธ๋กœ ๋ณ€๊ฒฝ)
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY 'PLACEMENT_DBPASS';
GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY 'PLACEMENT_DBPASS';

FLUSH PRIVILEGES;
EXIT;

2๋‹จ๊ณ„: ์„œ๋น„์Šค ๋ฐ ์—”๋“œํฌ์ธํŠธ ๋“ฑ๋ก (Keystone)

๋ฐ˜๋“œ์‹œ admin-openrc๋ฅผ ๋กœ๋“œํ•œ ํ›„ ์ง„ํ–‰ํ•˜์„ธ์š”.

Bash
 
source userinfo

# 1. placement ์‚ฌ์šฉ์ž ์ƒ์„ฑ
openstack user create --domain default --password-prompt placement
# (์—ฌ๊ธฐ์„œ ์ž…๋ ฅํ•œ ์•”ํ˜ธ๊ฐ€ PLACEMENT_PASS๊ฐ€ ๋ฉ๋‹ˆ๋‹ค)

# 2. ์—ญํ•  ์ถ”๊ฐ€
openstack role add --project service --user placement admin

# 3. ์„œ๋น„์Šค ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ
openstack service create --name placement --description "Placement API" placement

# 4. ์—”๋“œํฌ์ธํŠธ ์ƒ์„ฑ (Public, Internal, Admin)
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๋‹จ๊ณ„: ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ ์„ค์ •

1. ํŒจํ‚ค์ง€ ์„ค์น˜

Bash
 
yum install -y openstack-placement-api

2. /etc/placement/placement.conf ์ˆ˜์ • ํ•ต์‹ฌ ์„น์…˜์˜ ์„ค์ •๊ฐ’์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

Ini, TOML
 
[placement_database]
connection = mysql+pymysql://placement:PLACEMENT_DBPASS@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 = PLACEMENT_PASS  # ์‚ฌ์šฉ์ž ์ƒ์„ฑ ์‹œ ์ž…๋ ฅํ•œ ์•”ํ˜ธ ์ž…๋ ฅ

3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™”

Bash
 
su -s /bin/sh -c "placement-manage db sync" placement

4๋‹จ๊ณ„: Apache(httpd) ์„ค์ • ์ˆ˜์ • (๋ฒ„๊ทธ ์ˆ˜์ • ํฌํ•จ)

Placement๋Š” Apache ์œ„์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. /etc/httpd/conf.d/00-placement-api.conf ํŒŒ์ผ ํ•˜๋‹จ์— ์•„๋ž˜ ๋‚ด์šฉ์„ ๋ฐ˜๋“œ์‹œ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ถŒํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Apache
 
# /etc/httpd/conf.d/00-placement-api.conf ํŒŒ์ผ ๋์— ์ถ”๊ฐ€
<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>

์„œ๋น„์Šค ์žฌ์‹œ์ž‘:

Bash
 
systemctl restart httpd

5๋‹จ๊ณ„: ์„ค์น˜ ํ™•์ธ

์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์—ฐ๋™๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Bash
 
source userinfo

# 1. ์—…๊ทธ๋ ˆ์ด๋“œ ์ฒดํฌ (์ƒํƒœ ํ™•์ธ)
placement-status upgrade check

# 2. ๋ฆฌ์†Œ์Šค ํด๋ž˜์Šค ํ™•์ธ (์„ฑ๊ณต ์‹œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ถœ๋ ฅ๋จ)
openstack resource class list

 

๊ฒฐ๊ณผ ํ™•์ธ

 

placement-status upgrade check

 

 

openstack resouce class list

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ