최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| ==개요== | | ==개요== |
| | {{작성중}} |
| [[분류: keystone]] | | [[분류: keystone]] |
| ;Install and configure | | ;Install and configure |
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}}
| |
| Newton 릴리스부터 SUSE OpenStack 패키지는 업스트림 기본 설정 파일과 함께 제공됩니다. 예를 들어 <code>/etc/keystone/keystone.conf</code>과 커스텀 설정 <code>/etc/keystone/keystone.conf.d/010-keystone.conf</code>이 있는 경우입니다. 다음 지침은 기본 설정 파일을 수정하지만, <code>/etc/keystone/keystone.conf.d</code>에 새 파일을 추가하여 동일한 결과를 얻을 수 있습니다.
| |
| {{/NOTE}}
| |
|
| |
| 1. 다음 명령어를 실행하여 패키지를 설치합니다:
| |
| :<syntaxhighlight lang='console'>
| |
| # zypper install openstack-keystone apache2 apache2-mod_wsgi
| |
| </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}}[database] 섹션의 다른 <code>connection</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을 실행할 운영체제의 사용자/그룹을 지정하는 데 사용됩니다. 이는 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를 수용하기 위해 keystone을 두 개의 별도 포트에서 실행해야 했습니다. v2 API는 일반적으로 35357 포트에서 별도의 관리자 전용 서비스로 실행되었습니다. 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/sysconfig/apache2</code> 파일을 편집하여 <code>APACHE_SERVERNAME</code> 옵션을 컨트롤러 노드를 참조하도록 설정합니다:
| |
| :<syntaxhighlight lang='text'>
| |
| APACHE_SERVERNAME="controller"
| |
| </syntaxhighlight>
| |
| :<code>APACHE_SERVERNAME</code> 항목이 없으면 추가해야 합니다.
| |
|
| |
| 2. 다음 내용으로 /etc/apache2/conf.d/wsgi-keystone.conf 파일을 생성합니다:
| |
| :<syntaxhighlight lang='aconf'>
| |
| Listen 5000
| |
|
| |
| <VirtualHost *:5000>
| |
| WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
| |
| WSGIProcessGroup keystone-public
| |
| WSGIScriptAlias / /usr/bin/keystone-wsgi-public
| |
| WSGIApplicationGroup %{GLOBAL}
| |
| WSGIPassAuthorization On
| |
| ErrorLogFormat "%{cu}t %M"
| |
| ErrorLog /var/log/apache2/keystone.log
| |
| CustomLog /var/log/apache2/keystone_access.log combined
| |
|
| |
| <Directory /usr/bin>
| |
| Require all granted
| |
| </Directory>
| |
| </VirtualHost>
| |
| </syntaxhighlight>
| |
|
| |
| 3. <code>/etc/keystone</code> 디렉토리의 소유권을 재귀적으로 변경합니다:
| |
| :<syntaxhighlight lang='console'>
| |
| chown -R keystone:keystone /etc/keystone
| |
| </syntaxhighlight>
| |
|
| |
| ===SSL===
| |
| 시큐어한 배포를 위해 웹 서버는 SSL을 사용하도록 설정되거나 SSL 터미네이터 뒤에서 실행되어야 합니다.
| |
|
| |
| ==설치 마무리== | | ==설치 마무리== |
| 1. Apache HTTP 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 설정하십시오:
| |
| :<syntaxhighlight lang='console'>
| |
| # systemctl enable apache2.service
| |
| # systemctl start apache2.service
| |
| </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> 명령어에 사용된 패스워드로 교체하십시오.
| |