- placement는 openstack에서 사용되는 리소스를 할당하고 배치하는데 사용되는 서비스다
- keystone 보다는 설정할게 많지만 다른 서비스들보다 설정할게 적으니 잘 따라오면 오타없이 성공적으로 설치할 수 있을 것이다.
- 원래 공식 메뉴얼에서 보안PW를 설정할때 PLACEMENT_PASS와 PLACEMENT_DBPASS를 따로두지만 실제로 따로 설정했더니 keystone 연결시 인증서에 문제가 생겨서 PLACEMENT_PASS로 통일시켜 같은 PW를 사용했다.
DB, 서비스 사용자 등록 및 API 엔드포인트 생성
sudo su root
#루트 접속
#DB생
mysql
#mariadb 접속
MariaDB [(none)]> CREATE DATABASE placement;
#DB생성
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
IDENTIFIED BY 'PLACEMENT_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
IDENTIFIED BY 'PLACEMENT_DBPASS';
#권한 부여
MariaDB [(none)]> exit
#접속 종료
#서비스 사용자 등록
. admin-openrc
#어드민 권한 접속
openstack user create --domain default --password-prompt placement
#placement 사용자 생성
User Password: #PLACEMENT_PASS 기입
Repeat User Password: #PLACEMENT_PASS 기입
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | fa742015a6494a949f67629884fc7ec8 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
#생성결과(예시)
openstack role add --project service --user placement admin
#role 추가
#API 엔드포인트 생성
openstack service create --name placement \
--description "Placement API" placement
#API 항목 생성
openstack endpoint create --region RegionOne \
placement public http://controller:8778
#public
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 2b1b2637908b4137a9c2e0470487cbc0 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2d1a27022e6e4185b86adac4444c495f |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
#생성결과(예시)
openstack endpoint create --region RegionOne \
placement internal http://controller:8778
#internal
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 02bcda9a150a4bd7993ff4879df971ab |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2d1a27022e6e4185b86adac4444c495f |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
#생성결과(예시)
openstack endpoint create --region RegionOne \
placement admin http://controller:8778
#admin
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 3d71177b9e0f406f98cbff198d74b182 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 2d1a27022e6e4185b86adac4444c495f |
| service_name | placement |
| service_type | placement |
| url | http://controller:8778 |
+--------------+----------------------------------+
#생성결과(예시)
구성 요소 설치 및 설정
apt-get update
#최신화(생략가능)
apt install placement-api
#설치
vi /etc/placement/placement.conf
[placement_database]
....(생)
connection = mysql+pymysql://placement:PLACEMENT_PASS@controller/placement
#설정한 PLACEMENT_PASS 기입
[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
wq
#저장
su -s /bin/sh -c "placement-manage db sync" placement
#DB에 설정 값 채우기
service apache2 restart
#재시작
설치 확인
. admin-openrc
#어드민 권한 실행
placement-status upgrade check
#배치 상태 확인
+----------------------------------+
| Upgrade Check Results |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success |
| Details: None |
+----------------------------------+
| Check: Incomplete Consumers |
| Result: Success |
| Details: None |
+----------------------------------+
#출력값(예시)
#placement api 구동 실
pip3 install osc-placement
#osc-placement 플러그인을 설치
openstack --os-placement-api-version 1.2 resource class list --sort-column name
#등록확인 1
+----------------------------+
| name |
+----------------------------+
| DISK_GB |
| IPV4_ADDRESS |
| ...(생략) |
openstack --os-placement-api-version 1.6 trait list --sort-column name
#등록확인 2
+---------------------------------------+
| name |
+---------------------------------------+
| COMPUTE_DEVICE_TAGGING |
| COMPUTE_NET_ATTACH_INTERFACE |
| ...(생략) |
'구축 > Openstack' 카테고리의 다른 글
openstack 구축 6 neutron (0) | 2024.01.05 |
---|---|
openstack 구축 5 nova (2) | 2024.01.03 |
openstack 구축 3 glance (0) | 2023.12.28 |
openstack 구축 2 keystone (1) | 2023.12.27 |
openstack 구축 1 사전 환경 구축 (1) | 2023.12.26 |