CentOS 7 에 Openstack Train 버전 설치 - 4. Placement service – placement installation
이 섹션에서는 Red Hat Enterprise Linux 또는 CentOS 패키지를 사용할 때 배치 서비스를 설치하고 구성하는 방법을 설명합니다.
전제 조건
배치 서비스를 설치 및 구성하기 전에 데이터베이스, 서비스 자격 증명 및 API 엔드 포인트를 생성해야합니다.
데이터베이스 생성
1. 데이터베이스를 생성하려면 다음 단계를 완료하십시오.
- 데이터베이스 액세스 클라이언트를 사용하여 root사용자 로 데이터베이스 서버에 연결합니다 .
[root@controller ~]# mysql -u root -p
placement데이터베이스를 만듭니다.
MariaDB [(none)]> CREATE DATABASE placement;
- 데이터베이스에 대한 적절한 액세스 권한을 부여하십시오.
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';
PLACEMENT_DBPASS부분을 적절한 암호로 변경하십시오 .
- 데이터베이스 액세스 클라이언트를 종료하십시오.
사용자 및 엔드포인트 구성
1. admin자격 증명 관리자 전용 CLI 명령에 액세스하려면 :
[root@controller ~]# . admin-openrc [root@controller ~] (admin-openrc)#
2. 선택한 PLACEMENT_PASS 사용하여 엔드포인트 서비스 사용자를 만듭니다 .
[root@controller ~] (admin-openrc)# openstack user create --domain default --password-prompt placement
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | fa742015a6494a949f67629884fc7ec8 |
| name | placement |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
3. 관리자 역할이있는 서비스 프로젝트에 Placement 사용자를 추가합니다.
[root@controller ~] (admin-openrc)# openstack role add --project service --user placement admin
이 명령은 별다른 출력이 나오지 않습니다.
4. 서비스 카탈로그에서 Placement API 항목을 만듭니다.
[root@controller ~] (admin-openrc)# openstack service create --name placement \ --description "Placement API" placement +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Placement API | | enabled | True | | id | 2d1a27022e6e4185b86adac4444c495f | | name | placement | | type | placement | +-------------+----------------------------------+
5. Placement API 서비스 엔드 포인트를 만듭니다.
환경에 따라 엔드포인트의 URL은 포트 (8778 대신 8780 또는 포트 없음) 및 호스트 이름에 따라 달라집니다. 올바른 URL을 결정하는 것은 귀하의 책임입니다.
[root@controller ~] (admin-openrc)# openstack endpoint create --region RegionOne \ placement public http://controller:8778 +--------------+----------------------------------+ | 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 | +--------------+----------------------------------+ [root@controller ~] (admin-openrc)# openstack endpoint create --region RegionOne \ placement internal http://controller:8778 +--------------+----------------------------------+ | 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 | +--------------+----------------------------------+ [root@controller ~] (admin-openrc)# openstack endpoint create --region RegionOne \ placement admin http://controller:8778 +--------------+----------------------------------+ | 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 | +--------------+----------------------------------+
구성 요소 설치 및 구성
1. 패키지 설치 :
[root@controller ~]# yum install openstack-placement-api
2. /etc/placement/placement.conf 파일을 편집하고 다음 조치를 완료하십시오.
[placement_database]섹션에서 데이터베이스 액세스 구성:
[placement_database] # ... connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement
PLACEMENT_DBPASS부분에 데이터베이스에서 설정한 비밀번호로 바꿉니다 .
[api]와[keystone_authtoken]섹션에서 아이덴티티 서비스 액세스 구성:
[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_PASS부분에 Identity 서비스에서 placement사용자에 대해 설정한 비밀번호로 바꿉니다.
[keystone_authtoken] 섹션 에서 나머지 다른 옵션을 주석 처리하거나 제거 하십시오.
3. placement 데이터베이스를 초기화 합니다.
[root@controller ~]# su -s /bin/sh -c "placement-manage db sync" placement
httpd 추가 설정
현재 오픈스택 배포판의 버그로 인해 해당 부분이 누락되어있으므로 반드시 추가해주도록 한다.
[root@controller ~]# cat /etc/httpd/conf.d/00-placement-api.conf
Listen 8778
<VirtualHost *:8778>
WSGIProcessGroup placement-api
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
WSGIDaemonProcess placement-api processes=3 threads=1 user=placement group=placement
WSGIScriptAlias / /usr/bin/placement-api
<IfVersion >= 2.4>
ErrorLogFormat "%M"
</IfVersion>
ErrorLog /var/log/placement/placement-api.log
#SSLEngine On
#SSLCertificateFile ...
#SSLCertificateKeyFile ...
</VirtualHost>
Alias /placement-api /usr/bin/placement-api
<Location /placement-api>
SetHandler wsgi-script
Options +ExecCGI
WSGIProcessGroup placement-api
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
</Location>
## 추가
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
설치 완료
httpd 서비스를 다시 시작하십시오.
[root@controller ~]# systemctl restart httpd
설치 확인
아래 내용은 Stein 이전 버전을 Stein 이후 버전으로 업그레이드 후 확인하기 위한 내용이므로 Train 처음 설치시에는 반드시 진행할 필요는 없다.
1. admin자격 증명 관리자 전용 CLI 명령에 액세스하려면 :
[root@controller ~]# . admin-openrc [root@controller ~] (admin-openrc)#
2. 상태 확인을 수행하여 모든 것이 정상인지 확인합니다.
[root@controller ~] (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 | +----------------------------------+
3. 배치 API에 대해 몇 가지 명령을 실행합니다.
osc-placement플러그인을 설치합니다 .
이 예에서는 PyPI 및 pip 를 사용 하지만 배포 패키지를 사용하는 경우 해당 저장소에서 패키지를 설치할 수 있습니다.
[root@controller ~]# pip install osc-placement
- 사용 가능한 리소스 클래스 및 특성을 나열합니다.
[root@controller ~] (admin-openrc)# openstack --os-placement-api-version 1.2 resource class list --sort-column name +----------------------------+ | name | +----------------------------+ | DISK_GB | | IPV4_ADDRESS | | ... | [root@controller ~] (admin-openrc)# openstack --os-placement-api-version 1.6 trait list --sort-column name +---------------------------------------+ | name | +---------------------------------------+ | COMPUTE_DEVICE_TAGGING | | COMPUTE_NET_ATTACH_INTERFACE | | ... |