최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| ==개요== | | ==개요== |
| | {{작성중}} |
| [[분류: keystone]] | | [[분류: keystone]] |
| ;Install and configure | | ;Install and configure |
| ;설치 및 설정 | | ;설치 및 설정 |
| https://docs.openstack.org/keystone/2024.1/install/keystone-install-ubuntu.html | | https://docs.openstack.org/keystone/2024.1/install/index-ubuntu.html |
| ---- | | ---- |
| 이 섹션에서는 컨트롤러 노드에 OpenStack Identity 서비스(코드명: keystone)를 설치하고 설정하는 방법을 설명합니다. 확장성을 위해 이 설정은 Fernet 토큰과 요청을 처리하는 Apache HTTP 서버를 배포합니다. | | 이 섹션에서는 컨트롤러 노드에 OpenStack Identity 서비스(코드명: keystone)를 설치하고 설정하는 방법을 설명합니다. 확장성을 위해 이 설정은 Fernet 토큰과 요청을 처리하는 Apache HTTP 서버를 배포합니다. |
12번째 줄: |
13번째 줄: |
|
| |
|
| ==전제조건== | | ==전제조건== |
| Identity 서비스를 설치하고 구성하기 전에 데이터베이스를 만들어야 합니다.
| |
|
| |
| {{NOTE}}
| |
| 시작하기 전에 <code>[https://pypi.org/project/pyasn1/ python-pyasn1]</code> 최신 버전이 설치되어 있는지 확인하십시오.
| |
| {{/NOTE}}
| |
|
| |
| 1. 데이터베이스 액세스 클라이언트를 사용하여 <code>root</code> 사용자로 데이터베이스 서버에 연결하십시오:
| |
| :<syntaxhighlight lang='console'>
| |
| $ mysql -u root -p
| |
| </syntaxhighlight>
| |
|
| |
| 2. <code>keystone</code> 데이터베이스를 생성하십시오:
| |
| :<syntaxhighlight lang='console'>
| |
| MariaDB [(none)]> CREATE DATABASE keystone;
| |
| </syntaxhighlight>
| |
|
| |
| 3. <code>keystone</code> 데이터베이스에 대한 적절한 액세스를 부여하십시오:
| |
| :<syntaxhighlight lang='console'>
| |
| MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
| |
| IDENTIFIED BY 'KEYSTONE_DBPASS';
| |
| MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
| |
| IDENTIFIED BY 'KEYSTONE_DBPASS';
| |
| </syntaxhighlight>
| |
| :<code>KEYSTONE_DBPASS</code>를 적절한 패스워드로 바꾸십시오.
| |
|
| |
| 4. 데이터베이스 액세스 클라이언트를 종료하십시오.
| |
|
| |
| ==컴포넌트 설치 및 설정== | | ==컴포넌트 설치 및 설정== |
| {{NOTE}}
| |
| 기본 설정 파일은 배포판에 따라 다릅니다. 기존 섹션 및 옵션을 수정하는 대신 이러한 섹션과 옵션을 추가해야 할 수 있습니다. 또한 설정 스니핏의 생략기호 (...)는 유지해야 하는 기본 설정 옵션을 나타냅니다.
| |
| {{/NOTE}}
| |
| {{NOTE}}
| |
| 이 가이드는 포트 5000에서 Identity 서비스 요청을 처리하기 위해 Apache HTTP 서버와 <code>mod_wsgi</code>를 사용합니다. 기본적으로 keystone 서비스는 여전히 이 포트에서 수신 대기합니다. 패키지는 Apache 설정 (<code>mod_wsgi</code> apache2 모듈 활성화 및 Apache에서 keystone 설정 포함)을 모두 처리합니다.
| |
| {{/NOTE}}
| |
|
| |
| 1. 다음 명령어를 실행하여 패키지를 설치합니다:
| |
| :<syntaxhighlight lang='console'>
| |
| # apt install keystone
| |
| </syntaxhighlight>
| |
|
| |
| 2. <code>/etc/keystone/keystone.conf</code> 파일을 편집하고 다음 작업을 완료합니다:
| |
| * <code>[database]</code> 섹션에, 데이터베이스 액세스를 설정합니다:
| |
| :<syntaxhighlight lang='ini'>
| |
| [database]
| |
| # ...
| |
| connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
| |
| </syntaxhighlight>
| |
| :<code>KEYSTONE_DBPASS</code>를 데이터베이스용으로 선택한 패스워드로 교체합니다.
| |
| :{{NOTE}}<code>[database]</code> 섹션의 다른 연결 옵션은 주석 처리하거나 제거해야 합니다.{{/NOTE}}
| |
|
| |
| * <code>[token]</code> 섹션에, Fernet 토큰 제공자를 설정합니다:
| |
| :<syntaxhighlight lang='ini'>
| |
| [token]
| |
| # ...
| |
| provider = fernet
| |
| </syntaxhighlight>
| |
|
| |
| 3. Identity 서비스 데이터베이스 채우기:
| |
| :<syntaxhighlight lang='console'>
| |
| # su -s /bin/sh -c "keystone-manage db_sync" keystone
| |
| </syntaxhighlight>
| |
|
| |
| 4. Fernet 키 리포지토리 초기화:
| |
| :{{NOTE}}<code>--keystone-user</code>와 <code>--keystone-group</code> 플래그는 keystone을 실행할 운영체제의 사용자/그룹을 지정하는 데 사용됩니다. 예제에서는 사용자 및 그룹을 <code>keystone</code>이라고 부릅니다.{{/NOTE}}
| |
| :<syntaxhighlight lang='console'>
| |
| # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
| |
| # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
| |
| </syntaxhighlight>
| |
|
| |
| 5. Identity 서비스 부트스트랩:
| |
| :{{NOTE}}Queens 릴리스 이전에는 Identity v2 API가 별도의 관리자 전용 서비스로 포트 35357에서 실행되었기 때문에 keystone을 두 개의 별도 포트에서 실행해야 했습니다. v2 API가 제거됨에 따라, keystone은 모든 인터페이스에 대해 동일한 포트에서 실행할 수 있습니다.{{/NOTE}}
| |
| :<syntaxhighlight lang='console'>
| |
| # keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
| |
| --bootstrap-admin-url http://controller:5000/v3/ \
| |
| --bootstrap-internal-url http://controller:5000/v3/ \
| |
| --bootstrap-public-url http://controller:5000/v3/ \
| |
| --bootstrap-region-id RegionOne
| |
| </syntaxhighlight>
| |
| :<code>ADMIN_PASS</code>를 관리자 사용자에 대한 적절한 패스워드로 교체합니다.
| |
|
| |
| ==Apache HTTP 서버 설정== | | ==Apache HTTP 서버 설정== |
| 1. <code>/etc/apache2/apache2.conf</code> 파일을 편집하여 <code>ServerName</code> 옵션을 컨트롤러 노드를 참조하도록 설정합니다:
| |
| :<syntaxhighlight lang='text'>
| |
| ServerName controller
| |
| </syntaxhighlight>
| |
| :<code>ServerName</code> 항목이 없으면 추가해야 합니다.
| |
|
| |
| ===SSL===
| |
| 시큐어한 배포를 위해 웹 서버는 SSL을 사용하도록 설정되거나 SSL 터미네이터 뒤에서 실행되어야 합니다.
| |
|
| |
| ==설치 마무리== | | ==설치 마무리== |
| 1. Apache 서비스를 재시작하십시오:
| |
| :<syntaxhighlight lang='console'>
| |
| # service apache2 restart
| |
| </syntaxhighlight>
| |
|
| |
| 2. 적절한 환경변수를 세팅하여 관리자 계정을 설정하십시오:
| |
| :<syntaxhighlight lang='bash'>
| |
| export OS_USERNAME=admin
| |
| export OS_PASSWORD=ADMIN_PASS
| |
| export OS_PROJECT_NAME=admin
| |
| export OS_USER_DOMAIN_NAME=Default
| |
| export OS_PROJECT_DOMAIN_NAME=Default
| |
| export OS_AUTH_URL=http://controller:5000/v3
| |
| export OS_IDENTITY_API_VERSION=3
| |
| </syntaxhighlight>
| |
| :여기에 보이는 값들은 <code>keystone-manage bootstrap</code> 명령어로 생성된 기본 값들입니다.
| |
| :<code>ADMIN_PASS</code>를 [[#컴포넌트 설치 및 설정|컴포넌트 설치 및 설정]]의 <code>keystone-manage bootstrap</code> 명령어에 사용된 패스워드로 교체하십시오.
| |