['나는 한다 Openstack 설치를' 시리즈 3편]매뉴얼대로 Centos에 openstack icehouse 설치하기, keystone 설치하기
openstack의 보안에서 가장 핵심이 되는 keystone을 설치하겠습니다. keystone의 구동 방식을 표현한 그림을 첨부하겠습니다. 그림을 보면 금방 이해하실 수 있을 겁니다.
잘 안 보이시면 클릭해서 보셔도 됩니다.
keystone 설치하기
keystone은 controller node에서만 설치하시면 됩니다.
1. openstack-keystone python-keystoneclient
# yum install -y openstack-keystone python-keystoneclient
2. keystone 데이터베이스를 생성하는 명령어입니다. 두번째 줄의 keysone_dbpass에는 사용하시고자 하는 keystone의 비밀번호를 넣어주세요. localhost 부분은
# openstack-config --set /etc/keystone/keystone.conf \
database connection mysql://keystone:KEYSTONE_DBPASS@controller/keystone
3. mysql에 root로 접속을 합니다.
#mysql -u root -p
4. keystone 데이터베이스 유저를 생성하는 과정입니다. 여기서도 keystone_dbpass에는 위에서 넣은 keystone 비밀번호와 같은 것을 입력하면 됩니다.
mysql> CREATE DATABASE keystone;
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS'; // 'keystone'@'localhost' 이 부분에서 localhost는 keystone 데이터베이스 생성할 때 넣었던 컴퓨터 이름이랑 맞춰주세요.
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
mysql> exit
5. keystone 서비스를 위한 데이터베이스 테이블을 만드는 과정입니다.
# su -s /bin/sh -c "keystone-manage db_sync" keystone
6. 공유된 암호를 이용하여 인증 서비스와 다른 오픈스택 서비스간에 사용권한 토큰을 정의하기 위해 openssl을 이용하여 임의의 토큰을 생성하고 생성된 토큰을 conf 파일에 저장하는 과정입니다.
# ADMIN_TOKEN=$(openssl rand -hex 10)
# echo $ADMIN_TOKEN
# openstack-config --set /etc/keystone/keystone.conf DEFAULT \
admin_token $ADMIN_TOKEN
7. 생성된 데이터에 대한 엑세스를 제한하고 서명키와 인증서를 생성합니다.
# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone
# chown -R keystone:keystone /etc/keystone/ssl
# chmod -R o-rwx /etc/keystone/ssl
8. keystone 시작 및 chkconfig에 등록하기
# service openstack-keystone start
# chkconfig openstack-keystone on
9. 기본적으로 인증 서비스는 만료된 토큰을 데이터베이스에 무기한으로 저장하기 때문에 크론을 이용하여 주기적으로 제거해주는 것이 좋습니다.
# (crontab -l -u keystone 2>&1 | grep -q token_flush) || \
echo '@hourly /usr/bin/keystone-manage token_flush >/var/log/keystone/keystone-tokenflush.log 2>&1' >> /var/spool/cron/keystone
users, tenants, roles 설정하기
keystone을 설치하고 나면 users, tenants, roles 등을 설정해야 합니다.
1. token 만들기, admin_token에는 /etc/keystone/keystone.conf 파일에 있는 admin_token을 입력해줍니다.
$ export OS_SERVICE_TOKEN=ADMIN_TOKEN(예:vn13ndlasienc)
$ export OS_SERVICE_ENDPOINT=http://192.168.137.201:35357/v2.0
2. admin user 만들기
$ keystone user-create --name=admin --pass=<비밀번호> --email=<email주소>
3. admin role 만들기
$ keystone role-create --name=admin
4. admin tenant 만들기
$ keystone tenant-create --name=admin --description="Admin Tenant"
5. user, role, tenant 연결하기
$ keystone user-role-add --user=admin --tenant=admin --role=admin
6. 일반 user 만들기
$ keystone user-create --name=demo --pass=<비밀번호> --email=<email주소>
$ keystone tenant-create --name=demo --description="Demo Tenant"
$ keystone user-role-add --user=demo --role=_member_ --tenant=demo
7. service tenant 만들기
$ keystone tenant-create --name=service --description="Service Tenant"
services와 API 끝점 설정하기
1. service 엔트리 만들기
$ keystone service-create --name=keystone --type=identity \
--description="OpenStack Identity"
$ keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ identity / {print $2}') \
--publicurl=http://192.168.137.201:5000/v2.0 \
--internalurl=http://192.168.137.201:5000/v2.0 \
--adminurl=http://192.168.137.201:35357/v2.0
인증서비스 설치 확인하기
1. 인증서비스가 잘 설치되었는지 확인하기 위하여 OS_SERVICE_TOKEN 와 OS_SERVICE_ENDPOINT 지우기
$ unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
2. admin의 인증 토큰을 활용하여 일반 user 이름 기반 인증 사용하기
$ keystone --os-username=admin --os-password=<비밀번호> \
--os-auth-url=http://192.168.137.201:35357/v2.0 token-get
3. admin-openrc.sh 파일 설정하기
# vi /root/admin-openrc.sh
밑의 내용을 입력해주세요.
export OS_USERNAME=admin
export OS_PASSWORD=<비밀번호>
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://192.168.137.201:35357/v2.0
4. admin-openrc.sh 파일 적용하기
$ source admin-openrc.sh
5. admin-openrc.sh 파일이 적용 잘 되었는지 확인하기
$ keystone token-get
6. 일반 유저 sh 파일 만들기
#vi /root/demo-openrc.sh
밑의 내용을 입력해주세요.
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://192.168.137.1:35357/v2.0
7. user 확인하기
#vi /root/demo-openrc.sh
밑의 내용을 입력해주세요.
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://192.168.137.1:35357/v2.0
7. user 확인하기
$ keystone user-list
$ keystone user-role-list --user admin --tenant admin
여기까지 해서 에러없이 모두 잘 나온다면 인증 서비스(keystone) 설정에 문제가 없는 것입니다.
여기까지 keystone 설정 마치고 다음은 image service 설정하겠습니다.
openstack 설치 시리즈 1편
openstack 설치 시리즈 2편
openstack 설치 시리즈 3편
openstack 설치 시리즈 4편
openstack 설치 시리즈 5편
openstack 설치 시리즈 6편
openstack 설치 시리즈 7편
openstack 설치 시리즈 8편
openstack 설치 시리즈 1편
openstack 설치 시리즈 2편
openstack 설치 시리즈 3편
openstack 설치 시리즈 4편
openstack 설치 시리즈 5편
openstack 설치 시리즈 6편
openstack 설치 시리즈 7편
openstack 설치 시리즈 8편
댓글 없음:
댓글 쓰기