오픈스택 멀티노드 설치 - Keystone
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
* 토큰 정상 확인