카테고리 없음

오픈스택 멀티노드 설치 - Keystone

AhnCloud 2024. 7. 2. 18:43
728x90

Keystone

다. keystone 설치 및 설정


1) 데이터베이스 설정

mysql

CREATE DATABASE keystone;

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

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

exit

 

2) 키스톤 설치

apt install keystone

 

3) 키스톤 config 파일 설정

vi /etc/keystone/keystone.conf

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

[token]
# ...
provider = fernet

 

4) 데이터베이스 동기화

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

 

5) 키스톤 사용자, 그룹 생성

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

 

6) 키스톤 서비스 부트스트랩

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

 

7) apache 서비스 설정

vi /etc/apache2/apache2.conf

ServerName controller

service apache2 restart

 

8) 키스톤 관련 환경 변수 설정

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

 

라. 프로젝트 및 유저 생성


1) Service project 생성

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

* 각 오픈스택 컴포넌트들에 해당하는 서비스 user가 포함될 프로젝트

 

 

2) myproject 생성

openstack project create --domain default \  --description "Demo Project" myproject

* 일반 사용자가 속할 프로젝트

3) myuser 생성

openstack user create --domain default \  --password-prompt myuser

* 일반 user 생성

* 비밀번호: DEMO_PASS

 

4) role 생성

openstack role create myrole

5) role 부여

openstack role add --project myproject --user myuser myrole

 

마. 권한 생성


1) 환경변수 임시 해제

unset OS_AUTH_URL OS_PASSWORD

 

2) admin 토큰 요청

openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name admin --os-username admin token issue

* 비밀번호: ADMIN_PASS

 

3) admin 권한 적용 파일 생성

cd /etc

vi 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

 

 

4) user 권한 적용 파일 생성

vi demo-openrc

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

💡 NOTE : 주의사항 /etc 디렉터리에서 생성했으므로,  admin 권한이나 일반user 권한을 사용하게 될 경우에 /etc 디렉터리에서 작업할 것.

ex) provider 네트워크 생성시 admin 권한 필요

 

5) admin-openrc 테스트

. admin-openrc

openstack token issue

* 토큰 정상 확인