본문 바로가기

Cloud/Openstack

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

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