"Keystone 설치 및 설정 (RHEL과 CentOS)"의 두 판 사이의 차이

92번째 줄: 92번째 줄:


==Apache HTTP 서버 설정==
==Apache HTTP 서버 설정==
1. <code>/etc/httpd/conf/httpd.conf</code> 파일을 편집하고 <code>ServerName</code> 옵션을 컨트롤러 노드를 참조하도록 설정합니다:
:<syntaxhighlight lang='text'>
ServerName controller
</syntaxhighlight>
:<code>ServerName</code> 항목이 없으면 추가해야 합니다.
2. 다음 명령어로 <code>/usr/share/keystone/wsgi-keystone.conf</code> 파일의 링크를 생성합니다:
:<syntaxhighlight lang='console'>
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
</syntaxhighlight>
===SSL===
시큐어한 배포를 위해 웹 서버는 SSL을 사용하도록 설정되거나 SSL 터미네이터 뒤에서 실행되어야 합니다.
==설치 마무리==
==설치 마무리==
1. Apache HTTP 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 설정하십시오:
1. Apache HTTP 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 설정하십시오:

2024년 7월 3일 (수) 20:19 판

1 개요

Crystal Clear action info.png 작성 중인 문서입니다.
Install and configure
설치 및 설정

https://docs.openstack.org/keystone/2024.1/install/keystone-install-rdo.html


이 섹션에서는 컨트롤러 노드에 OpenStack Identity 서비스(코드명: keystone)를 설치하고 설정하는 방법을 설명합니다. 확장성을 위해 이 설정은 Fernet 토큰과 요청을 처리하는 Apache HTTP 서버를 배포합니다.

Note

진행하기 전에 OpenStack 설치 가이드의 전제조건 설치 단계를 완료했는지 확인하십시오.

2 전제조건

Identity 서비스를 설치하고 구성하기 전에 데이터베이스를 만들어야 합니다.

Note

시작하기 전에 python-pyasn1 최신 버전이 설치되어 있는지 확인하십시오.

1. 데이터베이스 액세스 클라이언트를 사용하여 root 사용자로 데이터베이스 서버에 연결하십시오:

$ mysql -u root -p

2. keystone 데이터베이스를 생성하십시오:

MariaDB [(none)]> CREATE DATABASE keystone;

3. keystone 데이터베이스에 대한 적절한 액세스를 부여하십시오:

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';
KEYSTONE_DBPASS를 적절한 패스워드로 바꾸십시오.

4. 데이터베이스 액세스 클라이언트를 종료하십시오.

3 컴포넌트 설치 및 설정

Note

기본 설정 파일은 배포판에 따라 다릅니다. 기존 섹션 및 옵션을 수정하는 대신 이러한 섹션과 옵션을 추가해야 할 수 있습니다. 또한 설정 스니핏의 생략기호 (...)는 유지해야 하는 기본 설정 옵션을 나타냅니다.

1. 다음 명령어를 실행하여 패키지를 설치합니다:

# dnf install openstack-keystone httpd python3-mod_wsgi

2. /etc/keystone/keystone.conf 파일을 편집하고 다음 작업을 완료합니다:

  • [database] 섹션에, 데이터베이스 액세스를 설정합니다:
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
KEYSTONE_DBPASS를 데이터베이스용으로 선택한 패스워드로 교체합니다.

Note

[database] 섹션의 다른 연결 옵션은 주석 처리하거나 제거해야 합니다.

Note

이 예시에서 호스트, controller는 해결가능해야 합니다.
  • [token] 섹션에, Fernet 토큰 제공자를 설정합니다:
[token]
# ...
provider = fernet

3. Identity 서비스 데이터베이스 채우기:

# su -s /bin/sh -c "keystone-manage db_sync" keystone

4. Fernet 키 리포지토리 초기화:

Note

--keystone-user--keystone-group 플래그는 keystone을 실행할 운영체제의 사용자/그룹을 지정하는 데 사용됩니다. 예제에서는 사용자 및 그룹을 keystone이라고 부릅니다.
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

5. Identity 서비스 부트스트랩:

Note

Queens 릴리스 이전에는 Identity v2 API가 별도의 관리자 전용 서비스로 포트 35357에서 실행되었기 때문에 keystone을 두 개의 별도 포트에서 실행해야 했습니다. v2 API가 제거됨에 따라, keystone은 모든 인터페이스에 대해 동일한 포트에서 실행할 수 있습니다.
# 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
ADMIN_PASS를 관리자 사용자에 대한 적절한 패스워드로 교체합니다.

4 Apache HTTP 서버 설정

1. /etc/httpd/conf/httpd.conf 파일을 편집하고 ServerName 옵션을 컨트롤러 노드를 참조하도록 설정합니다:

ServerName controller
ServerName 항목이 없으면 추가해야 합니다.

2. 다음 명령어로 /usr/share/keystone/wsgi-keystone.conf 파일의 링크를 생성합니다:

# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

4.1 SSL

시큐어한 배포를 위해 웹 서버는 SSL을 사용하도록 설정되거나 SSL 터미네이터 뒤에서 실행되어야 합니다.

5 설치 마무리

1. Apache HTTP 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 설정하십시오:

# systemctl enable httpd.service
# systemctl start httpd.service

2. 적절한 환경변수를 세팅하여 관리자 계정을 설정하십시오:

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
여기에 보이는 값들은 keystone-manage bootstrap 명령어로 생성된 기본 값들입니다.
ADMIN_PASS컴포넌트 설치 및 설정keystone-manage bootstrap 명령어에 사용된 패스워드로 교체하십시오.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}