IT

[openstack] 3.2 인증 서비스 설치(keystone) - centos7 오픈스택 설치 및 구축 프로젝트 (rocky 버전) 본문

프로젝트/openstack

[openstack] 3.2 인증 서비스 설치(keystone) - centos7 오픈스택 설치 및 구축 프로젝트 (rocky 버전)

abcee 2019. 3. 28. 20:53

3. 구성 과정

3.2 인증 서비스 설치

3.2.1 Controller Node

○ 전제조건

• root계정으로 DB 연결

$ mysql -u root -p

• Keystone Database 만들기

MariaDB [(none)]> CREATE DATABASE keystone;

• Database에 대한 액세스 권한 부여

/*
keystone 데이터베이스의 모든 스키마에 대해 keystone 계정의 로컬접근 권한 허용
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'keystone 계정 비밀번호';
*/
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'It1';

/*
keystone 데이터베이스의 모든 스키마에 대해 keystone 계정의 외부접근 권한 허용
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'keystone 계정 비밀번호';
*/
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'It1';

○ 설치 및 구성

• keystone, httpd, mod_wsgi 설치

# yum install -y openstack-keystone httpd mod_wsgi

• 키스톤 구성

- /etc/keystone/keystone.conf 을 통해 keystone 설정 수정

# vi /etc/keystone/keystone.conf

- [/etc/keystone/keystone.conf]

[database]
# 데이터 베이스 엑세스 설정
# connection = mysql+pymysql://keystone:KEYSTONE_DBPASScontroller/keystone
connection = mysql+pymysql://keystone:It1@controller/keystone

[token]
# token 구성
provider = fernet

- indentity service database 내용 채우기

/*
keystone-manage db_sync [keystone DB 이름] 명령을
관리자 권한으로 /bin/sh 쉘로 실행시켜 DB 동기화
*/
# su -s /bin/sh -c "keystone-manage db_sync" keystone

- fernet key 저장소 초기화

/*
keystone-manage fernet_setup 명령을 실행시켜 fernet key 저장소 초기화
*/
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

/*
keystone-manage credential_setup 명령을 실행시켜 fernet key 암호화
*/
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

- indentity 서비스에 대해 bootstrap 적용

# keystone-manage bootstrap --bootstrap-password It1 \
--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 Server 구성

- http config 구성

# vi /etc/httpd/conf/httpd.conf

○ 서버 이름설정

ServerName controller

- wsgi-keystone.conf 파일을 /etc/httpd/conf.d 경로에서 사용할 수 있게 링크 설정

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

○ 마무리

• httpd 서비스가 부팅 시 시작되도록 등록하고 서비스를 시작한다.

# systemctl enable httpd.service

# systemctl start httpd.service

○ 인증에 사용될 환경 변수 설정

• 관리 계정 스크립트 구성

# 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=It1
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

• 관리 계정 스크립트 실행

$ . admin-openrc

○ admin유저에 대한 검증

 

$ . admin-openrc

$ openstack token issue

토큰 확인

○ 각종 서비스들이 설정될 service project 생성

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