Cloud/Openstack

openstack 최신 yoga버전 수동 설치 - Keystone

YoonSooLim 2022. 5. 11. 10:18

Openstack Component Install

Keystone

OpenStack 시스템은 별도로 설치된 여러 주요 서비스로 구성됩니다. 이러한 서비스는 클라우드 요구 사항에 따라 함께 작동하며 Compute, Identity, Networking, Image, Block Storage, Object Storage, Telemetry, Orchestration 및 Database 서비스를 포함합니다. 이러한 프로젝트를 별도로 설치하고 독립 실행형 또는 연결된 엔터티로 구성할 수 있습니다.

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

Database 생성

1. 데이터베이스 액세스 클라이언트를 사용하여 root사용자로 데이터베이스 서버에 연결합니다.

# mysql

2. keystone데이터베이스 생성 :

MariaDB [(none)]> CREATE DATABASE keystone;

3. keystone데이터베이스에 액세스 권한 부여 :

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';

구성 요소 설치 및 구성

1. 패키지 설치 :

# apt install keystone

2. /etc/keystone/keystone.conf 파일을 아래와 같이 수정해줍니다.

[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

...

[token]
# ...
provider = fernet

3. Identity 서비스 database에 내용을 넣습니다.

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

4. Fernet 키 저장소 초기화:

# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

5. Identity service 부트스트랩 설정

# 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

Apache HTTP 서버 구성

1. /etc/apache2/apache2.conf 파일을 편집하고 컨트롤러 노드를 참조하도록 옵션을 구성합니다.

...
ServerName  controller
...

설치 완료

1. Apache 서비스를 다시 시작합니다.

# systemctl restart apache2

2. 적절한 환경 변수를 설정하여 관리 계정을 구성합니다.

# vi openrc.sh

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


Create a domain, projects, users, and roles

Identity service는 각 OpenStack 서비스에 대한 인증 서비스를 제공합니다. 인증 서비스는 도메인, 프로젝트, 사용자 및 역할의 조합을 사용합니다.

1. openrc 파일 등록

# . admin_adminrc.sh

2. example 도메인 생성을 합니다. (필수 아님)

# openstack domain create --description "An Example Domain" example

3. service 프로젝트 생성 : 이 가이드에서는 환경에 추가하는 각 서비스에 대해 고유한 사용자가 포함된 서비스 프로젝트를 사용합니다.

# openstack project create --domain default \
 --description "Service Project" service

4. 일반(비관리자) 작업은 권한이 없는 프로젝트와 사용자를 사용해야 합니다. 예를 들어 이 가이드에서는 myproject프로젝트와 myuser 사용자를 생성합니다.

  • 프로젝트 생성
# openstack project create --domain default \
  --description "Demo Project" myproject
  • 사용자 생성
# openstack user create --domain default \
  --password-prompt myuser
  • 프로젝트 및 사용자 에 myrole역할을 추가합니다.
# openstack role add --project myproject --user myuser myrole

스크립트 만들기

admin및 demo 프로젝트 및 사용자 에 대한 클라이언트 환경 스크립트를 생성 합니다. 이 가이드의 이후 부분에서는 이러한 스크립트를 참조하여 클라이언트 작업에 적절한 자격 증명을 로드합니다.

  • 파일을 생성 및 편집하고 admin-openrc에 다음 내용을 추가합니다.
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
# . admin-openrc