centos_7_에_openstack_train_버전_설치_-_4._placement_service_placement_installation

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

현재 오픈스택 배포판의 버그로 인해 해당 부분이 누락되어있으므로 반드시 추가해주도록 한다.

[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          |
| ...                                   |
  • centos_7_에_openstack_train_버전_설치_-_4._placement_service_placement_installation.txt
  • 마지막으로 수정됨: 2020/09/09 00:19
  • 저자 koov