부트스트랩으로 만들어진 admin 외에 다른 서비스가 쓸 service 프로젝트와 일반 작업용 프로젝트 · 사용자 · 역할을 만든다. 설치 및 구성에서 관리 계정 환경 변수를 적용한 셸에서 진행한다. 아래 출력은 2022년 테스트 때의 것이다.
부트스트랩이 default 도메인을 이미 만들었다. 별도 도메인이 필요하면 만든다.
openstack domain create --description "An Example Domain" example
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | An Example Domain |
| enabled | True |
| id | 18d9bdafcb0f4b0591a58ca6e7c1085a |
| name | example |
| options | {} |
| tags | [] |
+-------------+----------------------------------+
Glance · Nova · Neutron 등 서비스 사용자가 속할 프로젝트다.
openstack project create --domain default --description "Service Project" service
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Service Project |
| domain_id | default |
| enabled | True |
| id | b61fa4318e7b4a0b9f349c8f36b5df9d |
| is_domain | False |
| name | service |
| options | {} |
| parent_id | default |
| tags | [] |
+-------------+----------------------------------+
프로젝트 생성
openstack project create --domain default --description "Demo Project" myproject
사용자 생성 — 비밀번호(DEMO_PASS)를 두 번 묻는다.
openstack user create --domain default --password-prompt myuser
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | d88fe53963a54cad9e053ab698b89b02 |
| name | myuser |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
역할 생성과 부여
openstack role create myrole
openstack role add --project myproject --user myuser myrole
role add 는 출력이 없다.
환경 변수 중 인증 URL 과 비밀번호를 지우고, 명령줄 옵션으로 직접 인증해 토큰을 받는다.
unset OS_AUTH_URL OS_PASSWORD
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
+------------+-----------------------------------------------------------------+
| Field | Value |
+------------+-----------------------------------------------------------------+
| expires | 2022-08-03T05:14:08+0000 |
| id | gAAAAABi6fYQ... |
| project_id | bb741bda328541aa9ed068dacf82dc4c |
| user_id | fb312dfff6e7432daa4bc9174ff8b113 |
+------------+-----------------------------------------------------------------+
myuser 사용자
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
매번 옵션을 주지 않도록 openrc 파일을 만든다.
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
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
적용과 확인
. admin-openrc
openstack token issue
이후 모든 서비스 설치 문서는 . admin-openrc 를 실행한 셸을 전제로 한다.