구축/Openstack

openstack 구축 2 keystone

KidAnt 2023. 12. 27. 17:46

  • keystone은 모든 서비스들의 중심이자 가장 중요한 인증부분을 맞고있는 서비스이다
  • 서비스 설정 중 가장 간단하지만 추후에도 몇번 더 수정해야하는 항목이니 conf 설정파일을 한번 둘러보는 것도 권장한다.
  • admin과 demo 계정의 비밀번호는 직접 타자를 쳐야할일이 많으니 어느정도 사람이 쓸 수 있는 선에서 보안을 챙기길 권장한다.
  • 여기서 꼬이면 답이 없으니 DB 설정시 유의바란다.

DB등록

mysql
#mriadb 접속

MariaDB [(none)]> CREATE DATABASE keystone;
#keystone DB생성

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
#keystone 생성 및 권한 부여

exit
#종료

구성요소 설치 및 설정

apt-get update

apt install keystone
#설치

vi /etc/keystone/keystone.conf

[database]
...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
#KEYSTONE_DBPASS에 설정한 값 기입

[token]
...
provider = fernet

wq 
#저장

su -s /bin/sh -c "keystone-manage db_sync" keystone
#DB에 내용 등록

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
#Fernet 키 저장소 초기화

#Identity 서비스를 부트스트랩
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
#ADMIN_PASS에 설정한 값 기입

Apache HTTP 서버 구성

#ServerName컨트롤러 노드를 참조하도록 옵션을 구성

vi /etc/apache2/apache2.conf

ServerName controller
#없을 시 추가

설치 마무리

service apache2 restart
#아파치 다시시작

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
#admin 환경 변수 설정, ADMIN_PASS에는 위에 설정한 비밀번호 기입

도메인, 프로젝트, 사용자 추가

#일반 사용자 등록하기

#프로젝트를 생성 myproject
openstack project create --domain default \
--description "Demo Project" myproject
#프로젝트 생성

+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Demo Project                     |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 231ad6e7ebba47d6a1e57e1cc07ae446 |
| is_domain   | False                            |
| name        | myproject                        |
| parent_id   | default                          |
| tags        | []                               |
+-------------+----------------------------------+
#생성 결과(예시)

openstack user create --domain default \
--password-prompt myuser
#일반 사용자 생성(myuser)
User Password: #DEMO_PASS 기입
Repeat User Password: #DEMO_PASS 기입
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | aeda23aa78f44e859900e22c24817832 |
| name                | myuser                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
#사용자 생성 결과(예시)

openstack role create myrole
#역활 생성
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | None                             |
| id        | 997ce8d05fc143ac97d83fdfb5998552 |
| name      | myrole                           |
+-----------+----------------------------------+
#역활 생성 결과(예시)

작업 완료 확인

unset OS_AUTH_URL OS_PASSWORD
#기존의 환경변수 해제

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 인증 토큰 요구

Password: #등록한 ADMIN_PASS 입력
+------------+-----------------------------------------------------------------+
| Field      | Value                                                           |
+------------+-----------------------------------------------------------------+
| expires    | 2016-02-12T20:14:07.056119Z                                     |
| id         | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv |
|            | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 |
|            | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws       |
| project_id | 343d245e850143a096806dfaefa9afdc                                |
| user_id    | ac3377633149401296f6c0d92d79dc16                                |
+------------+-----------------------------------------------------------------+
#정상 출력시(예시)

openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name myproject --os-username myuser token issue
#myuser(일반사용자) 인증 토큰 요구

Password: #DEMO_PASS 입력
+------------+-----------------------------------------------------------------+
| Field      | Value                                                           |
+------------+-----------------------------------------------------------------+
| expires    | 2016-02-12T20:15:39.014479Z                                     |
| id         | gAAAAABWvi9bsh7vkiby5BpCCnc-JkbGhm9wH3fabS_cY7uabOubesi-Me6IGWW |
|            | yQqNegDDZ5jw7grI26vvgy1J5nCVwZ_zFRqPiz_qhbq29mgbQLglbkq6FQvzBRQ |
|            | JcOzq3uwhzNxszJWmzGC7rJE_H0A_a3UFhqv8M4zMRYSbS2YF0MyFmp_U       |
| project_id | ed0b60bf607743088218b0a533d5943f                                |
| user_id    | 58126687cbcc4888bfa9ab73a2256f27                                |
+------------+-----------------------------------------------------------------+
#정상 출력시(예시)

추후 작업을 위한 사용자 환경 변수 스크립트 생성 및 사용법

cd /#환경 변수 스크립트 파일을 둘 원하는 위치(home 추천)

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
#ADMIN_PASS에 설정한 정보 기입

wq
#저장

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
#DEMO_PASS에 설정한 정보 기입

wq
#저장

#스크립트 사용법 (파일 위치로 이동 후)

. admin-openrc
#어드민 권한 필요시
. demo-openrc
#일반 사용자 권한 필요시

'구축 > Openstack' 카테고리의 다른 글

openstack 구축 5 nova  (2) 2024.01.03
openstack 구축 4 placement  (0) 2023.12.28
openstack 구축 3 glance  (0) 2023.12.28
openstack 구축 1 사전 환경 구축  (1) 2023.12.26
openstack 구축 0 들어가기 앞서  (1) 2023.12.26