오픈스택 수동 설치 실습 #.6
오픈스택 수동 설치 실습 #.6 – Keystone 인증 설치
사용자가 대시보드로 오픈스택을 사용할 때 반드시 거쳐야 할 과정이 있는데 바로 인증입니다. 오픈스택에서 Keystone은 모든 서비스를 관장하는 위치에 있습니다. Keystone은 타인이나 해커에게서 시스템을 안전하게 보호하고 사용자 등록, 삭제, 권한 관리, 사용자가 접근할 수 있는 서비스 포인트 관리까지 전반적인 사용자 인증을 관리합니다.
Keystone 위치를 보면 서비스 백단에서 오픈스택의 모든 서비스를 관장하고 있습니다.
Keystone 설치
SQL DB에 접속하여 keystone database 및 유저를 생성합니다. DB계정에 대한 password는 보기 편하게 user와 동일하게 설정 했습니다.
# su - postgres $ psql
keystone 데이터베이스 및 유저 생성
postgres=# create role keystone with login; postgres=# create database keystone; postgres=# grant ALL PRIVILEGES ON DATABASE keystone TO keystone; postgres=# alter user keystone with encrypted password 'keystone';
keystone 계정으로 DB 접속이 되나 확인 합니다.
다시 root로 돌아와서 keystone을 설치합니다.
# yum -y install openstack-keystone httpd mod_wsgi
keystone.conf 파일 수정
# vi /etc/keystone/keystone.conf [database] # ... connection = postgresql://keystone:keystone@controller/keystone [token] # ... provider = fernet
지금부터는 tail -f /var/log/keystone/keystone.log 통해 keystone 인증 과정을 확인 할 수 있습니다. log에 Error 메세지가 찍힌다면 어딘가 잘못된 부분이 있는 겁니다. 해당 에러를 확인하고, Error 메세지가 나오지 않게 조치한 후 진행 해야 합니다.
Keystone DB 인증
# su -s /bin/sh -c "keystone-manage db_sync" keystone
Fernet 키 저장소 초기화
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
인증서비스 bootstrap
※ ADMIN_PASS 에는 admin 계정의 패스워드를 입력해야 합니다.
# 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
httpd server 설정
# vi /etc/httpd/conf/httpd.conf ServerName controller
wsgi-keystone.conf를 httpd 설정 폴더 밑에 링크합니다.
# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
httpd 서비스 등록 및 시작
# systemctl enable httpd.service # systemctl start httpd.service
keystone 인증값을 스크립트로 만듭니다.
※ ADMIN_PASS 부분에는 admin 유저의 패스워드를 넣습니다.
# 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 export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\h:\[\e[31;1m\]\w(keystone)]# \[\e[0m\]"
인증값을 불러옵니다.
※ httpd status 에서 wsgi를 불러와야 정상입니다.
keystone-manage bootstrap 과정에서 Default domain은 만들어져서 이미 존재합니다. (※ 대문자 주의)
Default Domain 값을 가진 프로젝트 생성
$ openstack project create --domain Default \ --description "Service Project" service
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-openrc $ openstack token issue
Keystone 인증 설치가 완료 되었습니다.
최신 댓글